@bitgo-beta/abstract-utxo 1.6.1-alpha.41 → 1.6.1-alpha.411

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 (175) hide show
  1. package/dist/src/abstractUtxoCoin.d.ts +209 -98
  2. package/dist/src/abstractUtxoCoin.d.ts.map +1 -1
  3. package/dist/src/abstractUtxoCoin.js +314 -541
  4. package/dist/src/descriptor/NamedDescriptor.d.ts +20 -0
  5. package/dist/src/descriptor/NamedDescriptor.d.ts.map +1 -0
  6. package/dist/src/descriptor/NamedDescriptor.js +79 -0
  7. package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
  8. package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
  9. package/dist/src/descriptor/assertDescriptorWalletAddress.js +66 -0
  10. package/dist/src/descriptor/builder/builder.d.ts +13 -0
  11. package/dist/src/descriptor/builder/builder.d.ts.map +1 -0
  12. package/dist/src/descriptor/builder/builder.js +37 -0
  13. package/dist/src/descriptor/builder/index.d.ts +3 -0
  14. package/dist/src/descriptor/builder/index.d.ts.map +1 -0
  15. package/dist/src/descriptor/builder/index.js +8 -0
  16. package/dist/src/descriptor/builder/parse.d.ts +5 -0
  17. package/dist/src/descriptor/builder/parse.d.ts.map +1 -0
  18. package/dist/src/descriptor/builder/parse.js +149 -0
  19. package/dist/src/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
  20. package/dist/src/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
  21. package/dist/src/descriptor/createWallet/createDescriptorWallet.js +74 -0
  22. package/dist/src/descriptor/createWallet/createDescriptors.d.ts +12 -0
  23. package/dist/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
  24. package/dist/src/descriptor/createWallet/createDescriptors.js +33 -0
  25. package/dist/src/descriptor/createWallet/index.d.ts +3 -0
  26. package/dist/src/descriptor/createWallet/index.d.ts.map +1 -0
  27. package/dist/src/descriptor/createWallet/index.js +19 -0
  28. package/dist/src/descriptor/descriptorWallet.d.ts +19 -0
  29. package/dist/src/descriptor/descriptorWallet.d.ts.map +1 -0
  30. package/dist/src/descriptor/descriptorWallet.js +54 -0
  31. package/dist/src/descriptor/index.d.ts +8 -0
  32. package/dist/src/descriptor/index.d.ts.map +1 -0
  33. package/dist/src/descriptor/index.js +53 -0
  34. package/dist/src/descriptor/validatePolicy.d.ts +22 -0
  35. package/dist/src/descriptor/validatePolicy.d.ts.map +1 -0
  36. package/dist/src/descriptor/validatePolicy.js +92 -0
  37. package/dist/src/index.d.ts +4 -0
  38. package/dist/src/index.d.ts.map +1 -1
  39. package/dist/src/index.js +32 -2
  40. package/dist/src/keychains.d.ts +48 -0
  41. package/dist/src/keychains.d.ts.map +1 -0
  42. package/dist/src/keychains.js +104 -0
  43. package/dist/src/names.d.ts +26 -0
  44. package/dist/src/names.d.ts.map +1 -0
  45. package/dist/src/names.js +214 -0
  46. package/dist/src/offlineVault/OfflineVaultHalfSigned.d.ts +8 -0
  47. package/dist/src/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -0
  48. package/dist/src/offlineVault/OfflineVaultHalfSigned.js +59 -0
  49. package/dist/src/offlineVault/OfflineVaultSignable.d.ts +46 -0
  50. package/dist/src/offlineVault/OfflineVaultSignable.d.ts.map +1 -0
  51. package/dist/src/offlineVault/OfflineVaultSignable.js +55 -0
  52. package/dist/src/offlineVault/TransactionExplanation.d.ts +15 -0
  53. package/dist/src/offlineVault/TransactionExplanation.d.ts.map +1 -0
  54. package/dist/src/offlineVault/TransactionExplanation.js +16 -0
  55. package/dist/src/offlineVault/descriptor/index.d.ts +2 -0
  56. package/dist/src/offlineVault/descriptor/index.d.ts.map +1 -0
  57. package/dist/src/offlineVault/descriptor/index.js +18 -0
  58. package/dist/src/offlineVault/descriptor/transaction.d.ts +38 -0
  59. package/dist/src/offlineVault/descriptor/transaction.d.ts.map +1 -0
  60. package/dist/src/offlineVault/descriptor/transaction.js +80 -0
  61. package/dist/src/offlineVault/index.d.ts +6 -0
  62. package/dist/src/offlineVault/index.d.ts.map +1 -0
  63. package/dist/src/offlineVault/index.js +44 -0
  64. package/dist/src/recovery/RecoveryProvider.d.ts +1 -1
  65. package/dist/src/recovery/RecoveryProvider.d.ts.map +1 -1
  66. package/dist/src/recovery/RecoveryProvider.js +2 -4
  67. package/dist/src/recovery/backupKeyRecovery.d.ts +42 -16
  68. package/dist/src/recovery/backupKeyRecovery.d.ts.map +1 -1
  69. package/dist/src/recovery/backupKeyRecovery.js +174 -102
  70. package/dist/src/recovery/baseApi.d.ts +3 -6
  71. package/dist/src/recovery/baseApi.d.ts.map +1 -1
  72. package/dist/src/recovery/baseApi.js +6 -6
  73. package/dist/src/recovery/coingeckoApi.d.ts +0 -3
  74. package/dist/src/recovery/coingeckoApi.d.ts.map +1 -1
  75. package/dist/src/recovery/coingeckoApi.js +1 -4
  76. package/dist/src/recovery/crossChainRecovery.d.ts +5 -4
  77. package/dist/src/recovery/crossChainRecovery.d.ts.map +1 -1
  78. package/dist/src/recovery/crossChainRecovery.js +95 -25
  79. package/dist/src/recovery/index.d.ts +0 -1
  80. package/dist/src/recovery/index.d.ts.map +1 -1
  81. package/dist/src/recovery/index.js +6 -3
  82. package/dist/src/recovery/mempoolApi.d.ts.map +1 -1
  83. package/dist/src/recovery/mempoolApi.js +10 -7
  84. package/dist/src/replayProtection.js +37 -5
  85. package/dist/src/sign.d.ts +31 -8
  86. package/dist/src/sign.d.ts.map +1 -1
  87. package/dist/src/sign.js +116 -15
  88. package/dist/src/transaction/bip322.d.ts +27 -0
  89. package/dist/src/transaction/bip322.d.ts.map +1 -0
  90. package/dist/src/transaction/bip322.js +125 -0
  91. package/dist/src/transaction/common/verifyPayGoAmount.d.ts +2 -0
  92. package/dist/src/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
  93. package/dist/src/transaction/common/verifyPayGoAmount.js +3 -0
  94. package/dist/src/transaction/descriptor/explainPsbt.d.ts +5 -0
  95. package/dist/src/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  96. package/dist/src/transaction/descriptor/explainPsbt.js +80 -0
  97. package/dist/src/transaction/descriptor/index.d.ts +7 -0
  98. package/dist/src/transaction/descriptor/index.d.ts.map +1 -0
  99. package/dist/src/transaction/descriptor/index.js +14 -0
  100. package/dist/src/transaction/descriptor/parse.d.ts +15 -0
  101. package/dist/src/transaction/descriptor/parse.d.ts.map +1 -0
  102. package/dist/src/transaction/descriptor/parse.js +116 -0
  103. package/dist/src/transaction/descriptor/parseToAmountType.d.ts +13 -0
  104. package/dist/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
  105. package/dist/src/transaction/descriptor/parseToAmountType.js +60 -0
  106. package/dist/src/transaction/descriptor/recipient.d.ts +5 -0
  107. package/dist/src/transaction/descriptor/recipient.d.ts.map +1 -0
  108. package/dist/src/transaction/descriptor/recipient.js +3 -0
  109. package/dist/src/transaction/descriptor/signPsbt.d.ts +25 -0
  110. package/dist/src/transaction/descriptor/signPsbt.d.ts.map +1 -0
  111. package/dist/src/transaction/descriptor/signPsbt.js +43 -0
  112. package/dist/src/transaction/descriptor/verifyTransaction.d.ts +33 -0
  113. package/dist/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
  114. package/dist/src/transaction/descriptor/verifyTransaction.js +105 -0
  115. package/dist/src/transaction/explainTransaction.d.ts +17 -0
  116. package/dist/src/transaction/explainTransaction.d.ts.map +1 -0
  117. package/dist/src/transaction/explainTransaction.js +67 -0
  118. package/dist/src/transaction/fetchInputs.d.ts +26 -0
  119. package/dist/src/transaction/fetchInputs.d.ts.map +1 -0
  120. package/dist/src/transaction/fetchInputs.js +109 -0
  121. package/dist/src/transaction/fixedScript/explainTransaction.d.ts +32 -0
  122. package/dist/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
  123. package/dist/src/transaction/fixedScript/explainTransaction.js +317 -0
  124. package/dist/src/transaction/fixedScript/index.d.ts +6 -0
  125. package/dist/src/transaction/fixedScript/index.d.ts.map +1 -0
  126. package/dist/src/transaction/fixedScript/index.js +13 -0
  127. package/dist/src/transaction/fixedScript/parseOutput.d.ts +26 -0
  128. package/dist/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
  129. package/dist/src/transaction/fixedScript/parseOutput.js +213 -0
  130. package/dist/src/transaction/fixedScript/parseTransaction.d.ts +7 -0
  131. package/dist/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
  132. package/dist/src/transaction/fixedScript/parseTransaction.js +203 -0
  133. package/dist/src/transaction/fixedScript/signTransaction.d.ts +18 -0
  134. package/dist/src/transaction/fixedScript/signTransaction.d.ts.map +1 -0
  135. package/dist/src/transaction/fixedScript/signTransaction.js +100 -0
  136. package/dist/src/transaction/fixedScript/verifyTransaction.d.ts +4 -0
  137. package/dist/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
  138. package/dist/src/transaction/fixedScript/verifyTransaction.js +176 -0
  139. package/dist/src/transaction/getPayGoVerificationPubkey.d.ts +9 -0
  140. package/dist/src/transaction/getPayGoVerificationPubkey.d.ts.map +1 -0
  141. package/dist/src/transaction/getPayGoVerificationPubkey.js +53 -0
  142. package/dist/src/transaction/index.d.ts +7 -0
  143. package/dist/src/transaction/index.d.ts.map +1 -0
  144. package/dist/src/transaction/index.js +49 -0
  145. package/dist/src/transaction/outputDifference.d.ts +40 -0
  146. package/dist/src/transaction/outputDifference.d.ts.map +1 -0
  147. package/dist/src/transaction/outputDifference.js +47 -0
  148. package/dist/src/transaction/parseTransaction.d.ts +3 -0
  149. package/dist/src/transaction/parseTransaction.d.ts.map +1 -0
  150. package/dist/src/transaction/parseTransaction.js +48 -0
  151. package/dist/src/transaction/recipient.d.ts +29 -0
  152. package/dist/src/transaction/recipient.d.ts.map +1 -0
  153. package/dist/src/transaction/recipient.js +88 -0
  154. package/dist/src/transaction/signTransaction.d.ts +6 -0
  155. package/dist/src/transaction/signTransaction.d.ts.map +1 -0
  156. package/dist/src/transaction/signTransaction.js +102 -0
  157. package/dist/src/transaction/verifyTransaction.d.ts +4 -0
  158. package/dist/src/transaction/verifyTransaction.d.ts.map +1 -0
  159. package/dist/src/transaction/verifyTransaction.js +50 -0
  160. package/dist/src/verifyKey.d.ts +28 -0
  161. package/dist/src/verifyKey.d.ts.map +1 -0
  162. package/dist/src/verifyKey.js +164 -0
  163. package/dist/src/wallet.d.ts +15 -0
  164. package/dist/src/wallet.d.ts.map +1 -0
  165. package/dist/src/wallet.js +8 -0
  166. package/package.json +20 -14
  167. package/.eslintignore +0 -5
  168. package/CHANGELOG.md +0 -235
  169. package/dist/src/parseOutput.d.ts +0 -22
  170. package/dist/src/parseOutput.d.ts.map +0 -1
  171. package/dist/src/parseOutput.js +0 -181
  172. package/dist/src/recovery/smartbitApi.d.ts +0 -11
  173. package/dist/src/recovery/smartbitApi.d.ts.map +0 -1
  174. package/dist/src/recovery/smartbitApi.js +0 -36
  175. package/dist/tsconfig.tsbuildinfo +0 -8041
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.BaseApi = exports.ApiRequestError = exports.ApiNotImplementedError = void 0;
4
- /**
5
- * @prettier
6
- */
7
- const superagent = require("superagent");
7
+ const superagent_1 = __importDefault(require("superagent"));
8
8
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
9
  class ApiNotImplementedError extends sdk_core_1.BitGoJsError {
10
10
  constructor(coinName) {
@@ -41,7 +41,7 @@ class BaseApi {
41
41
  const url = this.baseUrl + path;
42
42
  let response;
43
43
  try {
44
- response = await superagent(method, url)
44
+ response = await (0, superagent_1.default)(method, url)
45
45
  .retry(params.retry)
46
46
  .send(requestBody);
47
47
  }
@@ -70,4 +70,4 @@ class BaseApi {
70
70
  }
71
71
  }
72
72
  exports.BaseApi = BaseApi;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWNvdmVyeS9iYXNlQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLG1EQUFvRDtBQUVwRCxNQUFhLHNCQUF1QixTQUFRLHVCQUFZO0lBQ3RELFlBQVksUUFBZ0I7UUFDMUIsS0FBSyxDQUFDLGdDQUFnQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQUpELHdEQUlDO0FBRUQsTUFBYSxlQUFnQixTQUFRLHVCQUFZO0lBQy9DLFlBQVksR0FBVyxFQUFFLE1BQXNCO1FBQzdDLEtBQUssQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBdUIsRUFBRSxNQUFzQjtRQUMvRCxPQUFPLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUF3QixFQUFFLE1BQXNCO1FBQ2pFLE9BQU8sSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUFaRCwwQ0FZQztBQVVELE1BQWEsT0FBTztJQUNsQixZQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsTUFBYyxFQUNkLElBQVksRUFDWixXQUFnQyxFQUNoQyxTQUF5QixFQUFFO1FBRTNCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztTQUN2RDtRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSTtZQUNGLFFBQVEsR0FBRyxNQUFNLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO2lCQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztpQkFDbkIsSUFBSSxDQUFDLFdBQXNDLENBQUMsQ0FBQztTQUNqRDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNoQixNQUFNLElBQUksZUFBZSxDQUFDLEdBQUcsRUFBRSxlQUFlLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsT0FBTztZQUNMLEdBQUcsQ0FBSSxDQUFpQjtnQkFDdEIsSUFBSTtvQkFDRixPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3pCO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNWLE1BQU0sSUFBSSxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNuQztZQUNILENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELEdBQUcsQ0FBSSxJQUFZLEVBQUUsTUFBdUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLENBQUksSUFBWSxFQUFFLElBQWEsRUFBRSxNQUF1QjtRQUMxRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBbERELDBCQWtEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCAqIGFzIHN1cGVyYWdlbnQgZnJvbSAnc3VwZXJhZ2VudCc7XG5pbXBvcnQgeyBCaXRHb0pzRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBcGlOb3RJbXBsZW1lbnRlZEVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgY29uc3RydWN0b3IoY29pbk5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKGBhcGkgbm90IGltcGxlbWVudGVkIGZvciBjb2luICR7Y29pbk5hbWV9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwaVJlcXVlc3RFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHVybDogc3RyaW5nLCByZWFzb246IEVycm9yIHwgc3RyaW5nKSB7XG4gICAgc3VwZXIoYGVycm9yIGluIEFQSSByZXF1ZXN0OiAke3VybH06ICR7cmVhc29ufWApO1xuICB9XG5cbiAgc3RhdGljIGZvclJlcXVlc3QocmVxOiBzdXBlcmFnZW50LlJlcXVlc3QsIHJlYXNvbjogRXJyb3IgfCBzdHJpbmcpOiBBcGlSZXF1ZXN0RXJyb3Ige1xuICAgIHJldHVybiBuZXcgQXBpUmVxdWVzdEVycm9yKHJlcS50b1N0cmluZygpLCByZWFzb24pO1xuICB9XG5cbiAgc3RhdGljIGZvclJlc3BvbnNlKHJlczogc3VwZXJhZ2VudC5SZXNwb25zZSwgcmVhc29uOiBFcnJvciB8IHN0cmluZyk6IEFwaVJlcXVlc3RFcnJvciB7XG4gICAgcmV0dXJuIG5ldyBBcGlSZXF1ZXN0RXJyb3IocmVzLmhlYWRlciwgcmVhc29uKTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBSZXF1ZXN0T3B0aW9ucyA9IHtcbiAgcmV0cnk/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBSZXNwb25zZTxUPiA9IHtcbiAgbWFwPFY+KGY6IChib2R5OiBUKSA9PiBWKTogVjtcbn07XG5cbmV4cG9ydCBjbGFzcyBCYXNlQXBpIHtcbiAgY29uc3RydWN0b3IocHVibGljIGJhc2VVcmw6IHN0cmluZykge1xuICAgIGlmICghYmFzZVVybC5zdGFydHNXaXRoKCdodHRwczovLycpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhc2VVcmwgbXVzdCBzdGFydCB3aXRoIGh0dHBzOi8vYCk7XG4gICAgfVxuICAgIGlmIChiYXNlVXJsLmVuZHNXaXRoKGAvYCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgYmFzZVVybCBtdXN0IG5vdCBlbmQgd2l0aCBzbGFzaCAoLylgKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyByZXF1ZXN0PFQ+KFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICByZXF1ZXN0Qm9keTogdW5rbm93biB8IHVuZGVmaW5lZCxcbiAgICBwYXJhbXM6IFJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxSZXNwb25zZTxUPj4ge1xuICAgIGlmICghcGF0aC5zdGFydHNXaXRoKHBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHBhdGggbXVzdCBzdGFydCB3aXRoICcvJyBjaGFyYWN0ZXJgKTtcbiAgICB9XG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgcGF0aDtcbiAgICBsZXQgcmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgc3VwZXJhZ2VudChtZXRob2QsIHVybClcbiAgICAgICAgLnJldHJ5KHBhcmFtcy5yZXRyeSlcbiAgICAgICAgLnNlbmQocmVxdWVzdEJvZHkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBBcGlSZXF1ZXN0RXJyb3IodXJsLCBlKTtcbiAgICB9XG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEFwaVJlcXVlc3RFcnJvcih1cmwsIGBzdGF0dXMgY29kZSAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1hcDxWPihmOiAoYm9keTogVCkgPT4gVik6IFYge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBmKHJlc3BvbnNlLmJvZHkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEFwaVJlcXVlc3RFcnJvcih1cmwsIGUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBnZXQ8VD4ocGF0aDogc3RyaW5nLCBwYXJhbXM/OiBSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8UmVzcG9uc2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KCdnZXQnLCBwYXRoLCB1bmRlZmluZWQsIHBhcmFtcyk7XG4gIH1cblxuICBwb3N0PFQ+KHBhdGg6IHN0cmluZywgYm9keTogdW5rbm93biwgcGFyYW1zPzogUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPFJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdCgncG9zdCcsIHBhdGgsIGJvZHksIHBhcmFtcyk7XG4gIH1cbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWNvdmVyeS9iYXNlQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDREQUFvQztBQUNwQyxtREFBb0Q7QUFFcEQsTUFBYSxzQkFBdUIsU0FBUSx1QkFBWTtJQUN0RCxZQUFZLFFBQWdCO1FBQzFCLEtBQUssQ0FBQyxnQ0FBZ0MsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUFKRCx3REFJQztBQUVELE1BQWEsZUFBZ0IsU0FBUSx1QkFBWTtJQUMvQyxZQUFZLEdBQVcsRUFBRSxNQUFzQjtRQUM3QyxLQUFLLENBQUMseUJBQXlCLEdBQUcsS0FBSyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQXVCLEVBQUUsTUFBc0I7UUFDL0QsT0FBTyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBd0IsRUFBRSxNQUFzQjtRQUNqRSxPQUFPLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBWkQsMENBWUM7QUFVRCxNQUFhLE9BQU87SUFDbEIsWUFBbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsTUFBYyxFQUNkLElBQVksRUFDWixXQUFnQyxFQUNoQyxTQUF5QixFQUFFO1FBRTNCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNoQyxJQUFJLFFBQVEsQ0FBQztRQUNiLElBQUksQ0FBQztZQUNILFFBQVEsR0FBRyxNQUFNLElBQUEsb0JBQVUsRUFBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO2lCQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztpQkFDbkIsSUFBSSxDQUFDLFdBQXNDLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxlQUFlLENBQUMsR0FBRyxFQUFFLGVBQWUsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUVELE9BQU87WUFDTCxHQUFHLENBQUksQ0FBaUI7Z0JBQ3RCLElBQUksQ0FBQztvQkFDSCxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxNQUFNLElBQUksZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztZQUNILENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELEdBQUcsQ0FBSSxJQUFZLEVBQUUsTUFBdUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLENBQUksSUFBWSxFQUFFLElBQWEsRUFBRSxNQUF1QjtRQUMxRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBbERELDBCQWtEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdXBlcmFnZW50IGZyb20gJ3N1cGVyYWdlbnQnO1xuaW1wb3J0IHsgQml0R29Kc0Vycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5leHBvcnQgY2xhc3MgQXBpTm90SW1wbGVtZW50ZWRFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIGNvbnN0cnVjdG9yKGNvaW5OYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgYXBpIG5vdCBpbXBsZW1lbnRlZCBmb3IgY29pbiAke2NvaW5OYW1lfWApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcGlSZXF1ZXN0RXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZywgcmVhc29uOiBFcnJvciB8IHN0cmluZykge1xuICAgIHN1cGVyKGBlcnJvciBpbiBBUEkgcmVxdWVzdDogJHt1cmx9OiAke3JlYXNvbn1gKTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JSZXF1ZXN0KHJlcTogc3VwZXJhZ2VudC5SZXF1ZXN0LCByZWFzb246IEVycm9yIHwgc3RyaW5nKTogQXBpUmVxdWVzdEVycm9yIHtcbiAgICByZXR1cm4gbmV3IEFwaVJlcXVlc3RFcnJvcihyZXEudG9TdHJpbmcoKSwgcmVhc29uKTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JSZXNwb25zZShyZXM6IHN1cGVyYWdlbnQuUmVzcG9uc2UsIHJlYXNvbjogRXJyb3IgfCBzdHJpbmcpOiBBcGlSZXF1ZXN0RXJyb3Ige1xuICAgIHJldHVybiBuZXcgQXBpUmVxdWVzdEVycm9yKHJlcy5oZWFkZXIsIHJlYXNvbik7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgUmVxdWVzdE9wdGlvbnMgPSB7XG4gIHJldHJ5PzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzcG9uc2U8VD4gPSB7XG4gIG1hcDxWPihmOiAoYm9keTogVCkgPT4gVik6IFY7XG59O1xuXG5leHBvcnQgY2xhc3MgQmFzZUFwaSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcpIHtcbiAgICBpZiAoIWJhc2VVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYXNlVXJsIG11c3Qgc3RhcnQgd2l0aCBodHRwczovL2ApO1xuICAgIH1cbiAgICBpZiAoYmFzZVVybC5lbmRzV2l0aChgL2ApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhc2VVcmwgbXVzdCBub3QgZW5kIHdpdGggc2xhc2ggKC8pYCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVxdWVzdDxUPihcbiAgICBtZXRob2Q6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcmVxdWVzdEJvZHk6IHVua25vd24gfCB1bmRlZmluZWQsXG4gICAgcGFyYW1zOiBSZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8UmVzcG9uc2U8VD4+IHtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aChwYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXRoIG11c3Qgc3RhcnQgd2l0aCAnLycgY2hhcmFjdGVyYCk7XG4gICAgfVxuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArIHBhdGg7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHN1cGVyYWdlbnQobWV0aG9kLCB1cmwpXG4gICAgICAgIC5yZXRyeShwYXJhbXMucmV0cnkpXG4gICAgICAgIC5zZW5kKHJlcXVlc3RCb2R5IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgQXBpUmVxdWVzdEVycm9yKHVybCwgZSk7XG4gICAgfVxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBBcGlSZXF1ZXN0RXJyb3IodXJsLCBgc3RhdHVzIGNvZGUgJHtyZXNwb25zZS5zdGF0dXNDb2RlfWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBtYXA8Vj4oZjogKGJvZHk6IFQpID0+IFYpOiBWIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gZihyZXNwb25zZS5ib2R5KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRocm93IG5ldyBBcGlSZXF1ZXN0RXJyb3IodXJsLCBlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0PFQ+KHBhdGg6IHN0cmluZywgcGFyYW1zPzogUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPFJlc3BvbnNlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdCgnZ2V0JywgcGF0aCwgdW5kZWZpbmVkLCBwYXJhbXMpO1xuICB9XG5cbiAgcG9zdDxUPihwYXRoOiBzdHJpbmcsIGJvZHk6IHVua25vd24sIHBhcmFtcz86IFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxSZXNwb25zZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QoJ3Bvc3QnLCBwYXRoLCBib2R5LCBwYXJhbXMpO1xuICB9XG59XG4iXX0=
@@ -1,6 +1,3 @@
1
- /**
2
- * @prettier
3
- */
4
1
  import { BaseApi } from './baseApi';
5
2
  export declare class CoingeckoApi extends BaseApi {
6
3
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"coingeckoApi.d.ts","sourceRoot":"","sources":["../../../src/recovery/coingeckoApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,qBAAa,YAAa,SAAQ,OAAO;;IAKjC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwBvD"}
1
+ {"version":3,"file":"coingeckoApi.d.ts","sourceRoot":"","sources":["../../../src/recovery/coingeckoApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,qBAAa,YAAa,SAAQ,OAAO;;IAKjC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwBvD"}
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CoingeckoApi = void 0;
4
- /**
5
- * @prettier
6
- */
7
4
  const baseApi_1 = require("./baseApi");
8
5
  const familyNamesToCoinGeckoIds = new Map()
9
6
  .set('BTC', 'bitcoin')
@@ -44,4 +41,4 @@ class CoingeckoApi extends baseApi_1.BaseApi {
44
41
  }
45
42
  }
46
43
  exports.CoingeckoApi = CoingeckoApi;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmdlY2tvQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlY292ZXJ5L2NvaW5nZWNrb0FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILHVDQUFvQztBQUVwQyxNQUFNLHlCQUF5QixHQUFHLElBQUksR0FBRyxFQUFFO0tBQ3hDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO0tBQ3JCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDO0tBQ3RCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDO0tBQzFCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO0tBQ25CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLGtIQUFrSDtJQUNsSCx3RUFBd0U7S0FDdkUsR0FBRyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUM7S0FDM0IsR0FBRyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztBQUU5QixNQUFhLFlBQWEsU0FBUSxpQkFBTztJQUN2QztRQUNFLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQWtCO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDMUY7UUFDRCxNQUFNLFlBQVksR0FBRyxxQkFBcUIsV0FBVyxvQkFBb0IsQ0FBQztRQUMxRSxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQU0sWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdEIseUJBQXlCO1lBQ3pCLElBQUk7WUFDSixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLE1BQU07WUFDTixJQUFJO1lBQ0osSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7YUFDbEU7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsRUFBRTtnQkFDN0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO2FBQzNFO1lBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE3QkQsb0NBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQmFzZUFwaSB9IGZyb20gJy4vYmFzZUFwaSc7XG5cbmNvbnN0IGZhbWlseU5hbWVzVG9Db2luR2Vja29JZHMgPSBuZXcgTWFwKClcbiAgLnNldCgnQlRDJywgJ2JpdGNvaW4nKVxuICAuc2V0KCdMVEMnLCAnbGl0ZWNvaW4nKVxuICAuc2V0KCdCQ0gnLCAnYml0Y29pbi1jYXNoJylcbiAgLnNldCgnWkVDJywgJ3pjYXNoJylcbiAgLnNldCgnREFTSCcsICdkYXNoJylcbiAgLy8gbm90ZTogd2UgZG9uJ3QgaGF2ZSBhIHNvdXJjZSBmb3IgcHJpY2UgZGF0YSBvZiBCQ0hBIGFuZCBCU1YsIGJ1dCB3ZSB3aWxsIHVzZSBCQ0ggYXMgYSBwcm94eS4gV2Ugd2lsbCBzdWJzdGl0dXRlXG4gIC8vIGl0IG91dCBmb3IgYSBiZXR0ZXIgc291cmNlIHdoZW4gaXQgYmVjb21lcyBhdmFpbGFibGUuICBUT0RPIEJHLTI2MzU5LlxuICAuc2V0KCdCQ0hBJywgJ2JpdGNvaW4tY2FzaCcpXG4gIC5zZXQoJ0JTVicsICdiaXRjb2luLWNhc2gnKTtcblxuZXhwb3J0IGNsYXNzIENvaW5nZWNrb0FwaSBleHRlbmRzIEJhc2VBcGkge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignaHR0cHM6Ly9hcGkuY29pbmdlY2tvLmNvbS9hcGkvdjMnKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVTRFByaWNlKGNvaW5GYW1pbHk6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgY29pbkdlY2tvSWQgPSBmYW1pbHlOYW1lc1RvQ29pbkdlY2tvSWRzLmdldChjb2luRmFtaWx5LnRvVXBwZXJDYXNlKCkpO1xuICAgIGlmICghY29pbkdlY2tvSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgbm8gQ29pbkdlY2tvIGlkIGZvciBmYW1pbHkgbmFtZSAke2NvaW5GYW1pbHkudG9VcHBlckNhc2UoKX0uYCk7XG4gICAgfVxuICAgIGNvbnN0IGNvaW5HZWNrb1VybCA9IGAvc2ltcGxlL3ByaWNlP2lkcz0ke2NvaW5HZWNrb0lkfSZ2c19jdXJyZW5jaWVzPVVTRGA7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5nZXQ8YW55Pihjb2luR2Vja29VcmwsIHsgcmV0cnk6IDIgfSk7XG4gICAgcmV0dXJuIHJlcy5tYXAoKGJvZHkpID0+IHtcbiAgICAgIC8vIEFuIGV4YW1wbGUgb2YgcmVzcG9uc2VcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgXCJldGhlcmV1bVwiOiB7XG4gICAgICAvLyAgICAgXCJ1c2RcIjogMjIwLjY0XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH1cbiAgICAgIGlmICghYm9keSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byByZWFjaCBDb2luIEdlY2tvIEFQSSBmb3IgcHJpY2UgZGF0YScpO1xuICAgICAgfVxuICAgICAgaWYgKCFib2R5W2NvaW5HZWNrb0lkXVsndXNkJ10gfHwgdHlwZW9mIGJvZHlbY29pbkdlY2tvSWRdWyd1c2QnXSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIHJlc3BvbnNlIGZyb20gQ29pbiBHZWNrbyBBUEkgZm9yIHByaWNlIGRhdGEnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJvZHlbY29pbkdlY2tvSWRdWyd1c2QnXTtcbiAgICB9KTtcbiAgfVxufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmdlY2tvQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlY292ZXJ5L2NvaW5nZWNrb0FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FBb0M7QUFFcEMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLEdBQUcsRUFBRTtLQUN4QyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztLQUNyQixHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztLQUN0QixHQUFHLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQztLQUMxQixHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztLQUNuQixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNwQixrSEFBa0g7SUFDbEgsd0VBQXdFO0tBQ3ZFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDO0tBQzNCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFFOUIsTUFBYSxZQUFhLFNBQVEsaUJBQU87SUFDdkM7UUFDRSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFrQjtRQUNsQyxNQUFNLFdBQVcsR0FBRyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLHFCQUFxQixXQUFXLG9CQUFvQixDQUFDO1FBQzFFLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBTSxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0Qix5QkFBeUI7WUFDekIsSUFBSTtZQUNKLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsTUFBTTtZQUNOLElBQUk7WUFDSixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1lBQ25FLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM5RSxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDNUUsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBN0JELG9DQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBcGkgfSBmcm9tICcuL2Jhc2VBcGknO1xuXG5jb25zdCBmYW1pbHlOYW1lc1RvQ29pbkdlY2tvSWRzID0gbmV3IE1hcCgpXG4gIC5zZXQoJ0JUQycsICdiaXRjb2luJylcbiAgLnNldCgnTFRDJywgJ2xpdGVjb2luJylcbiAgLnNldCgnQkNIJywgJ2JpdGNvaW4tY2FzaCcpXG4gIC5zZXQoJ1pFQycsICd6Y2FzaCcpXG4gIC5zZXQoJ0RBU0gnLCAnZGFzaCcpXG4gIC8vIG5vdGU6IHdlIGRvbid0IGhhdmUgYSBzb3VyY2UgZm9yIHByaWNlIGRhdGEgb2YgQkNIQSBhbmQgQlNWLCBidXQgd2Ugd2lsbCB1c2UgQkNIIGFzIGEgcHJveHkuIFdlIHdpbGwgc3Vic3RpdHV0ZVxuICAvLyBpdCBvdXQgZm9yIGEgYmV0dGVyIHNvdXJjZSB3aGVuIGl0IGJlY29tZXMgYXZhaWxhYmxlLiAgVE9ETyBCRy0yNjM1OS5cbiAgLnNldCgnQkNIQScsICdiaXRjb2luLWNhc2gnKVxuICAuc2V0KCdCU1YnLCAnYml0Y29pbi1jYXNoJyk7XG5cbmV4cG9ydCBjbGFzcyBDb2luZ2Vja29BcGkgZXh0ZW5kcyBCYXNlQXBpIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ2h0dHBzOi8vYXBpLmNvaW5nZWNrby5jb20vYXBpL3YzJyk7XG4gIH1cblxuICBhc3luYyBnZXRVU0RQcmljZShjb2luRmFtaWx5OiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IGNvaW5HZWNrb0lkID0gZmFtaWx5TmFtZXNUb0NvaW5HZWNrb0lkcy5nZXQoY29pbkZhbWlseS50b1VwcGVyQ2FzZSgpKTtcbiAgICBpZiAoIWNvaW5HZWNrb0lkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZXJlIGlzIG5vIENvaW5HZWNrbyBpZCBmb3IgZmFtaWx5IG5hbWUgJHtjb2luRmFtaWx5LnRvVXBwZXJDYXNlKCl9LmApO1xuICAgIH1cbiAgICBjb25zdCBjb2luR2Vja29VcmwgPSBgL3NpbXBsZS9wcmljZT9pZHM9JHtjb2luR2Vja29JZH0mdnNfY3VycmVuY2llcz1VU0RgO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZ2V0PGFueT4oY29pbkdlY2tvVXJsLCB7IHJldHJ5OiAyIH0pO1xuICAgIHJldHVybiByZXMubWFwKChib2R5KSA9PiB7XG4gICAgICAvLyBBbiBleGFtcGxlIG9mIHJlc3BvbnNlXG4gICAgICAvLyB7XG4gICAgICAvLyAgIFwiZXRoZXJldW1cIjoge1xuICAgICAgLy8gICAgIFwidXNkXCI6IDIyMC42NFxuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgICBpZiAoIWJvZHkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcmVhY2ggQ29pbiBHZWNrbyBBUEkgZm9yIHByaWNlIGRhdGEnKTtcbiAgICAgIH1cbiAgICAgIGlmICghYm9keVtjb2luR2Vja29JZF1bJ3VzZCddIHx8IHR5cGVvZiBib2R5W2NvaW5HZWNrb0lkXVsndXNkJ10gIT09ICdudW1iZXInKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCByZXNwb25zZSBmcm9tIENvaW4gR2Vja28gQVBJIGZvciBwcmljZSBkYXRhJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBib2R5W2NvaW5HZWNrb0lkXVsndXNkJ107XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,13 +1,13 @@
1
1
  import * as utxolib from '@bitgo-beta/utxo-lib';
2
- declare type RootWalletKeys = utxolib.bitgo.RootWalletKeys;
3
2
  import { BitGoBase, IWallet } from '@bitgo-beta/sdk-core';
4
3
  import { AbstractUtxoCoin, TransactionInfo } from '../abstractUtxoCoin';
4
+ type RootWalletKeys = utxolib.bitgo.RootWalletKeys;
5
5
  export interface BuildRecoveryTransactionOptions {
6
6
  wallet: string;
7
7
  faultyTxId: string;
8
8
  recoveryAddress: string;
9
9
  }
10
- declare type FeeInfo = {
10
+ type FeeInfo = {
11
11
  size: number;
12
12
  feeRate: number;
13
13
  fee: number;
@@ -31,7 +31,7 @@ export interface CrossChainRecoverySigned<TNumber extends number | bigint = numb
31
31
  recoveryAddress?: string;
32
32
  recoveryAmount?: TNumber;
33
33
  }
34
- declare type WalletV1 = {
34
+ type WalletV1 = {
35
35
  keychains: {
36
36
  xpub: string;
37
37
  }[];
@@ -52,7 +52,8 @@ export declare function getWallet(bitgo: BitGoBase, coin: AbstractUtxoCoin, wall
52
52
  * @return wallet pubkeys
53
53
  */
54
54
  export declare function getWalletKeys(recoveryCoin: AbstractUtxoCoin, wallet: IWallet | WalletV1): Promise<RootWalletKeys>;
55
- declare type RecoverParams = {
55
+ export declare function isWalletAddress(wallet: IWallet | WalletV1, address: string): Promise<boolean>;
56
+ type RecoverParams = {
56
57
  /** Wallet ID (can be v1 wallet or v2 wallet) */
57
58
  walletId: string;
58
59
  /** Coin to create the transaction for */
@@ -1 +1 @@
1
- {"version":3,"file":"crossChainRecovery.d.ts","sourceRoot":"","sources":["../../../src/recovery/crossChainRecovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crossChainRecovery.d.ts","sourceRoot":"","sources":["../../../src/recovery/crossChainRecovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,OAAO,EAA4B,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAIxE,KAAK,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;AAKnD,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,0BAA0B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAChF,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,KAAK,QAAQ,GAAG;IACd,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrF,wBAAwB,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE,CAAC;AAEF,wBAAsB,SAAS,CAC7B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,CAgB7B;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,gBAAgB,EAC9B,MAAM,EAAE,OAAO,GAAG,QAAQ,GACzB,OAAO,CAAC,cAAc,CAAC,CAczB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAanG;AA2RD,KAAK,aAAa,GAAG;IACnB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,4CAA4C;IAC5C,YAAY,EAAE,gBAAgB,CAAC;IAC/B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC9E,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAsDlF"}
@@ -1,17 +1,49 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.recoverCrossChain = exports.getWalletKeys = exports.getWallet = void 0;
4
- /**
5
- * @prettier
6
- */
7
- const Bluebird = require("bluebird");
8
- const utxolib = require("@bitgo-beta/utxo-lib");
36
+ exports.getWallet = getWallet;
37
+ exports.getWalletKeys = getWalletKeys;
38
+ exports.isWalletAddress = isWalletAddress;
39
+ exports.recoverCrossChain = recoverCrossChain;
40
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
9
41
  const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
10
- const { unspentSum, scriptTypeForChain, outputScripts } = utxolib.bitgo;
11
42
  const unspents_1 = require("@bitgo-beta/unspents");
12
43
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
13
44
  const sdk_api_1 = require("@bitgo-beta/sdk-api");
14
45
  const sign_1 = require("../sign");
46
+ const { unspentSum, scriptTypeForChain, outputScripts } = utxolib.bitgo;
15
47
  async function getWallet(bitgo, coin, walletId) {
16
48
  try {
17
49
  return await coin.wallets().get({ id: walletId });
@@ -30,7 +62,6 @@ async function getWallet(bitgo, coin, walletId) {
30
62
  throw new Error(`could not get wallet ${walletId} from v1 or v2: ${e.toString()}`);
31
63
  }
32
64
  }
33
- exports.getWallet = getWallet;
34
65
  /**
35
66
  * @param recoveryCoin
36
67
  * @param wallet
@@ -50,18 +81,44 @@ async function getWalletKeys(recoveryCoin, wallet) {
50
81
  }
51
82
  return new utxolib.bitgo.RootWalletKeys(xpubs.map((k) => utxo_lib_1.bip32.fromBase58(k)));
52
83
  }
53
- exports.getWalletKeys = getWalletKeys;
84
+ async function isWalletAddress(wallet, address) {
85
+ try {
86
+ let addressData;
87
+ if (wallet instanceof sdk_core_1.Wallet) {
88
+ addressData = await wallet.getAddress({ address });
89
+ }
90
+ else {
91
+ addressData = await wallet.address({ address });
92
+ }
93
+ return addressData !== undefined;
94
+ }
95
+ catch (e) {
96
+ return false;
97
+ }
98
+ }
54
99
  /**
55
100
  * @param coin
56
101
  * @param txid
102
+ * @param amountType
103
+ * @param wallet
57
104
  * @param apiKey - a blockchair api key
58
105
  * @return all unspents for transaction outputs, including outputs from other transactions
59
106
  */
60
- async function getAllRecoveryOutputs(coin, txid, amountType = 'number', apiKey) {
107
+ async function getAllRecoveryOutputs(coin, txid, amountType = 'number', wallet, apiKey) {
61
108
  const api = coin.getRecoveryProvider(apiKey);
62
109
  const tx = await api.getTransactionIO(txid);
63
- const addresses = tx.outputs.map((output) => output.address);
64
- const unspents = await api.getUnspentsForAddresses(addresses);
110
+ const walletAddresses = (await Promise.all(tx.outputs.map(async (output) => {
111
+ // For some coins (bch) we need to convert the address to legacy format since the api returns the address
112
+ // in non legacy format. However, we want to keep the address in the same format as the response since we
113
+ // are going to hit the API again to fetch address unspents.
114
+ const canonicalAddress = coin.canonicalAddress(output.address);
115
+ const isWalletOwned = await isWalletAddress(wallet, canonicalAddress);
116
+ return isWalletOwned ? output.address : null;
117
+ }))).filter((address) => address !== null);
118
+ const unspents = await api.getUnspentsForAddresses(walletAddresses);
119
+ if (unspents.length === 0) {
120
+ throw new Error(`No recovery unspents found.`);
121
+ }
65
122
  // the api may return cashaddr's instead of legacy for BCH and BCHA
66
123
  // downstream processes's only expect legacy addresses
67
124
  return unspents.map((recoveryOutput) => {
@@ -98,22 +155,25 @@ async function getScriptId(coin, wallet, script) {
98
155
  */
99
156
  async function toWalletUnspents(sourceCoin, recoveryCoin, unspents, wallet) {
100
157
  const addresses = new Set(unspents.map((u) => u.address));
101
- return (await Bluebird.mapSeries(addresses, async (address) => {
158
+ const walletUnspents = [];
159
+ for (const address of addresses) {
102
160
  let scriptId;
103
161
  try {
104
162
  scriptId = await getScriptId(recoveryCoin, wallet, utxolib.address.toOutputScript(address, sourceCoin.network));
105
163
  }
106
164
  catch (e) {
107
165
  console.error(`error getting scriptId for ${address}:`, e);
108
- return [];
166
+ continue;
109
167
  }
110
- return unspents
168
+ const filteredUnspents = unspents
111
169
  .filter((u) => u.address === address)
112
170
  .map((u) => ({
113
171
  ...u,
114
172
  ...scriptId,
115
173
  }));
116
- })).flat();
174
+ walletUnspents.push(...filteredUnspents);
175
+ }
176
+ return walletUnspents;
117
177
  }
118
178
  /**
119
179
  * @param coin
@@ -130,6 +190,9 @@ async function getFeeRateSatVB(coin) {
130
190
  tbsv: 20,
131
191
  btc: 80,
132
192
  tbtc: 80,
193
+ tbtcsig: 80,
194
+ tbtc4: 80,
195
+ tbtcbgsig: 80,
133
196
  ltc: 100,
134
197
  tltc: 100,
135
198
  doge: 1000,
@@ -164,7 +227,7 @@ async function getPrv(xprv, passphrase, wallet) {
164
227
  else {
165
228
  encryptedPrv = (await wallet.getEncryptedUserKeychain()).encryptedXprv;
166
229
  }
167
- return getPrv(sdk_api_1.decrypt(passphrase, encryptedPrv));
230
+ return getPrv((0, sdk_api_1.decrypt)(passphrase, encryptedPrv));
168
231
  }
169
232
  /**
170
233
  * @param network
@@ -177,7 +240,10 @@ async function getPrv(xprv, passphrase, wallet) {
177
240
  */
178
241
  function createSweepTransaction(network, unspents, targetAddress, feeRateSatVB, signer, amountType = 'number') {
179
242
  const inputValue = unspentSum(unspents, amountType);
180
- const vsize = unspents_1.Dimensions.fromUnspents(unspents)
243
+ const vsize = unspents_1.Dimensions.fromUnspents(unspents, {
244
+ p2tr: { scriptPathLevel: 1 },
245
+ p2trMusig2: { scriptPathLevel: undefined },
246
+ })
181
247
  .plus(unspents_1.Dimensions.fromOutput({ script: utxolib.address.toOutputScript(targetAddress, network) }))
182
248
  .getVSize();
183
249
  const fee = vsize * feeRateSatVB;
@@ -188,7 +254,7 @@ function createSweepTransaction(network, unspents, targetAddress, feeRateSatVB,
188
254
  });
189
255
  let transaction = transactionBuilder.buildIncomplete();
190
256
  if (signer) {
191
- transaction = sign_1.signAndVerifyWalletTransaction(transactionBuilder, unspents, signer, {
257
+ transaction = (0, sign_1.signAndVerifyWalletTransaction)(transactionBuilder, unspents, signer, {
192
258
  isLastSignature: false,
193
259
  });
194
260
  }
@@ -215,8 +281,8 @@ function getTxInfo(transaction, unspents, walletId, walletKeys, amountType = 'nu
215
281
  ...u,
216
282
  wallet: walletId,
217
283
  fromWallet: walletId,
218
- redeemScript: redeemScript === null || redeemScript === void 0 ? void 0 : redeemScript.toString('hex'),
219
- witnessScript: witnessScript === null || witnessScript === void 0 ? void 0 : witnessScript.toString('hex'),
284
+ redeemScript: redeemScript?.toString('hex'),
285
+ witnessScript: witnessScript?.toString('hex'),
220
286
  };
221
287
  });
222
288
  return {
@@ -233,7 +299,12 @@ function getTxInfo(transaction, unspents, walletId, walletKeys, amountType = 'nu
233
299
  } /* cast to TransactionInfo to allow extra fields may be required by legacy consumers of this data */;
234
300
  }
235
301
  function getFeeInfo(transaction, unspents, amountType = 'number') {
236
- const vsize = unspents_1.Dimensions.fromUnspents(unspents).plus(unspents_1.Dimensions.fromOutputs(transaction.outs)).getVSize();
302
+ const vsize = unspents_1.Dimensions.fromUnspents(unspents, {
303
+ p2tr: { scriptPathLevel: 1 },
304
+ p2trMusig2: { scriptPathLevel: undefined },
305
+ })
306
+ .plus(unspents_1.Dimensions.fromOutputs(transaction.outs))
307
+ .getVSize();
237
308
  const inputAmount = utxolib.bitgo.unspentSum(unspents, amountType);
238
309
  const outputAmount = transaction.outs.reduce((sum, o) => sum + BigInt(o.value), BigInt(0));
239
310
  const fee = Number(BigInt(inputAmount) - outputAmount);
@@ -256,7 +327,7 @@ function getFeeInfo(transaction, unspents, amountType = 'number') {
256
327
  */
257
328
  async function recoverCrossChain(bitgo, params) {
258
329
  const wallet = await getWallet(bitgo, params.recoveryCoin, params.walletId);
259
- const unspents = await getAllRecoveryOutputs(params.sourceCoin, params.txid, params.sourceCoin.amountType, params.apiKey);
330
+ const unspents = await getAllRecoveryOutputs(params.sourceCoin, params.txid, params.sourceCoin.amountType, wallet, params.apiKey);
260
331
  const walletUnspents = await toWalletUnspents(params.sourceCoin, params.recoveryCoin, unspents, wallet);
261
332
  const walletKeys = await getWalletKeys(params.recoveryCoin, wallet);
262
333
  const prv = params.xprv || params.walletPassphrase ? await getPrv(params.xprv, params.walletPassphrase, wallet) : undefined;
@@ -290,5 +361,4 @@ async function recoverCrossChain(bitgo, params) {
290
361
  };
291
362
  }
292
363
  }
293
- exports.recoverCrossChain = recoverCrossChain;
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NDaGFpblJlY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlY292ZXJ5L2Nyb3NzQ2hhaW5SZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILHFDQUFxQztBQUVyQyxnREFBZ0Q7QUFDaEQsbURBQTZEO0FBQzdELE1BQU0sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztBQU14RSxtREFBa0Q7QUFFbEQsbURBQW9GO0FBR3BGLGlEQUE4QztBQUM5QyxrQ0FBeUQ7QUF3Q2xELEtBQUssVUFBVSxTQUFTLENBQzdCLEtBQWdCLEVBQ2hCLElBQXNCLEVBQ3RCLFFBQWdCO0lBRWhCLElBQUk7UUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ25EO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDViwrQ0FBK0M7UUFDL0Msa0pBQWtKO1FBQ2xKLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUU7WUFDbkIsTUFBTSxDQUFDLENBQUM7U0FDVDtLQUNGO0lBRUQsSUFBSTtRQUNGLE9BQU8sTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDcEQ7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLFFBQVEsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDcEY7QUFDSCxDQUFDO0FBcEJELDhCQW9CQztBQUVEOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsYUFBYSxDQUNqQyxZQUE4QixFQUM5QixNQUEwQjtJQUUxQixJQUFJLEtBQXFCLENB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Q3pCLEtBQUs7WUFDTCxNQUFNO1lBQ04sVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ3hDLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUM1QyxjQUFjO1NBQ2YsQ0FBQztLQUNIO1NBQU07UUFDTCxPQUFPO1lBQ0wsS0FBSztZQUNMLE1BQU07WUFDTixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQzlFLE9BQU8sRUFBRSxNQUFNLENBQUMsZUFBZTtZQUMvQixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7U0FDbkMsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQXhERCw4Q0F3REMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBCbHVlYmlyZCBmcm9tICdibHVlYmlyZCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgYmlwMzIsIEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuY29uc3QgeyB1bnNwZW50U3VtLCBzY3JpcHRUeXBlRm9yQ2hhaW4sIG91dHB1dFNjcmlwdHMgfSA9IHV0eG9saWIuYml0Z287XG50eXBlIFJvb3RXYWxsZXRLZXlzID0gdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cztcbnR5cGUgVW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiA9IHV0eG9saWIuYml0Z28uVW5zcGVudDxUTnVtYmVyPjtcbnR5cGUgV2FsbGV0VW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiA9IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudDxUTnVtYmVyPjtcbnR5cGUgV2FsbGV0VW5zcGVudExlZ2FjeTxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiA9IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudExlZ2FjeTxUTnVtYmVyPjtcblxuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJ0BiaXRnby1iZXRhL3Vuc3BlbnRzJztcblxuaW1wb3J0IHsgQml0R29CYXNlLCBJV2FsbGV0LCBLZXljaGFpbiwgVHJpcGxlLCBXYWxsZXQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBUcmFuc2FjdGlvbkluZm8gfSBmcm9tICcuLi9hYnN0cmFjdFV0eG9Db2luJztcblxuaW1wb3J0IHsgZGVjcnlwdCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1hcGknO1xuaW1wb3J0IHsgc2lnbkFuZFZlcmlmeVdhbGxldFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vc2lnbic7XG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUmVjb3ZlcnlUcmFuc2FjdGlvbk9wdGlvbnMge1xuICB3YWxsZXQ6IHN0cmluZztcbiAgZmF1bHR5VHhJZDogc3RyaW5nO1xuICByZWNvdmVyeUFkZHJlc3M6IHN0cmluZztcbn1cblxudHlwZSBGZWVJbmZvID0ge1xuICBzaXplOiBudW1iZXI7XG4gIGZlZVJhdGU6IG51bWJlcjtcbiAgZmVlOiBudW1iZXI7XG4gIHBheUdvRmVlOiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIENyb3NzQ2hhaW5SZWNvdmVyeVVuc2lnbmVkPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+IHtcbiAgdHhIZXg6IHN0cmluZztcbiAgdHhJbmZvOiBUcmFuc2FjdGlvbkluZm88VE51bWJlcj47XG4gIHdhbGxldElkOiBzdHJpbmc7XG4gIGZlZUluZm86IEZlZUluZm87XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgY29pbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyb3NzQ2hhaW5SZWNvdmVyeVNpZ25lZDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiB7XG4gIHZlcnNpb246IDEgfCAyO1xuICB0eEhleDogc3RyaW5nO1xuICB0eEluZm86IFRyYW5zYWN0aW9uSW5mbzxUTnVtYmVyPjtcbiAgd2FsbGV0SWQ6IHN0cmluZztcbiAgc291cmNlQ29pbjogc3RyaW5nO1xuICByZWNvdmVyeUNvaW46IHN0cmluZztcbiAgcmVjb3ZlcnlBZGRyZXNzPzogc3RyaW5nO1xuICByZWNvdmVyeUFtb3VudD86IFROdW1iZXI7XG59XG5cbnR5cGUgV2FsbGV0VjEgPSB7XG4gIGtleWNoYWluczogeyB4cHViOiBzdHJpbmcgfVtdO1xuICBhZGRyZXNzKHsgYWRkcmVzcyB9OiB7IGFkZHJlc3M6IHN0cmluZyB9KTogUHJvbWlzZTx7IGNoYWluOiBudW1iZXI7IGluZGV4OiBudW1iZXIgfT47XG4gIGdldEVuY3J5cHRlZFVzZXJLZXljaGFpbigpOiBQcm9taXNlPHsgZW5jcnlwdGVkWHBydjogc3RyaW5nIH0+O1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFdhbGxldChcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0SWQ6IHN0cmluZ1xuKTogUHJvbWlzZTxJV2FsbGV0IHwgV2FsbGV0VjE+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgY29pbi53YWxsZXRzKCkuZ2V0KHsgaWQ6IHdhbGxldElkIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gVE9ETzogQkctNDYzNjQgaGFuZGxlIGVycm9ycyBtb3JlIGdyYWNlZnVsbHlcbiAgICAvLyBUaGUgdjIgZW5kcG9pbnQgY29pbi53YWxsZXRzKCkuZ2V0KCkgbWF5IHRocm93IDQwNCBvciA0MDAgZXJyb3JzLCBidXQgdGhpcyBzaG91bGQgbm90IHByZXZlbnQgdXMgZnJvbSBzZWFyY2hpbmcgZm9yIHRoZSB3YWxsZXRJZCBpbiB2MSB3YWxsZXRzLlxuICAgIGlmIChlLnN0YXR1cyA+PSA1MDApIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgYml0Z28ud2FsbGV0cygpLmdldCh7IGlkOiB3YWxsZXRJZCB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgY291bGQgbm90IGdldCB3YWxsZXQgJHt3YWxsZXRJZH0gZnJvbSB2MSBvciB2MjogJHtlLnRvU3RyaW5nKCl9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0gcmVjb3ZlcnlDb2luXG4gKiBAcGFyYW0gd2FsbGV0XG4gKiBAcmV0dXJuIHdhbGxldCBwdWJrZXlzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRXYWxsZXRLZXlzKFxuICByZWNvdmVyeUNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHdhbGxldDogSVdhbGxldCB8IFdhbGxldFYxXG4pOiBQcm9taXNlPFJvb3RXYWxsZXRLZXlzPiB7XG4gIGxldCB4cHViczogVHJpcGxlPHN0cmluZz47XG5cbiAgaWYgKHdhbGxldCBpbnN0YW5jZW9mIFdhbGxldCkge1xuICAgIGNvbnN0IGtleWNoYWlucyA9IChhd2FpdCByZWNvdmVyeUNvaW4ua2V5Y2hhaW5zKCkuZ2V0S2V5c0ZvclNpZ25pbmcoeyB3YWxsZXQgfSkpIGFzIHVua25vd24gYXMgS2V5Y2hhaW5bXTtcbiAgICBpZiAoa2V5Y2hhaW5zLmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCB0cmlwbGUgZ290ICR7a2V5Y2hhaW5zLmxlbmd0aH1gKTtcbiAgICB9XG4gICAgeHB1YnMgPSBrZXljaGFpbnMubWFwKChrKSA9PiBrLnB1YikgYXMgVHJpcGxlPHN0cmluZz47XG4gIH0gZWxzZSB7XG4gICAgeHB1YnMgPSAod2FsbGV0IGFzIFdhbGxldFYxKS5rZXljaGFpbnMubWFwKChrKSA9PiBrLnhwdWIpIGFzIFRyaXBsZTxzdHJpbmc+O1xuICB9XG5cbiAgcmV0dXJuIG5ldyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKHhwdWJzLm1hcCgoaykgPT4gYmlwMzIuZnJvbUJhc2U1OChrKSkgYXMgVHJpcGxlPEJJUDMySW50ZXJmYWNlPik7XG59XG5cbi8qKlxuICogQHBhcmFtIGNvaW5cbiAqIEBwYXJhbSB0eGlkXG4gKiBAcGFyYW0gYXBpS2V5IC0gYSBibG9ja2NoYWlyIGFwaSBrZXlcbiAqIEByZXR1cm4gYWxsIHVuc3BlbnRzIGZvciB0cmFuc2FjdGlvbiBvdXRwdXRzLCBpbmNsdWRpbmcgb3V0cHV0cyBmcm9tIG90aGVyIHRyYW5zYWN0aW9uc1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxSZWNvdmVyeU91dHB1dHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHR4aWQ6IHN0cmluZyxcbiAgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50JyA9ICdudW1iZXInLFxuICBhcGlLZXk/OiBzdHJpbmdcbik6IFByb21pc2U8VW5zcGVudDxUTnVtYmVyPltdPiB7XG4gIGNvbnN0IGFwaSA9IGNvaW4uZ2V0UmVjb3ZlcnlQcm92aWRlcihhcGlLZXkpO1xuICBjb25zdCB0eCA9IGF3YWl0IGFwaS5nZXRUcmFuc2FjdGlvbklPKHR4aWQpO1xuICBjb25zdCBhZGRyZXNzZXMgPSB0eC5vdXRwdXRzLm1hcCgob3V0cHV0KSA9PiBvdXRwdXQuYWRkcmVzcyk7XG4gIGNvbnN0IHVuc3BlbnRzID0gYXdhaXQgYXBpLmdldFVuc3BlbnRzRm9yQWRkcmVzc2VzKGFkZHJlc3Nlcyk7XG4gIC8vIHRoZSBhcGkgbWF5IHJldHVybiBjYXNoYWRkcidzIGluc3RlYWQgb2YgbGVnYWN5IGZvciBCQ0ggYW5kIEJDSEFcbiAgLy8gZG93bnN0cmVhbSBwcm9jZXNzZXMncyBvbmx5IGV4cGVjdCBsZWdhY3kgYWRkcmVzc2VzXG4gIHJldHVybiB1bnNwZW50cy5tYXAoKHJlY292ZXJ5T3V0cHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlY292ZXJ5T3V0cHV0LFxuICAgICAgYWRkcmVzczogY29pbi5jYW5vbmljYWxBZGRyZXNzKHJlY292ZXJ5T3V0cHV0LmFkZHJlc3MpLFxuICAgICAgdmFsdWU6IHV0eG9saWIuYml0Z28udG9UTnVtYmVyPFROdW1iZXI+KEJpZ0ludChyZWNvdmVyeU91dHB1dC52YWx1ZSksIGFtb3VudFR5cGUpLFxuICAgIH07XG4gIH0pO1xufVxuXG4vKipcbiAqIERhdGEgcmVxdWlyZWQgZm9yIGFkZHJlc3MgYW5kIHNpZ25hdHVyZSBkZXJpdmF0aW9uXG4gKi9cbnR5cGUgU2NyaXB0SWQgPSB7XG4gIGNoYWluOiBudW1iZXI7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRTY3JpcHRJZChjb2luOiBBYnN0cmFjdFV0eG9Db2luLCB3YWxsZXQ6IElXYWxsZXQgfCBXYWxsZXRWMSwgc2NyaXB0OiBCdWZmZXIpOiBQcm9taXNlPFNjcmlwdElkPiB7XG4gIGNvbnN0IGFkZHJlc3MgPSB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChzY3JpcHQsIGNvaW4ubmV0d29yayk7XG4gIGxldCBhZGRyZXNzRGF0YTogeyBjaGFpbjogbnVtYmVyOyBpbmRleDogbnVtYmVyIH07XG4gIGlmICh3YWxsZXQgaW5zdGFuY2VvZiBXYWxsZXQpIHtcbiAgICBhZGRyZXNzRGF0YSA9IGF3YWl0IHdhbGxldC5nZXRBZGRyZXNzKHsgYWRkcmVzcyB9KTtcbiAgfSBlbHNlIHtcbiAgICBhZGRyZXNzRGF0YSA9IGF3YWl0ICh3YWxsZXQgYXMgV2FsbGV0VjEpLmFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICB9XG4gIGlmICh0eXBlb2YgYWRkcmVzc0RhdGEuY2hhaW4gPT09ICdudW1iZXInICYmIHR5cGVvZiBhZGRyZXNzRGF0YS5pbmRleCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4geyBjaGFpbjogYWRkcmVzc0RhdGEuY2hhaW4sIGluZGV4OiBhZGRyZXNzRGF0YS5pbmRleCB9O1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFkZHJlc3MgZGF0YTogJHtKU09OLnN0cmluZ2lmeShhZGRyZXNzRGF0YSl9YCk7XG59XG5cbi8qKlxuICogTG9va3VwIGFkZHJlc3MgZGF0YSBmcm9tIHVuc3BlbnRzIG9uIHNvdXJjZUNvaW4gaW4gYWRkcmVzcyBkYXRhYmFzZSBvZiByZWNvdmVyeUNvaW4uXG4gKiBSZXR1cm4gZnVsbCB3YWxsZXRVbnNwZW50cyBpbmNsdWRpbmcgc2NyaXB0SWQgaW4gc291cmNlQ29pbiBmb3JtYXQuXG4gKlxuICogQHBhcmFtIHNvdXJjZUNvaW5cbiAqIEBwYXJhbSByZWNvdmVyeUNvaW5cbiAqIEBwYXJhbSB1bnNwZW50c1xuICogQHBhcmFtIHdhbGxldFxuICogQHJldHVybiB3YWxsZXRVbnNwZW50c1xuICovXG5hc3luYyBmdW5jdGlvbiB0b1dhbGxldFVuc3BlbnRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBzb3VyY2VDb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICByZWNvdmVyeUNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHVuc3BlbnRzOiBVbnNwZW50PFROdW1iZXI+W10sXG4gIHdhbGxldDogSVdhbGxldCB8IFdhbGxldFYxXG4pOiBQcm9taXNlPFdhbGxldFVuc3BlbnQ8VE51bWJlcj5bXT4ge1xuICBjb25zdCBhZGRyZXNzZXMgPSBuZXcgU2V0KHVuc3BlbnRzLm1hcCgodSkgPT4gdS5hZGRyZXNzKSk7XG4gIHJldHVybiAoXG4gICAgYXdhaXQgQmx1ZWJpcmQubWFwU2VyaWVzKGFkZHJlc3NlcywgYXN5bmMgKGFkZHJlc3MpOiBQcm9taXNlPFdhbGxldFVuc3BlbnQ8VE51bWJlcj5bXT4gPT4ge1xuICAgICAgbGV0IHNjcmlwdElkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2NyaXB0SWQgPSBhd2FpdCBnZXRTY3JpcHRJZChyZWNvdmVyeUNvaW4sIHdhbGxldCwgdXR4b2xpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGFkZHJlc3MsIHNvdXJjZUNvaW4ubmV0d29yaykpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBlcnJvciBnZXR0aW5nIHNjcmlwdElkIGZvciAke2FkZHJlc3N9OmAsIGUpO1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5zcGVudHNcbiAgICAgICAgLmZpbHRlcigodSkgPT4gdS5hZGRyZXNzID09PSBhZGRyZXNzKVxuICAgICAgICAubWFwKCh1KSA9PiAoe1xuICAgICAgICAgIC4uLnUsXG4gICAgICAgICAgLi4uc2NyaXB0SWQsXG4gICAgICAgIH0pKTtcbiAgICB9KVxuICApLmZsYXQoKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gY29pblxuICogQHJldHVybiBmZWVSYXRlIGZvciB0cmFuc2FjdGlvblxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRGZWVSYXRlU2F0VkIoY29pbjogQWJzdHJhY3RVdHhvQ29pbik6IFByb21pc2U8bnVtYmVyPiB7XG4gIC8vIFRPRE86IHVzZSBmZWVSYXRlIEFQSVxuICBjb25zdCBmZWVSYXRlID0ge1xuICAgIGJjaDogMjAsXG4gICAgdGJjaDogMjAsXG4gICAgYmNoYTogMjAsXG4gICAgdGJjaGE6IDIwLFxuICAgIGJzdjogMjAsXG4gICAgdGJzdjogMjAsXG4gICAgYnRjOiA4MCxcbiAgICB0YnRjOiA4MCxcbiAgICBsdGM6IDEwMCxcbiAgICB0bHRjOiAxMDAsXG4gICAgZG9nZTogMTAwMCxcbiAgICB0ZG9nZTogMTAwMCxcbiAgfVtjb2luLmdldENoYWluKCldO1xuXG4gIGlmICghZmVlUmF0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8gZmVlUmF0ZSBmb3IgJHtjb2luLmdldENoYWluKCl9YCk7XG4gIH1cblxuICByZXR1cm4gZmVlUmF0ZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0geHBydlxuICogQHBhcmFtIHBhc3NwaHJhc2VcbiAqIEBwYXJhbSB3YWxsZXRcbiAqIEByZXR1cm4gc2lnbmluZyBrZXlcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0UHJ2KHhwcnY/OiBzdHJpbmcsIHBhc3NwaHJhc2U/OiBzdHJpbmcsIHdhbGxldD86IElXYWxsZXQgfCBXYWxsZXRWMSk6IFByb21pc2U8QklQMzJJbnRlcmZhY2U+IHtcbiAgaWYgKHhwcnYpIHtcbiAgICBjb25zdCBrZXkgPSBiaXAzMi5mcm9tQmFzZTU4KHhwcnYpO1xuICAgIGlmIChrZXkuaXNOZXV0ZXJlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG5vdCBhIHByaXZhdGUga2V5YCk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBpZiAoIXdhbGxldCB8fCAhcGFzc3BocmFzZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8geHBydiBnaXZlbjogbmVlZCB3YWxsZXQgYW5kIHBhc3NwaHJhc2UgdG8gY29udGludWVgKTtcbiAgfVxuXG4gIGxldCBlbmNyeXB0ZWRQcnY6IHN0cmluZztcbiAgaWYgKHdhbGxldCBpbnN0YW5jZW9mIFdhbGxldCkge1xuICAgIGVuY3J5cHRlZFBydiA9IChhd2FpdCB3YWxsZXQuZ2V0RW5jcnlwdGVkVXNlcktleWNoYWluKCkpLmVuY3J5cHRlZFBydjtcbiAgfSBlbHNlIHtcbiAgICBlbmNyeXB0ZWRQcnYgPSAoYXdhaXQgKHdhbGxldCBhcyBXYWxsZXRWMSkuZ2V0RW5jcnlwdGVkVXNlcktleWNoYWluKCkpLmVuY3J5cHRlZFhwcnY7XG4gIH1cblxuICByZXR1cm4gZ2V0UHJ2KGRlY3J5cHQocGFzc3BocmFzZSwgZW5jcnlwdGVkUHJ2KSk7XG59XG5cbi8qKlxuICogQHBhcmFtIG5ldHdvcmtcbiAqIEBwYXJhbSB1bnNwZW50c1xuICogQHBhcmFtIHRhcmdldEFkZHJlc3NcbiAqIEBwYXJhbSBmZWVSYXRlU2F0VkJcbiAqIEBwYXJhbSBzaWduZXIgLSBpZiBzZXQsIHNpZ24gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBhbW91bnRUeXBlXG4gKiBAcmV0dXJuIHRyYW5zYWN0aW9uIHNwZW5kaW5nIGZ1bGwgaW5wdXQgYW1vdW50IHRvIHRhcmdldEFkZHJlc3NcbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3dlZXBUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB1bnNwZW50czogV2FsbGV0VW5zcGVudDxUTnVtYmVyPltdLFxuICB0YXJnZXRBZGRyZXNzOiBzdHJpbmcsXG4gIGZlZVJhdGVTYXRWQjogbnVtYmVyLFxuICBzaWduZXI/OiB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+LFxuICBhbW91bnRUeXBlOiAnbnVtYmVyJyB8ICdiaWdpbnQnID0gJ251bWJlcidcbik6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+IHtcbiAgY29uc3QgaW5wdXRWYWx1ZSA9IHVuc3BlbnRTdW08VE51bWJlcj4odW5zcGVudHMsIGFtb3VudFR5cGUpO1xuICBjb25zdCB2c2l6ZSA9IERpbWVuc2lvbnMuZnJvbVVuc3BlbnRzKHVuc3BlbnRzKVxuICAgIC5wbHVzKERpbWVuc2lvbnMuZnJvbU91dHB1dCh7IHNjcmlwdDogdXR4b2xpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KHRhcmdldEFkZHJlc3MsIG5ldHdvcmspIH0pKVxuICAgIC5nZXRWU2l6ZSgpO1xuICBjb25zdCBmZWUgPSB2c2l6ZSAqIGZlZVJhdGVTYXRWQjtcblxuICBjb25zdCB0cmFuc2FjdGlvbkJ1aWxkZXIgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZvck5ldHdvcms8VE51bWJlcj4obmV0d29yayk7XG4gIHRyYW5zYWN0aW9uQnVpbGRlci5hZGRPdXRwdXQoXG4gICAgdGFyZ2V0QWRkcmVzcyxcbiAgICB1dHhvbGliLmJpdGdvLnRvVE51bWJlcjxUTnVtYmVyPihCaWdJbnQoaW5wdXRWYWx1ZSkgLSBCaWdJbnQoZmVlKSwgYW1vdW50VHlwZSlcbiAgKTtcbiAgdW5zcGVudHMuZm9yRWFjaCgodW5zcGVudCkgPT4ge1xuICAgIHV0eG9saWIuYml0Z28uYWRkVG9UcmFuc2FjdGlvbkJ1aWxkZXIodHJhbnNhY3Rpb25CdWlsZGVyLCB1bnNwZW50KTtcbiAgfSk7XG4gIGxldCB0cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uQnVpbGRlci5idWlsZEluY29tcGxldGUoKTtcbiAgaWYgKHNpZ25lcikge1xuICAgIHRyYW5zYWN0aW9uID0gc2lnbkFuZFZlcmlmeVdhbGxldFRyYW5zYWN0aW9uPFROdW1iZXI+KHRyYW5zYWN0aW9uQnVpbGRlciwgdW5zcGVudHMsIHNpZ25lciwge1xuICAgICAgaXNMYXN0U2lnbmF0dXJlOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gdHJhbnNhY3Rpb247XG59XG5cbmZ1bmN0aW9uIGdldFR4SW5mbzxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgdHJhbnNhY3Rpb246IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICB1bnNwZW50czogV2FsbGV0VW5zcGVudDxUTnVtYmVyPltdLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB3YWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50JyA9ICdudW1iZXInXG4pOiBUcmFuc2FjdGlvbkluZm88VE51bWJlcj4ge1xuICBjb25zdCBpbnB1dEFtb3VudCA9IHV0eG9saWIuYml0Z28udW5zcGVudFN1bTxUTnVtYmVyPih1bnNwZW50cywgYW1vdW50VHlwZSk7XG4gIGNvbnN0IG91dHB1dEFtb3VudCA9IHV0eG9saWIuYml0Z28udG9UTnVtYmVyPFROdW1iZXI+KFxuICAgIHRyYW5zYWN0aW9uLm91dHMucmVkdWNlKChzdW0sIG8pID0+IHN1bSArIEJpZ0ludChvLnZhbHVlKSwgQmlnSW50KDApKSxcbiAgICBhbW91bnRUeXBlXG4gICk7XG4gIGNvbnN0IG91dHB1dHMgPSB0cmFuc2FjdGlvbi5vdXRzLm1hcCgobykgPT4gKHtcbiAgICBhZGRyZXNzOiB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChvLnNjcmlwdCwgdHJhbnNhY3Rpb24ubmV0d29yayksXG4gICAgdmFsdWVTdHJpbmc6IG8udmFsdWUudG9TdHJpbmcoKSxcbiAgICBjaGFuZ2U6IGZhbHNlLFxuICB9KSk7XG4gIGNvbnN0IGlucHV0cyA9IHVuc3BlbnRzLm1hcCgodSkgPT4ge1xuICAgIC8vIE5PVEU6XG4gICAgLy8gVGhlIGByZWRlZW1TY3JpcHRgIGFuZCBgd2FsbGV0U2NyaXB0YCBwcm9wZXJ0aWVzIGFyZSByZXF1aXJlZCBmb3IgbGVnYWN5IHZlcnNpb25zIG9mIEJpdEdvSlNcbiAgICAvLyB3aGljaCBtaWdodCByZXF1aXJlIHRoZXNlIHNjcmlwdHMgZm9yIHNpZ25pbmcuIFRoZSBXYWxsZXQgUmVjb3ZlcnkgV2l6YXJkIChXUlcpIGNhbiBjcmVhdGVcbiAgICAvLyB1bnNpZ25lZCBwcmVidWlsZHMgdGhhdCBhcmUgc3VibWl0dGVkIHRvIEJpdEdvSlMgaW5zdGFuY2VzIHdoaWNoIGFyZSBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWVcbiAgICAvLyB2ZXJzaW9uLlxuICAgIGNvbnN0IGFkZHJlc3NLZXlzID0gd2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KHUuY2hhaW4sIHUuaW5kZXgpO1xuICAgIGNvbnN0IHNjcmlwdFR5cGUgPSBzY3JpcHRUeXBlRm9yQ2hhaW4odS5jaGFpbik7XG4gICAgY29uc3QgeyByZWRlZW1TY3JpcHQsIHdpdG5lc3NTY3JpcHQgfSA9IG91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhhZGRyZXNzS2V5cy5wdWJsaWNLZXlzLCBzY3JpcHRUeXBlKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi51LFxuICAgICAgd2FsbGV0OiB3YWxsZXRJZCxcbiAgICAgIGZyb21XYWxsZXQ6IHdhbGxldElkLFxuICAgICAgcmVkZWVtU2NyaXB0OiByZWRlZW1TY3JpcHQ/LnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHdpdG5lc3NTY3JpcHQ6IHdpdG5lc3NTY3JpcHQ/LnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9IGFzIFdhbGxldFVuc3BlbnRMZWdhY3k8VE51bWJlcj47XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGlucHV0QW1vdW50LFxuICAgIG91dHB1dEFtb3VudCxcbiAgICBtaW5lckZlZTogaW5wdXRBbW91bnQgLSBvdXRwdXRBbW91bnQsXG4gICAgc3BlbmRBbW91bnQ6IG91dHB1dEFtb3VudCxcbiAgICBpbnB1dHMsXG4gICAgdW5zcGVudHM6IGlucHV0cyxcbiAgICBvdXRwdXRzLFxuICAgIGV4dGVybmFsT3V0cHV0czogb3V0cHV0cyxcbiAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICBwYXlHb0ZlZTogMCxcbiAgfSAvKiBjYXN0IHRvIFRyYW5zYWN0aW9uSW5mbyB0byBhbGxvdyBleHRyYSBmaWVsZHMgbWF5IGJlIHJlcXVpcmVkIGJ5IGxlZ2FjeSBjb25zdW1lcnMgb2YgdGhpcyBkYXRhICovIGFzIFRyYW5zYWN0aW9uSW5mbzxUTnVtYmVyPjtcbn1cblxuZnVuY3Rpb24gZ2V0RmVlSW5mbzxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgdHJhbnNhY3Rpb246IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICB1bnNwZW50czogV2FsbGV0VW5zcGVudDxUTnVtYmVyPltdLFxuICBhbW91bnRUeXBlOiAnbnVtYmVyJyB8ICdiaWdpbnQnID0gJ251bWJlcidcbik6IEZlZUluZm8ge1xuICBjb25zdCB2c2l6ZSA9IERpbWVuc2lvbnMuZnJvbVVuc3BlbnRzKHVuc3BlbnRzKS5wbHVzKERpbWVuc2lvbnMuZnJvbU91dHB1dHModHJhbnNhY3Rpb24ub3V0cykpLmdldFZTaXplKCk7XG4gIGNvbnN0IGlucHV0QW1vdW50ID0gdXR4b2xpYi5iaXRnby51bnNwZW50U3VtPFROdW1iZXI+KHVuc3BlbnRzLCBhbW91bnRUeXBlKTtcbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gdHJhbnNhY3Rpb24ub3V0cy5yZWR1Y2UoKHN1bSwgbykgPT4gc3VtICsgQmlnSW50KG8udmFsdWUpLCBCaWdJbnQoMCkpO1xuICBjb25zdCBmZWUgPSBOdW1iZXIoQmlnSW50KGlucHV0QW1vdW50KSAtIG91dHB1dEFtb3VudCk7XG4gIHJldHVybiB7XG4gICAgc2l6ZTogdnNpemUsXG4gICAgZmVlLFxuICAgIGZlZVJhdGU6IGZlZSAvIHZzaXplLFxuICAgIHBheUdvRmVlOiAwLFxuICB9O1xufVxuXG50eXBlIFJlY292ZXJQYXJhbXMgPSB7XG4gIC8qKiBXYWxsZXQgSUQgKGNhbiBiZSB2MSB3YWxsZXQgb3IgdjIgd2FsbGV0KSAqL1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICAvKiogQ29pbiB0byBjcmVhdGUgdGhlIHRyYW5zYWN0aW9uIGZvciAqL1xuICBzb3VyY2VDb2luOiBBYnN0cmFjdFV0eG9Db2luO1xuICAvKiogQ29pbiB0aGF0IHdhbGxldCBrZXlzIHdlcmUgc2V0IHVwIGZvciAqL1xuICByZWNvdmVyeUNvaW46IEFic3RyYWN0VXR4b0NvaW47XG4gIC8qKiBTb3VyY2UgY29pbiB0cmFuc2FjdGlvbiB0byByZWNvdmVyIG91dHB1dHMgZnJvbSAoc291cmNlQ29pbikgKi9cbiAgdHhpZDogc3RyaW5nO1xuICAvKiogU291cmNlIGNvaW4gYWRkcmVzcyB0byBzZW5kIHRoZSBmdW5kcyB0byAqL1xuICByZWNvdmVyeUFkZHJlc3M6IHN0cmluZztcbiAgLyoqIElmIHNldCwgZGVjcnlwdHMgcHJpdmF0ZSBrZXkgYW5kIHNpZ25zIHRyYW5zYWN0aW9uICovXG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIC8qKiBJZiBzZXQsIHNpZ25zIHRyYW5zYWN0aW9uICovXG4gIHhwcnY/OiBzdHJpbmc7XG4gIC8qKiBmb3IgdXR4byBjb2lucyBvdGhlciB0aGFuIFtCVEMsVEJUQ10gdGhpcyBpcyBhIEJsb2NrIENoYWlyIGFwaSBrZXkgKiovXG4gIGFwaUtleT86IHN0cmluZztcbn07XG5cbi8qKlxuICogUmVjb3ZlciB3YWxsZXQgZGVwb3NpdHMgdGhhdCB3ZXJlIHJlY2VpdmVkIG9uIHRoZSB3cm9uZyBibG9ja2NoYWluXG4gKiAoZm9yIGluc3RhbmNlIGJpdGNvaW4gZGVwb3NpdHMgdGhhdCB3ZXJlIHJlY2VpdmVkIGZvciBhIGxpdGVjb2luIHdhbGxldCkuXG4gKlxuICogRmV0Y2hlcyB0aGUgdW5zcGVudCBkYXRhIGZyb20gQml0R28ncyBwdWJsaWMgYmxvY2tjaGFpbiBBUEkgYW5kIHRoZSBzY3JpcHQgZGF0YSBmcm9tIHRoZSB1c2VyJ3NcbiAqIHdhbGxldC5cbiAqXG4gKiBAcGFyYW0ge0JpdEdvQmFzZX0gYml0Z29cbiAqIEBwYXJhbSB7UmVjb3ZlclBhcmFtc30gcGFyYW1zXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWNvdmVyQ3Jvc3NDaGFpbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgcGFyYW1zOiBSZWNvdmVyUGFyYW1zXG4pOiBQcm9taXNlPENyb3NzQ2hhaW5SZWNvdmVyeVNpZ25lZDxUTnVtYmVyPiB8IENyb3NzQ2hhaW5SZWNvdmVyeVVuc2lnbmVkPFROdW1iZXI+PiB7XG4gIGNvbnN0IHdhbGxldCA9IGF3YWl0IGdldFdhbGxldChiaXRnbywgcGFyYW1zLnJlY292ZXJ5Q29pbiwgcGFyYW1zLndhbGxldElkKTtcbiAgY29uc3QgdW5zcGVudHMgPSBhd2FpdCBnZXRBbGxSZWNvdmVyeU91dHB1dHM8VE51bWJlcj4oXG4gICAgcGFyYW1zLnNvdXJjZUNvaW4sXG4gICAgcGFyYW1zLnR4aWQsXG4gICAgcGFyYW1zLnNvdXJjZUNvaW4uYW1vdW50VHlwZSxcbiAgICBwYXJhbXMuYXBpS2V5XG4gICk7XG4gIGNvbnN0IHdhbGxldFVuc3BlbnRzID0gYXdhaXQgdG9XYWxsZXRVbnNwZW50czxUTnVtYmVyPihwYXJhbXMuc291cmNlQ29pbiwgcGFyYW1zLnJlY292ZXJ5Q29pbiwgdW5zcGVudHMsIHdhbGxldCk7XG4gIGNvbnN0IHdhbGxldEtleXMgPSBhd2FpdCBnZXRXYWxsZXRLZXlzKHBhcmFtcy5yZWNvdmVyeUNvaW4sIHdhbGxldCk7XG4gIGNvbnN0IHBydiA9XG4gICAgcGFyYW1zLnhwcnYgfHwgcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgPyBhd2FpdCBnZXRQcnYocGFyYW1zLnhwcnYsIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlLCB3YWxsZXQpIDogdW5kZWZpbmVkO1xuICBjb25zdCBzaWduZXIgPSBwcnZcbiAgICA/IG5ldyB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+KHdhbGxldEtleXMsIHBydiwgd2FsbGV0S2V5cy5iaXRnbylcbiAgICA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZmVlUmF0ZVNhdFZCID0gYXdhaXQgZ2V0RmVlUmF0ZVNhdFZCKHBhcmFtcy5zb3VyY2VDb2luKTtcbiAgY29uc3QgdHJhbnNhY3Rpb24gPSBjcmVhdGVTd2VlcFRyYW5zYWN0aW9uPFROdW1iZXI+KFxuICAgIHBhcmFtcy5zb3VyY2VDb2luLm5ldHdvcmssXG4gICAgd2FsbGV0VW5zcGVudHMsXG4gICAgcGFyYW1zLnJlY292ZXJ5QWRkcmVzcyxcbiAgICBmZWVSYXRlU2F0VkIsXG4gICAgc2lnbmVyLFxuICAgIHBhcmFtcy5zb3VyY2VDb2luLmFtb3VudFR5cGVcbiAgKTtcbiAgY29uc3QgcmVjb3ZlcnlBbW91bnQgPSB0cmFuc2FjdGlvbi5vdXRzWzBdLnZhbHVlO1xuICBjb25zdCB0eEhleCA9IHRyYW5zYWN0aW9uLnRvQnVmZmVyKCkudG9TdHJpbmcoJ2hleCcpO1xuICBjb25zdCB0eEluZm8gPSBnZXRUeEluZm88VE51bWJlcj4oXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgd2FsbGV0VW5zcGVudHMsXG4gICAgcGFyYW1zLndhbGxldElkLFxuICAgIHdhbGxldEtleXMsXG4gICAgcGFyYW1zLnNvdXJjZUNvaW4uYW1vdW50VHlwZVxuICApO1xuICBpZiAocHJ2KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZlcnNpb246IHdhbGxldCBpbnN0YW5jZW9mIFdhbGxldCA/IDIgOiAxLFxuICAgICAgd2FsbGV0SWQ6IHBhcmFtcy53YWxsZXRJZCxcbiAgICAgIHR4SGV4LFxuICAgICAgdHhJbmZvLFxuICAgICAgc291cmNlQ29pbjogcGFyYW1zLnNvdXJjZUNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgIHJlY292ZXJ5Q29pbjogcGFyYW1zLnJlY292ZXJ5Q29pbi5nZXRDaGFpbigpLFxuICAgICAgcmVjb3ZlcnlBbW91bnQsXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHhIZXgsXG4gICAgICB0eEluZm8sXG4gICAgICB3YWxsZXRJZDogcGFyYW1zLndhbGxldElkLFxuICAgICAgZmVlSW5mbzogZ2V0RmVlSW5mbyh0cmFuc2FjdGlvbiwgd2FsbGV0VW5zcGVudHMsIHBhcmFtcy5zb3VyY2VDb2luLmFtb3VudFR5cGUpLFxuICAgICAgYWRkcmVzczogcGFyYW1zLnJlY292ZXJ5QWRkcmVzcyxcbiAgICAgIGNvaW46IHBhcmFtcy5zb3VyY2VDb2luLmdldENoYWluKCksXG4gICAgfTtcbiAgfVxufVxuIl19
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NDaGFpblJlY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlY292ZXJ5L2Nyb3NzQ2hhaW5SZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNEQSw4QkFvQkM7QUFPRCxzQ0FpQkM7QUFFRCwwQ0FhQztBQXdURCw4Q0F5REM7QUFsZUQsOERBQWdEO0FBQ2hELG1EQUE2RDtBQUM3RCxtREFBa0Q7QUFDbEQsbURBQW9GO0FBQ3BGLGlEQUE4QztBQUc5QyxrQ0FBeUQ7QUFFekQsTUFBTSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBNkNqRSxLQUFLLFVBQVUsU0FBUyxDQUM3QixLQUFnQixFQUNoQixJQUFzQixFQUN0QixRQUFnQjtJQUVoQixJQUFJLENBQUM7UUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsK0NBQStDO1FBQy9DLGtKQUFrSjtRQUNsSixJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixRQUFRLG1CQUFtQixDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lB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bmltcG9ydCB7IGJpcDMyLCBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERpbWVuc2lvbnMgfSBmcm9tICdAYml0Z28tYmV0YS91bnNwZW50cyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UsIElXYWxsZXQsIEtleWNoYWluLCBUcmlwbGUsIFdhbGxldCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGRlY3J5cHQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstYXBpJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgVHJhbnNhY3Rpb25JbmZvIH0gZnJvbSAnLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBzaWduQW5kVmVyaWZ5V2FsbGV0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi9zaWduJztcblxuY29uc3QgeyB1bnNwZW50U3VtLCBzY3JpcHRUeXBlRm9yQ2hhaW4sIG91dHB1dFNjcmlwdHMgfSA9IHV0eG9saWIuYml0Z287XG50eXBlIFJvb3RXYWxsZXRLZXlzID0gdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cztcbnR5cGUgVW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiA9IHV0eG9saWIuYml0Z28uVW5zcGVudDxUTnVtYmVyPjtcbnR5cGUgV2FsbGV0VW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiA9IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudDxUTnVtYmVyPjtcbnR5cGUgV2FsbGV0VW5zcGVudExlZ2FjeTxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiA9IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudExlZ2FjeTxUTnVtYmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFJlY292ZXJ5VHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgd2FsbGV0OiBzdHJpbmc7XG4gIGZhdWx0eVR4SWQ6IHN0cmluZztcbiAgcmVjb3ZlcnlBZGRyZXNzOiBzdHJpbmc7XG59XG5cbnR5cGUgRmVlSW5mbyA9IHtcbiAgc2l6ZTogbnVtYmVyO1xuICBmZWVSYXRlOiBudW1iZXI7XG4gIGZlZTogbnVtYmVyO1xuICBwYXlHb0ZlZTogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiB7XG4gIHR4SGV4OiBzdHJpbmc7XG4gIHR4SW5mbzogVHJhbnNhY3Rpb25JbmZvPFROdW1iZXI+O1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICBmZWVJbmZvOiBGZWVJbmZvO1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGNvaW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcm9zc0NoYWluUmVjb3ZlcnlTaWduZWQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4ge1xuICB2ZXJzaW9uOiAxIHwgMjtcbiAgdHhIZXg6IHN0cmluZztcbiAgdHhJbmZvOiBUcmFuc2FjdGlvbkluZm88VE51bWJlcj47XG4gIHdhbGxldElkOiBzdHJpbmc7XG4gIHNvdXJjZUNvaW46IHN0cmluZztcbiAgcmVjb3ZlcnlDb2luOiBzdHJpbmc7XG4gIHJlY292ZXJ5QWRkcmVzcz86IHN0cmluZztcbiAgcmVjb3ZlcnlBbW91bnQ/OiBUTnVtYmVyO1xufVxuXG50eXBlIFdhbGxldFYxID0ge1xuICBrZXljaGFpbnM6IHsgeHB1Yjogc3RyaW5nIH1bXTtcbiAgYWRkcmVzcyh7IGFkZHJlc3MgfTogeyBhZGRyZXNzOiBzdHJpbmcgfSk6IFByb21pc2U8eyBjaGFpbjogbnVtYmVyOyBpbmRleDogbnVtYmVyIH0+O1xuICBnZXRFbmNyeXB0ZWRVc2VyS2V5Y2hhaW4oKTogUHJvbWlzZTx7IGVuY3J5cHRlZFhwcnY6IHN0cmluZyB9Pjtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRXYWxsZXQoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHdhbGxldElkOiBzdHJpbmdcbik6IFByb21pc2U8SVdhbGxldCB8IFdhbGxldFYxPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGNvaW4ud2FsbGV0cygpLmdldCh7IGlkOiB3YWxsZXRJZCB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIFRPRE86IEJHLTQ2MzY0IGhhbmRsZSBlcnJvcnMgbW9yZSBncmFjZWZ1bGx5XG4gICAgLy8gVGhlIHYyIGVuZHBvaW50IGNvaW4ud2FsbGV0cygpLmdldCgpIG1heSB0aHJvdyA0MDQgb3IgNDAwIGVycm9ycywgYnV0IHRoaXMgc2hvdWxkIG5vdCBwcmV2ZW50IHVzIGZyb20gc2VhcmNoaW5nIGZvciB0aGUgd2FsbGV0SWQgaW4gdjEgd2FsbGV0cy5cbiAgICBpZiAoZS5zdGF0dXMgPj0gNTAwKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGJpdGdvLndhbGxldHMoKS5nZXQoeyBpZDogd2FsbGV0SWQgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBnZXQgd2FsbGV0ICR7d2FsbGV0SWR9IGZyb20gdjEgb3IgdjI6ICR7ZS50b1N0cmluZygpfWApO1xuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHJlY292ZXJ5Q29pblxuICogQHBhcmFtIHdhbGxldFxuICogQHJldHVybiB3YWxsZXQgcHVia2V5c1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0V2FsbGV0S2V5cyhcbiAgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICB3YWxsZXQ6IElXYWxsZXQgfCBXYWxsZXRWMVxuKTogUHJvbWlzZTxSb290V2FsbGV0S2V5cz4ge1xuICBsZXQgeHB1YnM6IFRyaXBsZTxzdHJpbmc+O1xuXG4gIGlmICh3YWxsZXQgaW5zdGFuY2VvZiBXYWxsZXQpIHtcbiAgICBjb25zdCBrZXljaGFpbnMgPSAoYXdhaXQgcmVjb3ZlcnlDb2luLmtleWNoYWlucygpLmdldEtleXNGb3JTaWduaW5nKHsgd2FsbGV0IH0pKSBhcyB1bmtub3duIGFzIEtleWNoYWluW107XG4gICAgaWYgKGtleWNoYWlucy5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgdHJpcGxlIGdvdCAke2tleWNoYWlucy5sZW5ndGh9YCk7XG4gICAgfVxuICAgIHhwdWJzID0ga2V5Y2hhaW5zLm1hcCgoaykgPT4gay5wdWIpIGFzIFRyaXBsZTxzdHJpbmc+O1xuICB9IGVsc2Uge1xuICAgIHhwdWJzID0gKHdhbGxldCBhcyBXYWxsZXRWMSkua2V5Y2hhaW5zLm1hcCgoaykgPT4gay54cHViKSBhcyBUcmlwbGU8c3RyaW5nPjtcbiAgfVxuXG4gIHJldHVybiBuZXcgdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyh4cHVicy5tYXAoKGspID0+IGJpcDMyLmZyb21CYXNlNTgoaykpIGFzIFRyaXBsZTxCSVAzMkludGVyZmFjZT4pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNXYWxsZXRBZGRyZXNzKHdhbGxldDogSVdhbGxldCB8IFdhbGxldFYxLCBhZGRyZXNzOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgdHJ5IHtcbiAgICBsZXQgYWRkcmVzc0RhdGE7XG4gICAgaWYgKHdhbGxldCBpbnN0YW5jZW9mIFdhbGxldCkge1xuICAgICAgYWRkcmVzc0RhdGEgPSBhd2FpdCB3YWxsZXQuZ2V0QWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFkZHJlc3NEYXRhID0gYXdhaXQgKHdhbGxldCBhcyBXYWxsZXRWMSkuYWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFkZHJlc3NEYXRhICE9PSB1bmRlZmluZWQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0gY29pblxuICogQHBhcmFtIHR4aWRcbiAqIEBwYXJhbSBhbW91bnRUeXBlXG4gKiBAcGFyYW0gd2FsbGV0XG4gKiBAcGFyYW0gYXBpS2V5IC0gYSBibG9ja2NoYWlyIGFwaSBrZXlcbiAqIEByZXR1cm4gYWxsIHVuc3BlbnRzIGZvciB0cmFuc2FjdGlvbiBvdXRwdXRzLCBpbmNsdWRpbmcgb3V0cHV0cyBmcm9tIG90aGVyIHRyYW5zYWN0aW9uc1xuICovXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxSZWNvdmVyeU91dHB1dHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHR4aWQ6IHN0cmluZyxcbiAgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50JyA9ICdudW1iZXInLFxuICB3YWxsZXQ6IElXYWxsZXQgfCBXYWxsZXRWMSxcbiAgYXBpS2V5Pzogc3RyaW5nXG4pOiBQcm9taXNlPFVuc3BlbnQ8VE51bWJlcj5bXT4ge1xuICBjb25zdCBhcGkgPSBjb2luLmdldFJlY292ZXJ5UHJvdmlkZXIoYXBpS2V5KTtcbiAgY29uc3QgdHggPSBhd2FpdCBhcGkuZ2V0VHJhbnNhY3Rpb25JTyh0eGlkKTtcbiAgY29uc3Qgd2FsbGV0QWRkcmVzc2VzID0gKFxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdHgub3V0cHV0cy5tYXAoYXN5bmMgKG91dHB1dCkgPT4ge1xuICAgICAgICAvLyBGb3Igc29tZSBjb2lucyAoYmNoKSB3ZSBuZWVkIHRvIGNvbnZlcnQgdGhlIGFkZHJlc3MgdG8gbGVnYWN5IGZvcm1hdCBzaW5jZSB0aGUgYXBpIHJldHVybnMgdGhlIGFkZHJlc3NcbiAgICAgICAgLy8gaW4gbm9uIGxlZ2FjeSBmb3JtYXQuIEhvd2V2ZXIsIHdlIHdhbnQgdG8ga2VlcCB0aGUgYWRkcmVzcyBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIHJlc3BvbnNlIHNpbmNlIHdlXG4gICAgICAgIC8vIGFyZSBnb2luZyB0byBoaXQgdGhlIEFQSSBhZ2FpbiB0byBmZXRjaCBhZGRyZXNzIHVuc3BlbnRzLlxuICAgICAgICBjb25zdCBjYW5vbmljYWxBZGRyZXNzID0gY29pbi5jYW5vbmljYWxBZGRyZXNzKG91dHB1dC5hZGRyZXNzKTtcbiAgICAgICAgY29uc3QgaXNXYWxsZXRPd25lZCA9IGF3YWl0IGlzV2FsbGV0QWRkcmVzcyh3YWxsZXQsIGNhbm9uaWNhbEFkZHJlc3MpO1xuICAgICAgICByZXR1cm4gaXNXYWxsZXRPd25lZCA/IG91dHB1dC5hZGRyZXNzIDogbnVsbDtcbiAgICAgIH0pXG4gICAgKVxuICApLmZpbHRlcigoYWRkcmVzcykgPT4gYWRkcmVzcyAhPT0gbnVsbCk7XG5cbiAgY29uc3QgdW5zcGVudHMgPSBhd2FpdCBhcGkuZ2V0VW5zcGVudHNGb3JBZGRyZXNzZXMod2FsbGV0QWRkcmVzc2VzIGFzIHN0cmluZ1tdKTtcbiAgaWYgKHVuc3BlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gcmVjb3ZlcnkgdW5zcGVudHMgZm91bmQuYCk7XG4gIH1cbiAgLy8gdGhlIGFwaSBtYXkgcmV0dXJuIGNhc2hhZGRyJ3MgaW5zdGVhZCBvZiBsZWdhY3kgZm9yIEJDSCBhbmQgQkNIQVxuICAvLyBkb3duc3RyZWFtIHByb2Nlc3NlcydzIG9ubHkgZXhwZWN0IGxlZ2FjeSBhZGRyZXNzZXNcbiAgcmV0dXJuIHVuc3BlbnRzLm1hcCgocmVjb3ZlcnlPdXRwdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVjb3ZlcnlPdXRwdXQsXG4gICAgICBhZGRyZXNzOiBjb2luLmNhbm9uaWNhbEFkZHJlc3MocmVjb3ZlcnlPdXRwdXQuYWRkcmVzcyksXG4gICAgICB2YWx1ZTogdXR4b2xpYi5iaXRnby50b1ROdW1iZXI8VE51bWJlcj4oQmlnSW50KHJlY292ZXJ5T3V0cHV0LnZhbHVlKSwgYW1vdW50VHlwZSksXG4gICAgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogRGF0YSByZXF1aXJlZCBmb3IgYWRkcmVzcyBhbmQgc2lnbmF0dXJlIGRlcml2YXRpb25cbiAqL1xudHlwZSBTY3JpcHRJZCA9IHtcbiAgY2hhaW46IG51bWJlcjtcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFNjcmlwdElkKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldDogSVdhbGxldCB8IFdhbGxldFYxLCBzY3JpcHQ6IEJ1ZmZlcik6IFByb21pc2U8U2NyaXB0SWQ+IHtcbiAgY29uc3QgYWRkcmVzcyA9IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KHNjcmlwdCwgY29pbi5uZXR3b3JrKTtcbiAgbGV0IGFkZHJlc3NEYXRhOiB7IGNoYWluOiBudW1iZXI7IGluZGV4OiBudW1iZXIgfTtcbiAgaWYgKHdhbGxldCBpbnN0YW5jZW9mIFdhbGxldCkge1xuICAgIGFkZHJlc3NEYXRhID0gYXdhaXQgd2FsbGV0LmdldEFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICB9IGVsc2Uge1xuICAgIGFkZHJlc3NEYXRhID0gYXdhaXQgKHdhbGxldCBhcyBXYWxsZXRWMSkuYWRkcmVzcyh7IGFkZHJlc3MgfSk7XG4gIH1cbiAgaWYgKHR5cGVvZiBhZGRyZXNzRGF0YS5jaGFpbiA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGFkZHJlc3NEYXRhLmluZGV4ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB7IGNoYWluOiBhZGRyZXNzRGF0YS5jaGFpbiwgaW5kZXg6IGFkZHJlc3NEYXRhLmluZGV4IH07XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgYWRkcmVzcyBkYXRhOiAke0pTT04uc3RyaW5naWZ5KGFkZHJlc3NEYXRhKX1gKTtcbn1cblxuLyoqXG4gKiBMb29rdXAgYWRkcmVzcyBkYXRhIGZyb20gdW5zcGVudHMgb24gc291cmNlQ29pbiBpbiBhZGRyZXNzIGRhdGFiYXNlIG9mIHJlY292ZXJ5Q29pbi5cbiAqIFJldHVybiBmdWxsIHdhbGxldFVuc3BlbnRzIGluY2x1ZGluZyBzY3JpcHRJZCBpbiBzb3VyY2VDb2luIGZvcm1hdC5cbiAqXG4gKiBAcGFyYW0gc291cmNlQ29pblxuICogQHBhcmFtIHJlY292ZXJ5Q29pblxuICogQHBhcmFtIHVuc3BlbnRzXG4gKiBAcGFyYW0gd2FsbGV0XG4gKiBAcmV0dXJuIHdhbGxldFVuc3BlbnRzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHRvV2FsbGV0VW5zcGVudHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIHNvdXJjZUNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHJlY292ZXJ5Q29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgdW5zcGVudHM6IFVuc3BlbnQ8VE51bWJlcj5bXSxcbiAgd2FsbGV0OiBJV2FsbGV0IHwgV2FsbGV0VjFcbik6IFByb21pc2U8V2FsbGV0VW5zcGVudDxUTnVtYmVyPltdPiB7XG4gIGNvbnN0IGFkZHJlc3NlcyA9IG5ldyBTZXQodW5zcGVudHMubWFwKCh1KSA9PiB1LmFkZHJlc3MpKTtcbiAgY29uc3Qgd2FsbGV0VW5zcGVudHM6IFdhbGxldFVuc3BlbnQ8VE51bWJlcj5bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgYWRkcmVzcyBvZiBhZGRyZXNzZXMpIHtcbiAgICBsZXQgc2NyaXB0SWQ7XG4gICAgdHJ5IHtcbiAgICAgIHNjcmlwdElkID0gYXdhaXQgZ2V0U2NyaXB0SWQocmVjb3ZlcnlDb2luLCB3YWxsZXQsIHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChhZGRyZXNzLCBzb3VyY2VDb2luLm5ldHdvcmspKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBlcnJvciBnZXR0aW5nIHNjcmlwdElkIGZvciAke2FkZHJlc3N9OmAsIGUpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGZpbHRlcmVkVW5zcGVudHMgPSB1bnNwZW50c1xuICAgICAgLmZpbHRlcigodSkgPT4gdS5hZGRyZXNzID09PSBhZGRyZXNzKVxuICAgICAgLm1hcCgodSkgPT4gKHtcbiAgICAgICAgLi4udSxcbiAgICAgICAgLi4uc2NyaXB0SWQsXG4gICAgICB9KSk7XG4gICAgd2FsbGV0VW5zcGVudHMucHVzaCguLi5maWx0ZXJlZFVuc3BlbnRzKTtcbiAgfVxuXG4gIHJldHVybiB3YWxsZXRVbnNwZW50cztcbn1cblxuLyoqXG4gKiBAcGFyYW0gY29pblxuICogQHJldHVybiBmZWVSYXRlIGZvciB0cmFuc2FjdGlvblxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRGZWVSYXRlU2F0VkIoY29pbjogQWJzdHJhY3RVdHhvQ29pbik6IFByb21pc2U8bnVtYmVyPiB7XG4gIC8vIFRPRE86IHVzZSBmZWVSYXRlIEFQSVxuICBjb25zdCBmZWVSYXRlID0ge1xuICAgIGJjaDogMjAsXG4gICAgdGJjaDogMjAsXG4gICAgYmNoYTogMjAsXG4gICAgdGJjaGE6IDIwLFxuICAgIGJzdjogMjAsXG4gICAgdGJzdjogMjAsXG4gICAgYnRjOiA4MCxcbiAgICB0YnRjOiA4MCxcbiAgICB0YnRjc2lnOiA4MCxcbiAgICB0YnRjNDogODAsXG4gICAgdGJ0Y2Jnc2lnOiA4MCxcbiAgICBsdGM6IDEwMCxcbiAgICB0bHRjOiAxMDAsXG4gICAgZG9nZTogMTAwMCxcbiAgICB0ZG9nZTogMTAwMCxcbiAgfVtjb2luLmdldENoYWluKCldO1xuXG4gIGlmICghZmVlUmF0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8gZmVlUmF0ZSBmb3IgJHtjb2luLmdldENoYWluKCl9YCk7XG4gIH1cblxuICByZXR1cm4gZmVlUmF0ZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0geHBydlxuICogQHBhcmFtIHBhc3NwaHJhc2VcbiAqIEBwYXJhbSB3YWxsZXRcbiAqIEByZXR1cm4gc2lnbmluZyBrZXlcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0UHJ2KHhwcnY/OiBzdHJpbmcsIHBhc3NwaHJhc2U/OiBzdHJpbmcsIHdhbGxldD86IElXYWxsZXQgfCBXYWxsZXRWMSk6IFByb21pc2U8QklQMzJJbnRlcmZhY2U+IHtcbiAgaWYgKHhwcnYpIHtcbiAgICBjb25zdCBrZXkgPSBiaXAzMi5mcm9tQmFzZTU4KHhwcnYpO1xuICAgIGlmIChrZXkuaXNOZXV0ZXJlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG5vdCBhIHByaXZhdGUga2V5YCk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBpZiAoIXdhbGxldCB8fCAhcGFzc3BocmFzZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8geHBydiBnaXZlbjogbmVlZCB3YWxsZXQgYW5kIHBhc3NwaHJhc2UgdG8gY29udGludWVgKTtcbiAgfVxuXG4gIGxldCBlbmNyeXB0ZWRQcnY6IHN0cmluZztcbiAgaWYgKHdhbGxldCBpbnN0YW5jZW9mIFdhbGxldCkge1xuICAgIGVuY3J5cHRlZFBydiA9IChhd2FpdCB3YWxsZXQuZ2V0RW5jcnlwdGVkVXNlcktleWNoYWluKCkpLmVuY3J5cHRlZFBydjtcbiAgfSBlbHNlIHtcbiAgICBlbmNyeXB0ZWRQcnYgPSAoYXdhaXQgKHdhbGxldCBhcyBXYWxsZXRWMSkuZ2V0RW5jcnlwdGVkVXNlcktleWNoYWluKCkpLmVuY3J5cHRlZFhwcnY7XG4gIH1cblxuICByZXR1cm4gZ2V0UHJ2KGRlY3J5cHQocGFzc3BocmFzZSwgZW5jcnlwdGVkUHJ2KSk7XG59XG5cbi8qKlxuICogQHBhcmFtIG5ldHdvcmtcbiAqIEBwYXJhbSB1bnNwZW50c1xuICogQHBhcmFtIHRhcmdldEFkZHJlc3NcbiAqIEBwYXJhbSBmZWVSYXRlU2F0VkJcbiAqIEBwYXJhbSBzaWduZXIgLSBpZiBzZXQsIHNpZ24gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBhbW91bnRUeXBlXG4gKiBAcmV0dXJuIHRyYW5zYWN0aW9uIHNwZW5kaW5nIGZ1bGwgaW5wdXQgYW1vdW50IHRvIHRhcmdldEFkZHJlc3NcbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3dlZXBUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB1bnNwZW50czogV2FsbGV0VW5zcGVudDxUTnVtYmVyPltdLFxuICB0YXJnZXRBZGRyZXNzOiBzdHJpbmcsXG4gIGZlZVJhdGVTYXRWQjogbnVtYmVyLFxuICBzaWduZXI/OiB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+LFxuICBhbW91bnRUeXBlOiAnbnVtYmVyJyB8ICdiaWdpbnQnID0gJ251bWJlcidcbik6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+IHtcbiAgY29uc3QgaW5wdXRWYWx1ZSA9IHVuc3BlbnRTdW08VE51bWJlcj4odW5zcGVudHMsIGFtb3VudFR5cGUpO1xuICBjb25zdCB2c2l6ZSA9IERpbWVuc2lvbnMuZnJvbVVuc3BlbnRzKHVuc3BlbnRzLCB7XG4gICAgcDJ0cjogeyBzY3JpcHRQYXRoTGV2ZWw6IDEgfSxcbiAgICBwMnRyTXVzaWcyOiB7IHNjcmlwdFBhdGhMZXZlbDogdW5kZWZpbmVkIH0sXG4gIH0pXG4gICAgLnBsdXMoRGltZW5zaW9ucy5mcm9tT3V0cHV0KHsgc2NyaXB0OiB1dHhvbGliLmFkZHJlc3MudG9PdXRwdXRTY3JpcHQodGFyZ2V0QWRkcmVzcywgbmV0d29yaykgfSkpXG4gICAgLmdldFZTaXplKCk7XG4gIGNvbnN0IGZlZSA9IHZzaXplICogZmVlUmF0ZVNhdFZCO1xuXG4gIGNvbnN0IHRyYW5zYWN0aW9uQnVpbGRlciA9IHV0eG9saWIuYml0Z28uY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRm9yTmV0d29yazxUTnVtYmVyPihuZXR3b3JrKTtcbiAgdHJhbnNhY3Rpb25CdWlsZGVyLmFkZE91dHB1dChcbiAgICB0YXJnZXRBZGRyZXNzLFxuICAgIHV0eG9saWIuYml0Z28udG9UTnVtYmVyPFROdW1iZXI+KEJpZ0ludChpbnB1dFZhbHVlKSAtIEJpZ0ludChmZWUpLCBhbW91bnRUeXBlKVxuICApO1xuICB1bnNwZW50cy5mb3JFYWNoKCh1bnNwZW50KSA9PiB7XG4gICAgdXR4b2xpYi5iaXRnby5hZGRUb1RyYW5zYWN0aW9uQnVpbGRlcih0cmFuc2FjdGlvbkJ1aWxkZXIsIHVuc3BlbnQpO1xuICB9KTtcbiAgbGV0IHRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb25CdWlsZGVyLmJ1aWxkSW5jb21wbGV0ZSgpO1xuICBpZiAoc2lnbmVyKSB7XG4gICAgdHJhbnNhY3Rpb24gPSBzaWduQW5kVmVyaWZ5V2FsbGV0VHJhbnNhY3Rpb248VE51bWJlcj4odHJhbnNhY3Rpb25CdWlsZGVyLCB1bnNwZW50cywgc2lnbmVyLCB7XG4gICAgICBpc0xhc3RTaWduYXR1cmU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiB0cmFuc2FjdGlvbjtcbn1cblxuZnVuY3Rpb24gZ2V0VHhJbmZvPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICB0cmFuc2FjdGlvbjogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PFROdW1iZXI+W10sXG4gIHdhbGxldElkOiBzdHJpbmcsXG4gIHdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBhbW91bnRUeXBlOiAnbnVtYmVyJyB8ICdiaWdpbnQnID0gJ251bWJlcidcbik6IFRyYW5zYWN0aW9uSW5mbzxUTnVtYmVyPiB7XG4gIGNvbnN0IGlucHV0QW1vdW50ID0gdXR4b2xpYi5iaXRnby51bnNwZW50U3VtPFROdW1iZXI+KHVuc3BlbnRzLCBhbW91bnRUeXBlKTtcbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gdXR4b2xpYi5iaXRnby50b1ROdW1iZXI8VE51bWJlcj4oXG4gICAgdHJhbnNhY3Rpb24ub3V0cy5yZWR1Y2UoKHN1bSwgbykgPT4gc3VtICsgQmlnSW50KG8udmFsdWUpLCBCaWdJbnQoMCkpLFxuICAgIGFtb3VudFR5cGVcbiAgKTtcbiAgY29uc3Qgb3V0cHV0cyA9IHRyYW5zYWN0aW9uLm91dHMubWFwKChvKSA9PiAoe1xuICAgIGFkZHJlc3M6IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KG8uc2NyaXB0LCB0cmFuc2FjdGlvbi5uZXR3b3JrKSxcbiAgICB2YWx1ZVN0cmluZzogby52YWx1ZS50b1N0cmluZygpLFxuICAgIGNoYW5nZTogZmFsc2UsXG4gIH0pKTtcbiAgY29uc3QgaW5wdXRzID0gdW5zcGVudHMubWFwKCh1KSA9PiB7XG4gICAgLy8gTk9URTpcbiAgICAvLyBUaGUgYHJlZGVlbVNjcmlwdGAgYW5kIGB3YWxsZXRTY3JpcHRgIHByb3BlcnRpZXMgYXJlIHJlcXVpcmVkIGZvciBsZWdhY3kgdmVyc2lvbnMgb2YgQml0R29KU1xuICAgIC8vIHdoaWNoIG1pZ2h0IHJlcXVpcmUgdGhlc2Ugc2NyaXB0cyBmb3Igc2lnbmluZy4gVGhlIFdhbGxldCBSZWNvdmVyeSBXaXphcmQgKFdSVykgY2FuIGNyZWF0ZVxuICAgIC8vIHVuc2lnbmVkIHByZWJ1aWxkcyB0aGF0IGFyZSBzdWJtaXR0ZWQgdG8gQml0R29KUyBpbnN0YW5jZXMgd2hpY2ggYXJlIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZVxuICAgIC8vIHZlcnNpb24uXG4gICAgY29uc3QgYWRkcmVzc0tleXMgPSB3YWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgodS5jaGFpbiwgdS5pbmRleCk7XG4gICAgY29uc3Qgc2NyaXB0VHlwZSA9IHNjcmlwdFR5cGVGb3JDaGFpbih1LmNoYWluKTtcbiAgICBjb25zdCB7IHJlZGVlbVNjcmlwdCwgd2l0bmVzc1NjcmlwdCB9ID0gb3V0cHV0U2NyaXB0cy5jcmVhdGVPdXRwdXRTY3JpcHQyb2YzKGFkZHJlc3NLZXlzLnB1YmxpY0tleXMsIHNjcmlwdFR5cGUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnUsXG4gICAgICB3YWxsZXQ6IHdhbGxldElkLFxuICAgICAgZnJvbVdhbGxldDogd2FsbGV0SWQsXG4gICAgICByZWRlZW1TY3JpcHQ6IHJlZGVlbVNjcmlwdD8udG9TdHJpbmcoJ2hleCcpLFxuICAgICAgd2l0bmVzc1NjcmlwdDogd2l0bmVzc1NjcmlwdD8udG9TdHJpbmcoJ2hleCcpLFxuICAgIH0gYXMgV2FsbGV0VW5zcGVudExlZ2FjeTxUTnVtYmVyPjtcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgaW5wdXRBbW91bnQsXG4gICAgb3V0cHV0QW1vdW50LFxuICAgIG1pbmVyRmVlOiBpbnB1dEFtb3VudCAtIG91dHB1dEFtb3VudCxcbiAgICBzcGVuZEFtb3VudDogb3V0cHV0QW1vdW50LFxuICAgIGlucHV0cyxcbiAgICB1bnNwZW50czogaW5wdXRzLFxuICAgIG91dHB1dHMsXG4gICAgZXh0ZXJuYWxPdXRwdXRzOiBvdXRwdXRzLFxuICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgIHBheUdvRmVlOiAwLFxuICB9IC8qIGNhc3QgdG8gVHJhbnNhY3Rpb25JbmZvIHRvIGFsbG93IGV4dHJhIGZpZWxkcyBtYXkgYmUgcmVxdWlyZWQgYnkgbGVnYWN5IGNvbnN1bWVycyBvZiB0aGlzIGRhdGEgKi8gYXMgVHJhbnNhY3Rpb25JbmZvPFROdW1iZXI+O1xufVxuXG5mdW5jdGlvbiBnZXRGZWVJbmZvPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICB0cmFuc2FjdGlvbjogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PFROdW1iZXI+W10sXG4gIGFtb3VudFR5cGU6ICdudW1iZXInIHwgJ2JpZ2ludCcgPSAnbnVtYmVyJ1xuKTogRmVlSW5mbyB7XG4gIGNvbnN0IHZzaXplID0gRGltZW5zaW9ucy5mcm9tVW5zcGVudHModW5zcGVudHMsIHtcbiAgICBwMnRyOiB7IHNjcmlwdFBhdGhMZXZlbDogMSB9LFxuICAgIHAydHJNdXNpZzI6IHsgc2NyaXB0UGF0aExldmVsOiB1bmRlZmluZWQgfSxcbiAgfSlcbiAgICAucGx1cyhEaW1lbnNpb25zLmZyb21PdXRwdXRzKHRyYW5zYWN0aW9uLm91dHMpKVxuICAgIC5nZXRWU2l6ZSgpO1xuICBjb25zdCBpbnB1dEFtb3VudCA9IHV0eG9saWIuYml0Z28udW5zcGVudFN1bTxUTnVtYmVyPih1bnNwZW50cywgYW1vdW50VHlwZSk7XG4gIGNvbnN0IG91dHB1dEFtb3VudCA9IHRyYW5zYWN0aW9uLm91dHMucmVkdWNlKChzdW0sIG8pID0+IHN1bSArIEJpZ0ludChvLnZhbHVlKSwgQmlnSW50KDApKTtcbiAgY29uc3QgZmVlID0gTnVtYmVyKEJpZ0ludChpbnB1dEFtb3VudCkgLSBvdXRwdXRBbW91bnQpO1xuICByZXR1cm4ge1xuICAgIHNpemU6IHZzaXplLFxuICAgIGZlZSxcbiAgICBmZWVSYXRlOiBmZWUgLyB2c2l6ZSxcbiAgICBwYXlHb0ZlZTogMCxcbiAgfTtcbn1cblxudHlwZSBSZWNvdmVyUGFyYW1zID0ge1xuICAvKiogV2FsbGV0IElEIChjYW4gYmUgdjEgd2FsbGV0IG9yIHYyIHdhbGxldCkgKi9cbiAgd2FsbGV0SWQ6IHN0cmluZztcbiAgLyoqIENvaW4gdG8gY3JlYXRlIHRoZSB0cmFuc2FjdGlvbiBmb3IgKi9cbiAgc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbjtcbiAgLyoqIENvaW4gdGhhdCB3YWxsZXQga2V5cyB3ZXJlIHNldCB1cCBmb3IgKi9cbiAgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luO1xuICAvKiogU291cmNlIGNvaW4gdHJhbnNhY3Rpb24gdG8gcmVjb3ZlciBvdXRwdXRzIGZyb20gKHNvdXJjZUNvaW4pICovXG4gIHR4aWQ6IHN0cmluZztcbiAgLyoqIFNvdXJjZSBjb2luIGFkZHJlc3MgdG8gc2VuZCB0aGUgZnVuZHMgdG8gKi9cbiAgcmVjb3ZlcnlBZGRyZXNzOiBzdHJpbmc7XG4gIC8qKiBJZiBzZXQsIGRlY3J5cHRzIHByaXZhdGUga2V5IGFuZCBzaWducyB0cmFuc2FjdGlvbiAqL1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICAvKiogSWYgc2V0LCBzaWducyB0cmFuc2FjdGlvbiAqL1xuICB4cHJ2Pzogc3RyaW5nO1xuICAvKiogZm9yIHV0eG8gY29pbnMgb3RoZXIgdGhhbiBbQlRDLFRCVENdIHRoaXMgaXMgYSBCbG9jayBDaGFpciBhcGkga2V5ICoqL1xuICBhcGlLZXk/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFJlY292ZXIgd2FsbGV0IGRlcG9zaXRzIHRoYXQgd2VyZSByZWNlaXZlZCBvbiB0aGUgd3JvbmcgYmxvY2tjaGFpblxuICogKGZvciBpbnN0YW5jZSBiaXRjb2luIGRlcG9zaXRzIHRoYXQgd2VyZSByZWNlaXZlZCBmb3IgYSBsaXRlY29pbiB3YWxsZXQpLlxuICpcbiAqIEZldGNoZXMgdGhlIHVuc3BlbnQgZGF0YSBmcm9tIEJpdEdvJ3MgcHVibGljIGJsb2NrY2hhaW4gQVBJIGFuZCB0aGUgc2NyaXB0IGRhdGEgZnJvbSB0aGUgdXNlcidzXG4gKiB3YWxsZXQuXG4gKlxuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvXG4gKiBAcGFyYW0ge1JlY292ZXJQYXJhbXN9IHBhcmFtc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVjb3ZlckNyb3NzQ2hhaW48VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHBhcmFtczogUmVjb3ZlclBhcmFtc1xuKTogUHJvbWlzZTxDcm9zc0NoYWluUmVjb3ZlcnlTaWduZWQ8VE51bWJlcj4gfCBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZDxUTnVtYmVyPj4ge1xuICBjb25zdCB3YWxsZXQgPSBhd2FpdCBnZXRXYWxsZXQoYml0Z28sIHBhcmFtcy5yZWNvdmVyeUNvaW4sIHBhcmFtcy53YWxsZXRJZCk7XG4gIGNvbnN0IHVuc3BlbnRzID0gYXdhaXQgZ2V0QWxsUmVjb3ZlcnlPdXRwdXRzPFROdW1iZXI+KFxuICAgIHBhcmFtcy5zb3VyY2VDb2luLFxuICAgIHBhcmFtcy50eGlkLFxuICAgIHBhcmFtcy5zb3VyY2VDb2luLmFtb3VudFR5cGUsXG4gICAgd2FsbGV0LFxuICAgIHBhcmFtcy5hcGlLZXlcbiAgKTtcbiAgY29uc3Qgd2FsbGV0VW5zcGVudHMgPSBhd2FpdCB0b1dhbGxldFVuc3BlbnRzPFROdW1iZXI+KHBhcmFtcy5zb3VyY2VDb2luLCBwYXJhbXMucmVjb3ZlcnlDb2luLCB1bnNwZW50cywgd2FsbGV0KTtcbiAgY29uc3Qgd2FsbGV0S2V5cyA9IGF3YWl0IGdldFdhbGxldEtleXMocGFyYW1zLnJlY292ZXJ5Q29pbiwgd2FsbGV0KTtcbiAgY29uc3QgcHJ2ID1cbiAgICBwYXJhbXMueHBydiB8fCBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IGF3YWl0IGdldFBydihwYXJhbXMueHBydiwgcGFyYW1zLndhbGxldFBhc3NwaHJhc2UsIHdhbGxldCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHNpZ25lciA9IHBydlxuICAgID8gbmV3IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudFNpZ25lcjxSb290V2FsbGV0S2V5cz4od2FsbGV0S2V5cywgcHJ2LCB3YWxsZXRLZXlzLmJpdGdvKVxuICAgIDogdW5kZWZpbmVkO1xuICBjb25zdCBmZWVSYXRlU2F0VkIgPSBhd2FpdCBnZXRGZWVSYXRlU2F0VkIocGFyYW1zLnNvdXJjZUNvaW4pO1xuICBjb25zdCB0cmFuc2FjdGlvbiA9IGNyZWF0ZVN3ZWVwVHJhbnNhY3Rpb248VE51bWJlcj4oXG4gICAgcGFyYW1zLnNvdXJjZUNvaW4ubmV0d29yayxcbiAgICB3YWxsZXRVbnNwZW50cyxcbiAgICBwYXJhbXMucmVjb3ZlcnlBZGRyZXNzLFxuICAgIGZlZVJhdGVTYXRWQixcbiAgICBzaWduZXIsXG4gICAgcGFyYW1zLnNvdXJjZUNvaW4uYW1vdW50VHlwZVxuICApO1xuICBjb25zdCByZWNvdmVyeUFtb3VudCA9IHRyYW5zYWN0aW9uLm91dHNbMF0udmFsdWU7XG4gIGNvbnN0IHR4SGV4ID0gdHJhbnNhY3Rpb24udG9CdWZmZXIoKS50b1N0cmluZygnaGV4Jyk7XG4gIGNvbnN0IHR4SW5mbyA9IGdldFR4SW5mbzxUTnVtYmVyPihcbiAgICB0cmFuc2FjdGlvbixcbiAgICB3YWxsZXRVbnNwZW50cyxcbiAgICBwYXJhbXMud2FsbGV0SWQsXG4gICAgd2FsbGV0S2V5cyxcbiAgICBwYXJhbXMuc291cmNlQ29pbi5hbW91bnRUeXBlXG4gICk7XG4gIGlmIChwcnYpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmVyc2lvbjogd2FsbGV0IGluc3RhbmNlb2YgV2FsbGV0ID8gMiA6IDEsXG4gICAgICB3YWxsZXRJZDogcGFyYW1zLndhbGxldElkLFxuICAgICAgdHhIZXgsXG4gICAgICB0eEluZm8sXG4gICAgICBzb3VyY2VDb2luOiBwYXJhbXMuc291cmNlQ29pbi5nZXRDaGFpbigpLFxuICAgICAgcmVjb3ZlcnlDb2luOiBwYXJhbXMucmVjb3ZlcnlDb2luLmdldENoYWluKCksXG4gICAgICByZWNvdmVyeUFtb3VudCxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICB0eEhleCxcbiAgICAgIHR4SW5mbyxcbiAgICAgIHdhbGxldElkOiBwYXJhbXMud2FsbGV0SWQsXG4gICAgICBmZWVJbmZvOiBnZXRGZWVJbmZvKHRyYW5zYWN0aW9uLCB3YWxsZXRVbnNwZW50cywgcGFyYW1zLnNvdXJjZUNvaW4uYW1vdW50VHlwZSksXG4gICAgICBhZGRyZXNzOiBwYXJhbXMucmVjb3ZlcnlBZGRyZXNzLFxuICAgICAgY29pbjogcGFyYW1zLnNvdXJjZUNvaW4uZ2V0Q2hhaW4oKSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -4,5 +4,4 @@ export * from './baseApi';
4
4
  export * from './coingeckoApi';
5
5
  export * from './crossChainRecovery';
6
6
  export * from './mempoolApi';
7
- export * from './smartbitApi';
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/recovery/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/recovery/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -16,5 +20,4 @@ __exportStar(require("./baseApi"), exports);
16
20
  __exportStar(require("./coingeckoApi"), exports);
17
21
  __exportStar(require("./crossChainRecovery"), exports);
18
22
  __exportStar(require("./mempoolApi"), exports);
19
- __exportStar(require("./smartbitApi"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVjb3ZlcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEscURBQW1DO0FBQ25DLHNEQUFvQztBQUNwQyw0Q0FBMEI7QUFDMUIsaURBQStCO0FBQy9CLHVEQUFxQztBQUNyQywrQ0FBNkI7QUFDN0IsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9SZWNvdmVyeVByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vYmFja3VwS2V5UmVjb3ZlcnknO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlQXBpJztcbmV4cG9ydCAqIGZyb20gJy4vY29pbmdlY2tvQXBpJztcbmV4cG9ydCAqIGZyb20gJy4vY3Jvc3NDaGFpblJlY292ZXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vbWVtcG9vbEFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0Yml0QXBpJztcbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVjb3ZlcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtQztBQUNuQyxzREFBb0M7QUFDcEMsNENBQTBCO0FBQzFCLGlEQUErQjtBQUMvQix1REFBcUM7QUFDckMsK0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9SZWNvdmVyeVByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vYmFja3VwS2V5UmVjb3ZlcnknO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlQXBpJztcbmV4cG9ydCAqIGZyb20gJy4vY29pbmdlY2tvQXBpJztcbmV4cG9ydCAqIGZyb20gJy4vY3Jvc3NDaGFpblJlY292ZXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vbWVtcG9vbEFwaSc7XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"mempoolApi.d.ts","sourceRoot":"","sources":["../../../src/recovery/mempoolApi.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,OAAO,EAAE,MAAM,WAAW,CAAC;AAE5D,qBAAa,UAAW,SAAQ,OAAO;IACrC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;gBAUhC,OAAO,EAAE,MAAM;IAIrB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;CAShD"}
1
+ {"version":3,"file":"mempoolApi.d.ts","sourceRoot":"","sources":["../../../src/recovery/mempoolApi.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,OAAO,EAAE,MAAM,WAAW,CAAC;AAE5D,qBAAa,UAAW,SAAQ,OAAO;IACrC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;gBAUhC,OAAO,EAAE,MAAM;IAIrB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;CAWhD"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.MempoolApi = void 0;
4
- /**
5
- * @prettier
6
- */
7
- const _ = require("lodash");
7
+ const lodash_1 = __importDefault(require("lodash"));
8
8
  const baseApi_1 = require("./baseApi");
9
9
  class MempoolApi extends baseApi_1.BaseApi {
10
10
  static forCoin(coinName) {
@@ -22,12 +22,15 @@ class MempoolApi extends baseApi_1.BaseApi {
22
22
  async getRecoveryFeePerBytes() {
23
23
  const res = await this.get('/fees/recommended');
24
24
  return res.map((body) => {
25
- if (body.publicFeeData && body.publicFeeData.hourFee && _.isInteger(body.publicFeeData.hourFee)) {
26
- return body.publicFeeData.hourFee;
25
+ if (body.fastestFee && lodash_1.default.isInteger(body.fastestFee)) {
26
+ return body.fastestFee;
27
+ }
28
+ else if (body.hourFee && lodash_1.default.isInteger(body.hourFee)) {
29
+ return body.hourFee;
27
30
  }
28
31
  throw new Error('unexpected response');
29
32
  });
30
33
  }
31
34
  }
32
35
  exports.MempoolApi = MempoolApi;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtcG9vbEFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWNvdmVyeS9tZW1wb29sQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsNEJBQTRCO0FBRTVCLHVDQUE0RDtBQUU1RCxNQUFhLFVBQVcsU0FBUSxpQkFBTztJQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQWdCO1FBQzdCLFFBQVEsUUFBUSxFQUFFO1lBQ2hCLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxNQUFNO2dCQUNULGtEQUFrRDtnQkFDbEQsT0FBTyxJQUFJLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsTUFBTSxJQUFJLGdDQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCO1FBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBTSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3RCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQy9GLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7YUFDbkM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF4QkQsZ0NBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBBcGlOb3RJbXBsZW1lbnRlZEVycm9yLCBCYXNlQXBpIH0gZnJvbSAnLi9iYXNlQXBpJztcblxuZXhwb3J0IGNsYXNzIE1lbXBvb2xBcGkgZXh0ZW5kcyBCYXNlQXBpIHtcbiAgc3RhdGljIGZvckNvaW4oY29pbk5hbWU6IHN0cmluZyk6IE1lbXBvb2xBcGkge1xuICAgIHN3aXRjaCAoY29pbk5hbWUpIHtcbiAgICAgIGNhc2UgJ2J0Yyc6XG4gICAgICBjYXNlICd0YnRjJzpcbiAgICAgICAgLy8gRklYTUU6IHRidGMgaXMgZW5hYmxlZCBoZXJlIGZvciBsZWdhY3kgcmVhc29ucztcbiAgICAgICAgcmV0dXJuIG5ldyBNZW1wb29sQXBpKCdodHRwczovL21lbXBvb2wuc3BhY2UvYXBpL3YxJyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBBcGlOb3RJbXBsZW1lbnRlZEVycm9yKGNvaW5OYW1lKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGJhc2VVcmw6IHN0cmluZykge1xuICAgIHN1cGVyKGJhc2VVcmwpO1xuICB9XG5cbiAgYXN5bmMgZ2V0UmVjb3ZlcnlGZWVQZXJCeXRlcygpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZ2V0PGFueT4oJy9mZWVzL3JlY29tbWVuZGVkJyk7XG4gICAgcmV0dXJuIHJlcy5tYXAoKGJvZHkpID0+IHtcbiAgICAgIGlmIChib2R5LnB1YmxpY0ZlZURhdGEgJiYgYm9keS5wdWJsaWNGZWVEYXRhLmhvdXJGZWUgJiYgXy5pc0ludGVnZXIoYm9keS5wdWJsaWNGZWVEYXRhLmhvdXJGZWUpKSB7XG4gICAgICAgIHJldHVybiBib2R5LnB1YmxpY0ZlZURhdGEuaG91ckZlZTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCByZXNwb25zZScpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtcG9vbEFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWNvdmVyeS9tZW1wb29sQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUF1QjtBQUV2Qix1Q0FBNEQ7QUFFNUQsTUFBYSxVQUFXLFNBQVEsaUJBQU87SUFDckMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFnQjtRQUM3QixRQUFRLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxNQUFNO2dCQUNULGtEQUFrRDtnQkFDbEQsT0FBTyxJQUFJLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxNQUFNLElBQUksZ0NBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0I7UUFDMUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFNLG1CQUFtQixDQUFDLENBQUM7UUFDckQsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLGdCQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDekIsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksZ0JBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN0QixDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBMUJELGdDQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEFwaU5vdEltcGxlbWVudGVkRXJyb3IsIEJhc2VBcGkgfSBmcm9tICcuL2Jhc2VBcGknO1xuXG5leHBvcnQgY2xhc3MgTWVtcG9vbEFwaSBleHRlbmRzIEJhc2VBcGkge1xuICBzdGF0aWMgZm9yQ29pbihjb2luTmFtZTogc3RyaW5nKTogTWVtcG9vbEFwaSB7XG4gICAgc3dpdGNoIChjb2luTmFtZSkge1xuICAgICAgY2FzZSAnYnRjJzpcbiAgICAgIGNhc2UgJ3RidGMnOlxuICAgICAgICAvLyBGSVhNRTogdGJ0YyBpcyBlbmFibGVkIGhlcmUgZm9yIGxlZ2FjeSByZWFzb25zO1xuICAgICAgICByZXR1cm4gbmV3IE1lbXBvb2xBcGkoJ2h0dHBzOi8vbWVtcG9vbC5zcGFjZS9hcGkvdjEnKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEFwaU5vdEltcGxlbWVudGVkRXJyb3IoY29pbk5hbWUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYmFzZVVybDogc3RyaW5nKSB7XG4gICAgc3VwZXIoYmFzZVVybCk7XG4gIH1cblxuICBhc3luYyBnZXRSZWNvdmVyeUZlZVBlckJ5dGVzKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5nZXQ8YW55PignL2ZlZXMvcmVjb21tZW5kZWQnKTtcbiAgICByZXR1cm4gcmVzLm1hcCgoYm9keSkgPT4ge1xuICAgICAgaWYgKGJvZHkuZmFzdGVzdEZlZSAmJiBfLmlzSW50ZWdlcihib2R5LmZhc3Rlc3RGZWUpKSB7XG4gICAgICAgIHJldHVybiBib2R5LmZhc3Rlc3RGZWU7XG4gICAgICB9IGVsc2UgaWYgKGJvZHkuaG91ckZlZSAmJiBfLmlzSW50ZWdlcihib2R5LmhvdXJGZWUpKSB7XG4gICAgICAgIHJldHVybiBib2R5LmhvdXJGZWU7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgcmVzcG9uc2UnKTtcbiAgICB9KTtcbiAgfVxufVxuIl19