@bsv/sdk 2.0.14 → 2.0.16

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 (104) hide show
  1. package/dist/cjs/package.json +14 -14
  2. package/dist/cjs/src/kvstore/GlobalKVStore.js +16 -3
  3. package/dist/cjs/src/kvstore/GlobalKVStore.js.map +1 -1
  4. package/dist/cjs/src/kvstore/types.js.map +1 -1
  5. package/dist/cjs/src/primitives/Hash.js +1 -1
  6. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  7. package/dist/cjs/src/primitives/TransactionSignature.js +10 -3
  8. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  9. package/dist/cjs/src/script/Script.js +60 -13
  10. package/dist/cjs/src/script/Script.js.map +1 -1
  11. package/dist/cjs/src/script/Spend.js +434 -59
  12. package/dist/cjs/src/script/Spend.js.map +1 -1
  13. package/dist/cjs/src/transaction/http/BinaryFetchClient.js +6 -2
  14. package/dist/cjs/src/transaction/http/BinaryFetchClient.js.map +1 -1
  15. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +8 -4
  16. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  17. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  18. package/dist/esm/src/kvstore/GlobalKVStore.js +16 -3
  19. package/dist/esm/src/kvstore/GlobalKVStore.js.map +1 -1
  20. package/dist/esm/src/kvstore/types.js.map +1 -1
  21. package/dist/esm/src/primitives/Hash.js +1 -1
  22. package/dist/esm/src/primitives/Hash.js.map +1 -1
  23. package/dist/esm/src/primitives/TransactionSignature.js +10 -3
  24. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  25. package/dist/esm/src/script/Script.js +60 -13
  26. package/dist/esm/src/script/Script.js.map +1 -1
  27. package/dist/esm/src/script/Spend.js +438 -59
  28. package/dist/esm/src/script/Spend.js.map +1 -1
  29. package/dist/esm/src/transaction/http/BinaryFetchClient.js +6 -2
  30. package/dist/esm/src/transaction/http/BinaryFetchClient.js.map +1 -1
  31. package/dist/esm/src/transaction/http/DefaultHttpClient.js +8 -4
  32. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  33. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  34. package/dist/types/src/kvstore/GlobalKVStore.d.ts +7 -0
  35. package/dist/types/src/kvstore/GlobalKVStore.d.ts.map +1 -1
  36. package/dist/types/src/kvstore/types.d.ts +2 -1
  37. package/dist/types/src/kvstore/types.d.ts.map +1 -1
  38. package/dist/types/src/primitives/TransactionSignature.d.ts +1 -0
  39. package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
  40. package/dist/types/src/script/Script.d.ts +1 -0
  41. package/dist/types/src/script/Script.d.ts.map +1 -1
  42. package/dist/types/src/script/ScriptChunk.d.ts +1 -0
  43. package/dist/types/src/script/ScriptChunk.d.ts.map +1 -1
  44. package/dist/types/src/script/Spend.d.ts +29 -0
  45. package/dist/types/src/script/Spend.d.ts.map +1 -1
  46. package/dist/types/src/transaction/http/BinaryFetchClient.d.ts.map +1 -1
  47. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +2 -2
  48. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
  49. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  50. package/dist/umd/bundle.js +3 -4
  51. package/docs/reference/kvstore.md +2 -1
  52. package/docs/reference/primitives.md +1 -0
  53. package/docs/reference/script.md +7 -0
  54. package/docs/reference/transaction.md +2 -2
  55. package/package.json +14 -14
  56. package/src/kvstore/GlobalKVStore.ts +19 -3
  57. package/src/kvstore/__tests/GlobalKVStore.test.ts +24 -1
  58. package/src/kvstore/types.ts +2 -1
  59. package/src/primitives/Hash.ts +1 -1
  60. package/src/primitives/TransactionSignature.ts +11 -3
  61. package/src/script/Script.ts +59 -13
  62. package/src/script/ScriptChunk.ts +1 -0
  63. package/src/script/Spend.ts +483 -61
  64. package/src/script/__tests/NormativeVectors.test.ts +465 -0
  65. package/src/script/__tests/fixtures/SOURCES.md +25 -0
  66. package/src/script/__tests/fixtures/bitcoin-sv/script_tests.json +2591 -0
  67. package/src/script/__tests/fixtures/bitcoin-sv/sighash.json +1003 -0
  68. package/src/script/__tests/fixtures/bitcoin-sv/tx_invalid.json +285 -0
  69. package/src/script/__tests/fixtures/bitcoin-sv/tx_valid.json +367 -0
  70. package/src/script/__tests/fixtures/teranode/script_tests.json +2432 -0
  71. package/src/script/__tests/fixtures/teranode/sighash.json +1003 -0
  72. package/src/script/__tests/fixtures/teranode/tx_invalid.json +285 -0
  73. package/src/script/__tests/fixtures/teranode/tx_valid.json +367 -0
  74. package/src/transaction/broadcasters/__tests/ARC.test.ts +26 -4
  75. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +26 -4
  76. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +32 -10
  77. package/src/transaction/http/BinaryFetchClient.ts +5 -2
  78. package/src/transaction/http/DefaultHttpClient.ts +7 -4
  79. package/src/transaction/http/__tests/DefaultHttpClient.additional.test.ts +19 -1
  80. package/dist/cjs/src/auth/clients/__tests__/AuthFetch.additional.test.js +0 -827
  81. package/dist/cjs/src/auth/clients/__tests__/AuthFetch.additional.test.js.map +0 -1
  82. package/dist/cjs/src/auth/clients/__tests__/AuthFetch.test.js +0 -266
  83. package/dist/cjs/src/auth/clients/__tests__/AuthFetch.test.js.map +0 -1
  84. package/dist/cjs/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.js +0 -654
  85. package/dist/cjs/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.js.map +0 -1
  86. package/dist/cjs/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js +0 -144
  87. package/dist/cjs/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js.map +0 -1
  88. package/dist/esm/src/auth/clients/__tests__/AuthFetch.additional.test.js +0 -825
  89. package/dist/esm/src/auth/clients/__tests__/AuthFetch.additional.test.js.map +0 -1
  90. package/dist/esm/src/auth/clients/__tests__/AuthFetch.test.js +0 -264
  91. package/dist/esm/src/auth/clients/__tests__/AuthFetch.test.js.map +0 -1
  92. package/dist/esm/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.js +0 -619
  93. package/dist/esm/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.js.map +0 -1
  94. package/dist/esm/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js +0 -109
  95. package/dist/esm/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js.map +0 -1
  96. package/dist/types/src/auth/clients/__tests__/AuthFetch.additional.test.d.ts +0 -21
  97. package/dist/types/src/auth/clients/__tests__/AuthFetch.additional.test.d.ts.map +0 -1
  98. package/dist/types/src/auth/clients/__tests__/AuthFetch.test.d.ts +0 -2
  99. package/dist/types/src/auth/clients/__tests__/AuthFetch.test.d.ts.map +0 -1
  100. package/dist/types/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.d.ts +0 -2
  101. package/dist/types/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.d.ts.map +0 -1
  102. package/dist/types/src/auth/transports/__tests__/SimplifiedFetchTransport.test.d.ts +0 -2
  103. package/dist/types/src/auth/transports/__tests__/SimplifiedFetchTransport.test.d.ts.map +0 -1
  104. package/dist/umd/bundle.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthFetch.additional.test.js","sourceRoot":"","sources":["../../../../../../src/auth/clients/__tests__/AuthFetch.additional.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAEhE,8EAA8E;AAC9E,+DAA+D;AAC/D,8EAA8E;AAE9E,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;CACvB,CAAC,CAAC,CAAA;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,MAAM,eAAe,GAAG,WAAsD,CAAA;AAE9E,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,WAAW;IAClB,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAA;IAC/D,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAA;IAC9D,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAS,EAAE,EAAE,CACxC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CACpF;QACD,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACjC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SACrC,CAAC,CAAC;QACH,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACnE,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAE,YAAoC,EAAE;IAC9D,MAAM,OAAO,GAA2B;QACtC,uBAAuB,EAAE,KAAK;QAC9B,iCAAiC,EAAE,IAAI;QACvC,yBAAyB,EAAE,SAAS;QACpC,iCAAiC,EAAE,KAAK;QACxC,GAAG,SAAS;KACb,CAAA;IACD,OAAO,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,CAAC,GAAG,EAAE;IACb,IAAI,CAAC,eAAe,EAAE,CAAA;IACtB,eAAe,CAAC,SAAS,EAAE,CAAA;AAC7B,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,MAAM,CACV,SAAS,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAC5D,CAAC,OAAO,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,4EAA4E;QAC5E,+EAA+E;QAC/E,8EAA8E;QAC9E,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9C,IAAI,cAAc,GAAG,CAAC,CAAA;QAEtB,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;YACtE,cAAc,EAAE,CAAA;YAChB,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;gBACzB,0EAA0E;gBAC1E,OAAO,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACnC,CAAC;YACD,yEAAyE;YACzE,sDAAsD;YACtD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QAEF,mEAAmE;QACnE,MAAM,QAAQ,GAAG;YACf,6BAA6B,EAAE,IAAI,CAAC,EAAE,EAAE;YACxC,8BAA8B,EAAE,IAAI,CAAC,EAAE,EAAE;YACzC,wBAAwB,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1C,+BAA+B,EAAE,IAAI,CAAC,EAAE,EAAE;YAC1C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;YACpD,CAAC,CAAC;SACH,CACA;QAAC,SAAiB,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG;YACjD,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,UAAU;YACvB,kBAAkB,EAAE,IAAI;YACxB,0BAA0B,EAAE,EAAE;SAC/B,CAAA;QAED,uEAAuE;QACvE,0DAA0D;QAC1D,MAAM,MAAM,CACV,SAAS,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CACjE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAChC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E,QAAQ,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC9E,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9C,MAAM,cAAc,GAAG,IAAI;aACxB,KAAK,CAAC,SAAgB,EAAE,wBAAwB,CAAC;aACjD,iBAAiB,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAEzD,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;YAC3B,kBAAkB,EAAE,KAAK;YACzB,0BAA0B,EAAE,EAAE;SAC/B,CACA;QAAC,SAAiB,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAA;QAE3D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAEpE,MAAM,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAC/C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9C,IAAI;aACD,KAAK,CAAC,SAAgB,EAAE,wBAAwB,CAAC;aACjD,iBAAiB,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;QAE1D,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;YAC3B,kBAAkB,EAAE,KAAK;YACzB,0BAA0B,EAAE,EAAE;SAC/B,CACA;QAAC,SAAiB,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAA;QAE3D,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3E,yBAAyB,CAC1B,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9C,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE;YACxC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;SAC1C,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAE3D,MAAM,SAAS,GAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAA;QACxD,MAAM,QAAQ,GAAG,MAAO,SAAiB,CAAC,sBAAsB,CAC9D,qBAAqB,EACrB,EAAE,MAAM,EAAE,KAAK,EAAE,EACjB,SAAS,CACV,CAAA;QAED,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9C,qEAAqE;QACrE,mEAAmE;QACnE,8DAA8D;QAC9D,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE;YACpC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,iBAAiB,EAAE,yBAAyB,EAAE;SAC1D,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAE3D,MAAM,MAAM,CACT,SAAiB,CAAC,sBAAsB,CACvC,qBAAqB,EACrB,EAAE,EACF,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAClC,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9C,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAE3D,MAAM,MAAM,CACT,SAAiB,CAAC,sBAAsB,CACvC,qBAAqB,EACrB,EAAE,EACF,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAClC,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;IACnE,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA,CAAC,qBAAqB;QAExE,MAAM,MAAM,CACT,SAAiB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAC9E,CAAC,OAAO,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAA;QAEpE,MAAM,MAAM,CACT,SAAiB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAC9E,CAAC,OAAO,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,iCAAiC,EAAE,EAAE,EAAE,CAAC,CAAA;QAC3E,yEAAyE;QACzE,MAAM,UAAU,GAA2B;YACzC,uBAAuB,EAAE,KAAK;YAC9B,yBAAyB,EAAE,SAAS;YACpC,iCAAiC,EAAE,KAAK;YACxC,0CAA0C;SAC3C,CAAA;QACD,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;QAE7E,MAAM,MAAM,CACT,SAAiB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,EAAE,EAAE,cAAc,CAAC,CACpF,CAAC,OAAO,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,iCAAiC,EAAE,cAAc,EAAE,CAAC,CAAA;QAEvF,MAAM,MAAM,CACT,SAAiB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAC9E,CAAC,OAAO,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,iCAAiC,EAAE,GAAG,EAAE,CAAC,CAAA;QAE5E,MAAM,MAAM,CACT,SAAiB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAC9E,CAAC,OAAO,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,UAAU,GAA2B;YACzC,uBAAuB,EAAE,KAAK;YAC9B,iCAAiC,EAAE,IAAI;YACvC,iCAAiC,EAAE,KAAK;YACxC,uBAAuB;SACxB,CAAA;QACD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;QAEvE,MAAM,MAAM,CACT,SAAiB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAC9E,CAAC,OAAO,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,UAAU,GAA2B;YACzC,uBAAuB,EAAE,KAAK;YAC9B,iCAAiC,EAAE,IAAI;YACvC,yBAAyB,EAAE,SAAS;YACpC,4BAA4B;SAC7B,CAAA;QACD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;QAEvE,MAAM,MAAM,CACT,SAAiB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAC9E,CAAC,OAAO,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,iCAAiC,EAAE,EAAE,EAAE,CAAC,CAAA;QAE3E,MAAM,MAAM,CACT,SAAiB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAC9E,CAAC,OAAO,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAE9E,QAAQ,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACvE,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,CAAC,SAAgB,EAAE,mBAAmB,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC9E,IAAI,CAAC,KAAK,CAAC,SAAgB,EAAE,MAAM,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;QAEjE,eAAe,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAE/C,MAAM,eAAe,GAAG;YACtB,gBAAgB,EAAE,CAAC,EAAI,yBAAyB;YAChD,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,gBAAgB,EAAE,KAAK;YACvB,gBAAgB,EAAE,YAAY;YAC9B,iBAAiB,EAAE,SAAS;YAC5B,iBAAiB,EAAE,YAAY;YAC/B,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,EAAE;YACV,cAAc,EAAE;gBACd,GAAG,EAAE,qBAAqB;gBAC1B,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,MAAM;gBAChB,cAAc,EAAE,CAAC;aAClB;SACF,CAAA;QAED,MAAM,QAAQ,GAAG,IAAI;aAClB,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC;aACzB,iBAAiB,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAEzD,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,iCAAiC,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,iBAAiB;QAC/F,MAAO,SAAiB,CAAC,qBAAqB,CAC5C,qBAAqB,EACrB,EAAE,cAAc,EAAE,eAAe,EAAE,EACnC,QAAQ,CACT,CAAA;QAED,0EAA0E;QAC1E,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAA;QAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAE9E,QAAQ,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAChF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,CAAC,SAAgB,EAAE,mBAAmB,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAE9E,MAAM,gBAAgB,GAAG;YACvB,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,gBAAgB,EAAE,KAAK;YACvB,gBAAgB,EAAE,KAAK;YACvB,iBAAiB,EAAE,SAAS;YAC5B,iBAAiB,EAAE,YAAY;YAC/B,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,EAAE;YACV,cAAc,EAAE;gBACd,GAAG,EAAE,qBAAqB;gBAC1B,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,MAAM;gBAChB,cAAc,EAAE,CAAC;aAClB;SACF,CAAA;QAED,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAA;QAClC,MAAM,MAAM,CACT,SAAiB,CAAC,qBAAqB,CACtC,qBAAqB,EACrB,EAAE,cAAc,EAAE,gBAAgB,EAAE,EACpC,QAAQ,CACT,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,iDAAiD;AACjD,8EAA8E;AAE9E,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,gBAAgB,CACtD,KAAK,EACL,EAAE,EACF,SAAS,EACT,IAAI,GAAG,CAAC,0BAA0B,CAAC,EACnC,KAAK,CACN,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,gBAAgB,CACtD,MAAM,EACN,EAAE,cAAc,EAAE,kBAAkB,EAAE,EACtC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,IAAI,GAAG,CAAC,yBAAyB,CAAC,EAClC,KAAK,CACN,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,gBAAgB,CACtD,KAAK,EACL,EAAE,EACF,SAAS,EACT,IAAI,GAAG,CAAC,iCAAiC,CAAC,EAC1C,KAAK,CACN,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,gBAAgB,CACtD,KAAK,EACL,EAAE,cAAc,EAAE,UAAU,EAAE,EAC9B,SAAS,EACT,IAAI,GAAG,CAAC,sBAAsB,CAAC,EAC/B,KAAK,CACN,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,gBAAgB,CACtD,KAAK,EACL,EAAE,aAAa,EAAE,iBAAiB,EAAE,EACpC,SAAS,EACT,IAAI,GAAG,CAAC,sBAAsB,CAAC,EAC/B,KAAK,CACN,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,MAAM,CACT,SAAiB,CAAC,gBAAgB,CACjC,KAAK,EACL,EAAE,yBAAyB,EAAE,SAAS,EAAE,EACxC,SAAS,EACT,IAAI,GAAG,CAAC,sBAAsB,CAAC,EAC/B,KAAK,CACN,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,MAAM,CACT,SAAiB,CAAC,gBAAgB,CACjC,KAAK,EACL,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAChC,SAAS,EACT,IAAI,GAAG,CAAC,sBAAsB,CAAC,EAC/B,KAAK,CACN,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,yEAAyE;QACzE,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,gBAAgB,CACtD,MAAM,EACN,EAAE,cAAc,EAAE,iCAAiC,EAAE,EACrD,SAAS,EACT,IAAI,GAAG,CAAC,yBAAyB,CAAC,EAClC,KAAK,CACN,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;QACpG,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,mBAAmB;QACnB,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,gBAAgB,CACtD,MAAM,EACN,EAAE,cAAc,EAAE,kBAAkB,EAAE,EACtC,SAAS,EACT,IAAI,GAAG,CAAC,yBAAyB,CAAC,EAClC,KAAK,CACN,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,gBAAgB,CACtD,QAAQ,EACR,EAAE,EACF,SAAS,EACT,IAAI,GAAG,CAAC,8BAA8B,CAAC,EACvC,KAAK,CACN,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,oDAAoD;AACpD,8EAA8E;AAE9E,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;IACjE,IAAI,SAAoB,CAAA;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;QACrE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAA;QACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAA;QACpE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACxC,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAA;QACpE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;QACtC,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;QACrE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;QACpD,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAA;QACvE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAA;QACzB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3B,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAA;QACnE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACzE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAA;QACnC,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAA;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,+DAA+D;QAC/D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;QAC1B,MAAM,MAAM,GAAI,SAAiB,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAA;QACpE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,IAAI,SAAoB,CAAA;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAA;QAC7E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAA;QACzE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACvB,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAA;QACzE,mCAAmC;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,6EAA6E;QAC7E,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;QAC/C,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAA;QACvE,iDAAiD;QACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,4EAA4E;QAC5E,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAA;QACvE,qEAAqE;QACrE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAA;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,iFAAiF;QACjF,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;QACxE,uCAAuC;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,yFAAyF;QACzF,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAA;QACzB,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC1B,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAA;QACtE,kCAAkC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,wEAAwE;QACxE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAA;QAC1E,yCAAyC;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,+EAA+E;QAC/E,6EAA6E;QAC7E,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAA;QACnC,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;QAC5B,MAAM,MAAM,GAAG,MAAO,SAAiB,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAA;QACvE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,IAAI,SAAoB,CAAA;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAE,SAAiB,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAE,SAAiB,CAAC,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAE,SAAiB,CAAC,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAE,SAAiB,CAAC,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAE,SAAiB,CAAC,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAE,SAAiB,CAAC,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,MAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,IAAI,SAAoB,CAAA;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAE,SAAiB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAE,SAAiB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAE,SAAiB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7D,MAAM,CAAE,SAAiB,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9D,MAAM,CAAE,SAAiB,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,MAAO,SAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,MAAO,SAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;YAC9C,IAAI,QAAQ,GAAG,KAAK,CAAA;YACpB,MAAM,OAAO,GAAI,SAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAA,CAAC,CAAC,CAAC,CAAA;YAC5E,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC5B,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAA;YACxC,MAAM,OAAO,CAAA;YACb,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,IAAI,SAAoB,CAAA;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,SAAS,OAAO,CAAE,YAA0B,EAAE;QAC5C,OAAO;YACL,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,KAAK;YACxB,gBAAgB,EAAE,KAAK;YACvB,GAAG,SAAS;SACb,CAAA;IACH,CAAC;IAED,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;QACrB,MAAM,CAAE,SAAiB,CAAC,0BAA0B,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;QACrB,MAAM,CAAE,SAAiB,CAAC,0BAA0B,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;QACrB,MAAM,CAAE,SAAiB,CAAC,0BAA0B,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;QACrB,MAAM,CAAE,SAAiB,CAAC,0BAA0B,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5F,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAC7C;QAAC,SAAiB,CAAC,oBAAoB,CAAC,IAAI,CAC3C,EAAE,YAAY,EAAE,OAAO,EAAE,EACzB,EAAE,YAAY,EAAE,OAAO,EAAE,CAC1B,CAAA;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,2BAA2B,EAAE,CAAA;QACrD,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;QAEzD,6BAA6B;QAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,2BAA2B,EAAE,CAAA;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,CAAC,SAAS,CAAC,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAE9E,QAAQ,CAAC,sDAAsD,EAAE,GAAG,EAAE;IACpE,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9C,mCAAmC;QACnC,MAAM,CAAE,SAAiB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;QAE1E,MAAM,SAAS,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3C,IAAI,gBAAyE,CAAA;QAE7E,MAAM,SAAS,GAAG;YAChB,6BAA6B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAO,EAAE,EAAE;gBACjD,gBAAgB,GAAG,EAAE,CAAA;gBACrB,OAAO,EAAE,CAAA;YACX,CAAC,CAAC;YACF,oCAAoC,EAAE,IAAI,CAAC,EAAE,EAAE;YAC/C,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;gBACtC,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAgB,CAAC,CAAA;YACjD,CAAC,CAAC;SACH,CAAA;QAED,gFAAgF;QAChF,MAAM,SAAS,GAAG,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAClE,IAAI,CAAC,KAAK,CAAC,SAAgB,EAAE,wBAAwB,CAAC,CAAC,sBAAsB,CAC3E,KAAK,EAAE,GAAW,EAAE,KAAU,EAAE,EAAE;YAChC,gEAAgE;YAChE,CAAC;YAAC,SAAiB,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG;gBACpD,IAAI,EAAE,SAAS;gBACf,0BAA0B,EAAE,EAAE;aAC/B,CAAA;YACD,OAAO,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC9B,CAAC,CACF,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,sBAAsB,CACnD,6BAA6B,EAC7B,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAS,CACrC,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,IAAI,SAAoB,CAAA;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACpE;QAAC,SAAiB,CAAC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACtE,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,iCAAiC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC/E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACnE;QAAC,SAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACpE,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,gCAAgC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACnE;QAAC,SAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACpE,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,gCAAgC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAChC;QAAC,OAAe,CAAC,IAAI,GAAG,SAAS,CAAA;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACnE,IAAI,CAAC;YACH,CAAC;YAAC,SAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;YACjE,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAA;QAC3E,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,IAAI,GAAG,YAAY,CAAA;QAC7B,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAE9E,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC3D,IAAI,SAAoB,CAAA;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAI,SAAiB,CAAC,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAChE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAClD,MAAM,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAI,SAAiB,CAAC,uBAAuB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;QAClF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACjD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,KAAK,GAAI,SAAiB,CAAC,uBAAuB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;IAC5D,IAAI,SAAoB,CAAA;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,SAAS,WAAW;QAClB,OAAO;YACL,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,WAAW;YAC9B,gBAAgB,EAAE,KAAK;YACvB,gBAAgB,EAAE,KAAK;YACvB,iBAAiB,EAAE,KAAK;YACxB,iBAAiB,EAAE,KAAK;YACxB,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE;SAC3G,CAAA;IACH,CAAC;IAED,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,GAAG,GAAI,SAAiB,CAAC,wBAAwB,CACrD,yBAAyB,EACzB,WAAW,EAAE,EACb,IAAI,KAAK,CAAC,YAAY,CAAC,CACxB,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAA;QACxD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,GAAG,GAAI,SAAiB,CAAC,wBAAwB,CACrD,yBAAyB,EACzB,WAAW,EAAE,EACb,IAAI,KAAK,CAAC,GAAG,CAAC,CACf,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QACjC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7C,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;QACrC,MAAM,GAAG,GAAI,SAAiB,CAAC,wBAAwB,CACrD,yBAAyB,EACzB,WAAW,EAAE,EACb,KAAK,CACN,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,GAAG,GAAI,SAAiB,CAAC,wBAAwB,CACrD,yBAAyB,EACzB,WAAW,EAAE,EACb,cAAc,CACf,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;IACnC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAI,SAAiB,CAAC,0BAA0B,CAC3D,8BAA8B,EAC9B,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CACpE,CAAA;QACD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QACxD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;QAC9D,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAI,SAAiB,CAAC,0BAA0B,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;QACxF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,264 +0,0 @@
1
- import { jest } from '@jest/globals';
2
- import { AuthFetch } from '../AuthFetch.js';
3
- import { Utils, PrivateKey } from '../../../primitives/index.js';
4
- jest.mock('../../utils/createNonce.js', () => ({
5
- createNonce: jest.fn()
6
- }));
7
- import { createNonce } from '../../utils/createNonce.js';
8
- const createNonceMock = createNonce;
9
- function createWalletStub() {
10
- const identityKey = new PrivateKey(10).toPublicKey().toString();
11
- const derivedKey = new PrivateKey(11).toPublicKey().toString();
12
- return {
13
- getPublicKey: jest.fn(async (options) => {
14
- if (options?.identityKey === true) {
15
- return { publicKey: identityKey };
16
- }
17
- return { publicKey: derivedKey };
18
- }),
19
- createAction: jest.fn(async () => ({
20
- tx: Utils.toArray('mock-transaction', 'utf8')
21
- })),
22
- createHmac: jest.fn(async () => ({
23
- hmac: new Array(32).fill(7)
24
- }))
25
- };
26
- }
27
- function createPaymentRequiredResponse(overrides = {}) {
28
- const headers = {
29
- 'x-bsv-payment-version': '1.0',
30
- 'x-bsv-payment-satoshis-required': '5',
31
- 'x-bsv-auth-identity-key': 'server-key',
32
- 'x-bsv-payment-derivation-prefix': 'prefix',
33
- ...overrides
34
- };
35
- return new Response('', { status: 402, headers });
36
- }
37
- afterEach(() => {
38
- jest.restoreAllMocks();
39
- createNonceMock.mockReset();
40
- });
41
- describe('AuthFetch payment handling', () => {
42
- test('createPaymentContext builds a complete retry context', async () => {
43
- const wallet = createWalletStub();
44
- const authFetch = new AuthFetch(wallet);
45
- createNonceMock.mockResolvedValueOnce('suffix-from-test');
46
- const config = {
47
- method: 'POST',
48
- headers: { 'Content-Type': 'application/json' },
49
- body: { hello: 'world' }
50
- };
51
- const context = await authFetch.createPaymentContext('https://api.example.com/resource', config, 42, 'remote-identity-key', 'test-prefix');
52
- expect(context.satoshisRequired).toBe(42);
53
- expect(context.serverIdentityKey).toBe('remote-identity-key');
54
- expect(context.derivationPrefix).toBe('test-prefix');
55
- expect(context.derivationSuffix).toBe('suffix-from-test');
56
- expect(context.transactionBase64).toBe(Utils.toBase64(Utils.toArray('mock-transaction', 'utf8')));
57
- expect(context.clientIdentityKey).toEqual(expect.any(String));
58
- expect(context.attempts).toBe(0);
59
- expect(context.maxAttempts).toBe(3);
60
- expect(context.errors).toEqual([]);
61
- expect(context.requestSummary).toMatchObject({
62
- url: 'https://api.example.com/resource',
63
- method: 'POST',
64
- headers: { 'Content-Type': 'application/json' },
65
- bodyType: 'object'
66
- });
67
- expect(context.requestSummary.bodyByteLength).toBe(Utils.toArray(JSON.stringify(config.body), 'utf8').length);
68
- expect(wallet.createAction).toHaveBeenCalledWith(expect.objectContaining({
69
- description: expect.stringContaining('https://api.example.com'),
70
- outputs: [
71
- expect.objectContaining({
72
- satoshis: 42,
73
- customInstructions: expect.stringContaining('remote-identity-key')
74
- })
75
- ]
76
- }), undefined);
77
- });
78
- test('handlePaymentAndRetry reuses compatible contexts and adds payment header', async () => {
79
- const wallet = createWalletStub();
80
- const authFetch = new AuthFetch(wallet);
81
- const paymentContext = {
82
- satoshisRequired: 5,
83
- transactionBase64: Utils.toBase64([1, 2, 3]),
84
- derivationPrefix: 'prefix',
85
- derivationSuffix: 'suffix',
86
- serverIdentityKey: 'server-key',
87
- clientIdentityKey: 'client-key',
88
- attempts: 0,
89
- maxAttempts: 3,
90
- errors: [],
91
- requestSummary: {
92
- url: 'https://api.example.com/resource',
93
- method: 'POST',
94
- headers: { 'X-Test': '1' },
95
- bodyType: 'none',
96
- bodyByteLength: 0
97
- }
98
- };
99
- const fetchSpy = jest.spyOn(authFetch, 'fetch').mockResolvedValue({ status: 200 });
100
- jest.spyOn(authFetch, 'logPaymentAttempt').mockImplementation(() => { });
101
- const createPaymentContextSpy = jest.spyOn(authFetch, 'createPaymentContext');
102
- const config = {
103
- headers: { 'x-custom': 'value' },
104
- paymentContext
105
- };
106
- const response = createPaymentRequiredResponse();
107
- const result = await authFetch.handlePaymentAndRetry('https://api.example.com/resource', config, response);
108
- expect(result).toEqual({ status: 200 });
109
- expect(paymentContext.attempts).toBe(1);
110
- expect(fetchSpy).toHaveBeenCalledTimes(1);
111
- const callArgs = fetchSpy.mock.calls[0];
112
- const nextConfig = callArgs?.[1];
113
- expect(nextConfig).toBeDefined();
114
- expect(nextConfig.paymentContext).toBe(paymentContext);
115
- expect(nextConfig.retryCounter).toBe(3);
116
- const paymentHeader = JSON.parse(nextConfig.headers['x-bsv-payment']);
117
- expect(paymentHeader).toEqual({
118
- derivationPrefix: 'prefix',
119
- derivationSuffix: 'suffix',
120
- transaction: Utils.toBase64([1, 2, 3])
121
- });
122
- expect(createPaymentContextSpy).not.toHaveBeenCalled();
123
- });
124
- test('handlePaymentAndRetry exhausts attempts and throws detailed error', async () => {
125
- const wallet = createWalletStub();
126
- const authFetch = new AuthFetch(wallet);
127
- jest.spyOn(authFetch, 'logPaymentAttempt').mockImplementation(() => { });
128
- jest.spyOn(authFetch, 'wait').mockResolvedValue(undefined);
129
- const firstError = new Error('payment attempt 1 failed');
130
- const secondError = new Error('payment attempt 2 failed');
131
- jest.spyOn(authFetch, 'fetch')
132
- .mockRejectedValueOnce(firstError)
133
- .mockRejectedValueOnce(secondError);
134
- const paymentContext = {
135
- satoshisRequired: 5,
136
- transactionBase64: Utils.toBase64([9, 9, 9]),
137
- derivationPrefix: 'prefix',
138
- derivationSuffix: 'suffix',
139
- serverIdentityKey: 'server-key',
140
- clientIdentityKey: 'client-key',
141
- attempts: 0,
142
- maxAttempts: 2,
143
- errors: [],
144
- requestSummary: {
145
- url: 'https://api.example.com/resource',
146
- method: 'GET',
147
- headers: {},
148
- bodyType: 'none',
149
- bodyByteLength: 0
150
- }
151
- };
152
- const config = { paymentContext };
153
- const response = createPaymentRequiredResponse();
154
- await expect((async () => {
155
- try {
156
- await authFetch.handlePaymentAndRetry('https://api.example.com/resource', config, response);
157
- }
158
- catch (error) {
159
- const err = error;
160
- expect(err.message).toBe('Paid request to https://api.example.com/resource failed after 2/2 attempts. Sent 5 satoshis to server-key.');
161
- expect(err.details).toMatchObject({
162
- attempts: { used: 2, max: 2 },
163
- payment: expect.objectContaining({
164
- satoshis: 5,
165
- serverIdentityKey: 'server-key',
166
- clientIdentityKey: 'client-key'
167
- })
168
- });
169
- expect(err.details.errors).toHaveLength(2);
170
- expect(err.details.errors[0]).toEqual(expect.objectContaining({
171
- attempt: 1,
172
- message: 'payment attempt 1 failed'
173
- }));
174
- expect(err.details.errors[1]).toEqual(expect.objectContaining({
175
- attempt: 2,
176
- message: 'payment attempt 2 failed'
177
- }));
178
- expect(typeof err.details.errors[0].timestamp).toBe('string');
179
- expect(err.cause).toBe(secondError);
180
- throw error;
181
- }
182
- })()).rejects.toThrow('Paid request to https://api.example.com/resource failed after 2/2 attempts. Sent 5 satoshis to server-key.');
183
- expect(paymentContext.attempts).toBe(2);
184
- expect(paymentContext.errors).toHaveLength(2);
185
- });
186
- });
187
- describe('AuthFetch certificate request handling', () => {
188
- const requestedCertificates = {
189
- certifiers: ['certifier-key'],
190
- types: { 'certificate-type': ['firstName'] }
191
- };
192
- test('sendCertificateRequest resolves and cleans up listener when certificates are received', async () => {
193
- const wallet = createWalletStub();
194
- const authFetch = new AuthFetch(wallet);
195
- let certificatesListener;
196
- const stopListeningForCertificatesReceived = jest.fn();
197
- const requestCertificates = jest.fn(async () => {
198
- certificatesListener?.('server-identity', [{ serialNumber: 'abc123' }]);
199
- });
200
- const peerStub = {
201
- listenForCertificatesReceived: jest.fn((listener) => {
202
- certificatesListener = listener;
203
- return 7;
204
- }),
205
- stopListeningForCertificatesReceived,
206
- requestCertificates
207
- };
208
- authFetch.peers['https://api.example.com'] = {
209
- peer: peerStub,
210
- pendingCertificateRequests: []
211
- };
212
- const certs = await authFetch.sendCertificateRequest('https://api.example.com', requestedCertificates);
213
- expect(certs).toHaveLength(1);
214
- expect(requestCertificates).toHaveBeenCalledWith(requestedCertificates, undefined);
215
- expect(stopListeningForCertificatesReceived).toHaveBeenCalledWith(7);
216
- });
217
- test('sendCertificateRequest rejects and cleans up listener when requestCertificates throws', async () => {
218
- const wallet = createWalletStub();
219
- const authFetch = new AuthFetch(wallet);
220
- const requestError = new Error('request failed');
221
- const stopListeningForCertificatesReceived = jest.fn();
222
- const requestCertificates = jest.fn(async () => {
223
- throw requestError;
224
- });
225
- const peerStub = {
226
- listenForCertificatesReceived: jest.fn(() => 9),
227
- stopListeningForCertificatesReceived,
228
- requestCertificates
229
- };
230
- authFetch.peers['https://api.example.com'] = {
231
- peer: peerStub,
232
- pendingCertificateRequests: []
233
- };
234
- await expect(authFetch.sendCertificateRequest('https://api.example.com', requestedCertificates)).rejects.toThrow('request failed');
235
- expect(stopListeningForCertificatesReceived).toHaveBeenCalledWith(9);
236
- });
237
- test('sendCertificateRequest times out and cleans up listener when no certificate response arrives', async () => {
238
- jest.useFakeTimers();
239
- try {
240
- const wallet = createWalletStub();
241
- const authFetch = new AuthFetch(wallet);
242
- const stopListeningForCertificatesReceived = jest.fn();
243
- const requestCertificates = jest.fn(async () => { });
244
- const peerStub = {
245
- listenForCertificatesReceived: jest.fn(() => 11),
246
- stopListeningForCertificatesReceived,
247
- requestCertificates
248
- };
249
- authFetch.peers['https://api.example.com'] = {
250
- peer: peerStub,
251
- pendingCertificateRequests: []
252
- };
253
- const pending = authFetch.sendCertificateRequest('https://api.example.com', requestedCertificates);
254
- const timeoutAssertion = expect(pending).rejects.toThrow('sendCertificateRequest timed out after 30000ms waiting for certificate response from https://api.example.com');
255
- await jest.advanceTimersByTimeAsync(30000);
256
- await timeoutAssertion;
257
- expect(stopListeningForCertificatesReceived).toHaveBeenCalledWith(11);
258
- }
259
- finally {
260
- jest.useRealTimers();
261
- }
262
- });
263
- });
264
- //# sourceMappingURL=AuthFetch.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthFetch.test.js","sourceRoot":"","sources":["../../../../../../src/auth/clients/__tests__/AuthFetch.test.ts"],"names":[],"mappings":"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"}