@bitgo-beta/utxo-lib 8.0.3-beta.587 → 8.0.3-beta.589

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 (177) hide show
  1. package/dist/src/address.d.ts +0 -2
  2. package/dist/src/address.d.ts.map +1 -1
  3. package/dist/src/address.js +6 -6
  4. package/dist/src/addressFormat.d.ts +0 -2
  5. package/dist/src/addressFormat.d.ts.map +1 -1
  6. package/dist/src/addressFormat.js +8 -8
  7. package/dist/src/bitgo/Musig2.d.ts +0 -2
  8. package/dist/src/bitgo/Musig2.d.ts.map +1 -1
  9. package/dist/src/bitgo/Musig2.js +24 -24
  10. package/dist/src/bitgo/PsbtUtil.d.ts +0 -2
  11. package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -1
  12. package/dist/src/bitgo/PsbtUtil.js +9 -9
  13. package/dist/src/bitgo/Unspent.d.ts +0 -2
  14. package/dist/src/bitgo/Unspent.d.ts.map +1 -1
  15. package/dist/src/bitgo/Unspent.js +12 -13
  16. package/dist/src/bitgo/UtxoPsbt.d.ts +0 -2
  17. package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
  18. package/dist/src/bitgo/UtxoPsbt.js +1 -1
  19. package/dist/src/bitgo/UtxoTransaction.d.ts +0 -2
  20. package/dist/src/bitgo/UtxoTransaction.d.ts.map +1 -1
  21. package/dist/src/bitgo/UtxoTransaction.js +3 -3
  22. package/dist/src/bitgo/UtxoTransactionBuilder.d.ts +0 -2
  23. package/dist/src/bitgo/UtxoTransactionBuilder.d.ts.map +1 -1
  24. package/dist/src/bitgo/UtxoTransactionBuilder.js +1 -1
  25. package/dist/src/bitgo/bitcoincash/address.d.ts +0 -2
  26. package/dist/src/bitgo/bitcoincash/address.d.ts.map +1 -1
  27. package/dist/src/bitgo/bitcoincash/address.js +6 -7
  28. package/dist/src/bitgo/dash/DashPsbt.d.ts +0 -2
  29. package/dist/src/bitgo/dash/DashPsbt.d.ts.map +1 -1
  30. package/dist/src/bitgo/dash/DashTransaction.d.ts +0 -2
  31. package/dist/src/bitgo/dash/DashTransaction.d.ts.map +1 -1
  32. package/dist/src/bitgo/dash/DashTransaction.js +1 -1
  33. package/dist/src/bitgo/dash/DashTransactionBuilder.d.ts +0 -2
  34. package/dist/src/bitgo/dash/DashTransactionBuilder.d.ts.map +1 -1
  35. package/dist/src/bitgo/dash/DashTransactionBuilder.js +1 -1
  36. package/dist/src/bitgo/keyutil.d.ts +0 -2
  37. package/dist/src/bitgo/keyutil.d.ts.map +1 -1
  38. package/dist/src/bitgo/keyutil.js +4 -5
  39. package/dist/src/bitgo/legacysafe/index.d.ts +0 -2
  40. package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -1
  41. package/dist/src/bitgo/legacysafe/index.js +4 -5
  42. package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts +0 -2
  43. package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts.map +1 -1
  44. package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts +0 -2
  45. package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts.map +1 -1
  46. package/dist/src/bitgo/litecoin/LitecoinTransaction.js +1 -1
  47. package/dist/src/bitgo/nonStandardHalfSigned.js +2 -3
  48. package/dist/src/bitgo/outputScripts.d.ts +0 -2
  49. package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
  50. package/dist/src/bitgo/outputScripts.js +20 -20
  51. package/dist/src/bitgo/parseInput.d.ts +0 -2
  52. package/dist/src/bitgo/parseInput.d.ts.map +1 -1
  53. package/dist/src/bitgo/parseInput.js +10 -11
  54. package/dist/src/bitgo/psbt/fromHalfSigned.d.ts +0 -2
  55. package/dist/src/bitgo/psbt/fromHalfSigned.d.ts.map +1 -1
  56. package/dist/src/bitgo/psbt/fromHalfSigned.js +3 -4
  57. package/dist/src/bitgo/psbt/scriptTypes.d.ts +0 -2
  58. package/dist/src/bitgo/psbt/scriptTypes.d.ts.map +1 -1
  59. package/dist/src/bitgo/psbt/scriptTypes.js +5 -6
  60. package/dist/src/bitgo/signature.d.ts +0 -2
  61. package/dist/src/bitgo/signature.d.ts.map +1 -1
  62. package/dist/src/bitgo/signature.js +9 -10
  63. package/dist/src/bitgo/tnumber.js +2 -3
  64. package/dist/src/bitgo/transaction.d.ts +0 -2
  65. package/dist/src/bitgo/transaction.d.ts.map +1 -1
  66. package/dist/src/bitgo/transaction.js +13 -14
  67. package/dist/src/bitgo/transactionAmounts.js +2 -3
  68. package/dist/src/bitgo/types.d.ts +0 -2
  69. package/dist/src/bitgo/types.d.ts.map +1 -1
  70. package/dist/src/bitgo/types.js +4 -5
  71. package/dist/src/bitgo/wallet/Psbt.d.ts +0 -2
  72. package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
  73. package/dist/src/bitgo/wallet/Psbt.js +19 -18
  74. package/dist/src/bitgo/wallet/Unspent.d.ts +0 -2
  75. package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
  76. package/dist/src/bitgo/wallet/Unspent.js +10 -10
  77. package/dist/src/bitgo/wallet/WalletKeys.d.ts +0 -2
  78. package/dist/src/bitgo/wallet/WalletKeys.d.ts.map +1 -1
  79. package/dist/src/bitgo/wallet/WalletKeys.js +3 -3
  80. package/dist/src/bitgo/wallet/WalletOutput.js +3 -4
  81. package/dist/src/bitgo/wallet/WalletScripts.js +3 -4
  82. package/dist/src/bitgo/wallet/WalletUnspentSigner.js +1 -1
  83. package/dist/src/bitgo/wallet/chains.js +10 -10
  84. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.js +7 -8
  85. package/dist/src/bitgo/wallet/psbt/RootNodes.js +5 -5
  86. package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts +1 -3
  87. package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts.map +1 -1
  88. package/dist/src/bitgo/zcash/ZcashBufferutils.js +15 -15
  89. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts +0 -2
  90. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
  91. package/dist/src/bitgo/zcash/ZcashPsbt.js +1 -1
  92. package/dist/src/bitgo/zcash/ZcashTransaction.d.ts +0 -2
  93. package/dist/src/bitgo/zcash/ZcashTransaction.d.ts.map +1 -1
  94. package/dist/src/bitgo/zcash/ZcashTransaction.js +4 -4
  95. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts +0 -2
  96. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts.map +1 -1
  97. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.js +1 -1
  98. package/dist/src/bitgo/zcash/address.d.ts +0 -2
  99. package/dist/src/bitgo/zcash/address.d.ts.map +1 -1
  100. package/dist/src/bitgo/zcash/address.js +5 -6
  101. package/dist/src/bitgo/zcash/hashZip0244.d.ts +0 -2
  102. package/dist/src/bitgo/zcash/hashZip0244.d.ts.map +1 -1
  103. package/dist/src/bitgo/zcash/hashZip0244.js +7 -8
  104. package/dist/src/classify.d.ts +0 -2
  105. package/dist/src/classify.d.ts.map +1 -1
  106. package/dist/src/classify.js +5 -5
  107. package/dist/src/networks.js +21 -21
  108. package/dist/src/noble_ecc.js +1 -1
  109. package/dist/src/payments/p2tr.js +3 -4
  110. package/dist/src/payments/p2tr_ns.js +2 -3
  111. package/dist/src/taproot.d.ts +1 -3
  112. package/dist/src/taproot.d.ts.map +1 -1
  113. package/dist/src/taproot.js +19 -19
  114. package/dist/src/templates/multisig/input.d.ts +0 -2
  115. package/dist/src/templates/multisig/input.d.ts.map +1 -1
  116. package/dist/src/templates/multisig/input.js +2 -3
  117. package/dist/src/templates/multisig/output.d.ts +0 -2
  118. package/dist/src/templates/multisig/output.d.ts.map +1 -1
  119. package/dist/src/templates/multisig/output.js +2 -3
  120. package/dist/src/templates/nulldata.d.ts +0 -2
  121. package/dist/src/templates/nulldata.d.ts.map +1 -1
  122. package/dist/src/templates/nulldata.js +3 -3
  123. package/dist/src/templates/pubkey/input.d.ts +0 -2
  124. package/dist/src/templates/pubkey/input.d.ts.map +1 -1
  125. package/dist/src/templates/pubkey/input.js +2 -3
  126. package/dist/src/templates/pubkey/output.d.ts +0 -2
  127. package/dist/src/templates/pubkey/output.d.ts.map +1 -1
  128. package/dist/src/templates/pubkey/output.js +2 -3
  129. package/dist/src/templates/pubkeyhash/input.d.ts +0 -2
  130. package/dist/src/templates/pubkeyhash/input.d.ts.map +1 -1
  131. package/dist/src/templates/pubkeyhash/input.js +2 -3
  132. package/dist/src/templates/pubkeyhash/output.d.ts +0 -2
  133. package/dist/src/templates/pubkeyhash/output.d.ts.map +1 -1
  134. package/dist/src/templates/pubkeyhash/output.js +2 -3
  135. package/dist/src/templates/scripthash/input.d.ts +0 -2
  136. package/dist/src/templates/scripthash/input.d.ts.map +1 -1
  137. package/dist/src/templates/scripthash/input.js +2 -3
  138. package/dist/src/templates/scripthash/output.d.ts +0 -2
  139. package/dist/src/templates/scripthash/output.d.ts.map +1 -1
  140. package/dist/src/templates/scripthash/output.js +2 -3
  141. package/dist/src/templates/taproot/input.d.ts +0 -2
  142. package/dist/src/templates/taproot/input.d.ts.map +1 -1
  143. package/dist/src/templates/taproot/input.js +2 -3
  144. package/dist/src/templates/taproot/output.d.ts +0 -2
  145. package/dist/src/templates/taproot/output.d.ts.map +1 -1
  146. package/dist/src/templates/taproot/output.js +2 -3
  147. package/dist/src/templates/taprootnofn/input.d.ts +0 -2
  148. package/dist/src/templates/taprootnofn/input.d.ts.map +1 -1
  149. package/dist/src/templates/taprootnofn/input.js +2 -3
  150. package/dist/src/templates/taprootnofn/output.d.ts +0 -2
  151. package/dist/src/templates/taprootnofn/output.d.ts.map +1 -1
  152. package/dist/src/templates/taprootnofn/output.js +2 -3
  153. package/dist/src/templates/witnesscommitment/output.d.ts +0 -2
  154. package/dist/src/templates/witnesscommitment/output.d.ts.map +1 -1
  155. package/dist/src/templates/witnesscommitment/output.js +4 -5
  156. package/dist/src/templates/witnesspubkeyhash/input.d.ts +0 -2
  157. package/dist/src/templates/witnesspubkeyhash/input.d.ts.map +1 -1
  158. package/dist/src/templates/witnesspubkeyhash/input.js +2 -3
  159. package/dist/src/templates/witnesspubkeyhash/output.d.ts +0 -2
  160. package/dist/src/templates/witnesspubkeyhash/output.d.ts.map +1 -1
  161. package/dist/src/templates/witnesspubkeyhash/output.js +2 -3
  162. package/dist/src/templates/witnessscripthash/input.d.ts +0 -2
  163. package/dist/src/templates/witnessscripthash/input.d.ts.map +1 -1
  164. package/dist/src/templates/witnessscripthash/input.js +2 -3
  165. package/dist/src/templates/witnessscripthash/output.d.ts +0 -2
  166. package/dist/src/templates/witnessscripthash/output.d.ts.map +1 -1
  167. package/dist/src/templates/witnessscripthash/output.js +2 -3
  168. package/dist/src/testutil/keys.js +7 -8
  169. package/dist/src/testutil/mock.d.ts +0 -2
  170. package/dist/src/testutil/mock.d.ts.map +1 -1
  171. package/dist/src/testutil/mock.js +7 -7
  172. package/dist/src/testutil/psbt.js +8 -8
  173. package/dist/src/testutil/transaction.js +7 -7
  174. package/dist/src/transaction_builder.d.ts +0 -2
  175. package/dist/src/transaction_builder.d.ts.map +1 -1
  176. package/dist/src/transaction_builder.js +1 -1
  177. package/package.json +3 -3
@@ -1,6 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addWalletUnspentToPsbt = exports.updateWalletUnspentForPsbt = exports.addReplayProtectionUnspentToPsbt = exports.updateReplayProtectionUnspentToPsbt = exports.psbtIncludesUnspentAtIndex = exports.verifySignatureWithUnspent = exports.signInputWithUnspent = exports.isWalletUnspent = exports.MAX_BIP125_RBF_SEQUENCE = exports.TX_INPUT_SEQUENCE_NUMBER_FINAL = void 0;
3
+ exports.MAX_BIP125_RBF_SEQUENCE = exports.TX_INPUT_SEQUENCE_NUMBER_FINAL = void 0;
4
+ exports.isWalletUnspent = isWalletUnspent;
5
+ exports.signInputWithUnspent = signInputWithUnspent;
6
+ exports.verifySignatureWithUnspent = verifySignatureWithUnspent;
7
+ exports.psbtIncludesUnspentAtIndex = psbtIncludesUnspentAtIndex;
8
+ exports.updateReplayProtectionUnspentToPsbt = updateReplayProtectionUnspentToPsbt;
9
+ exports.addReplayProtectionUnspentToPsbt = addReplayProtectionUnspentToPsbt;
10
+ exports.updateWalletUnspentForPsbt = updateWalletUnspentForPsbt;
11
+ exports.addWalletUnspentToPsbt = addWalletUnspentToPsbt;
4
12
  const __1 = require("../..");
5
13
  const outputScripts_1 = require("../outputScripts");
6
14
  const address_1 = require("../../address");
@@ -21,7 +29,6 @@ exports.MAX_BIP125_RBF_SEQUENCE = 0xffffffff - 2;
21
29
  function isWalletUnspent(u) {
22
30
  return u.chain !== undefined;
23
31
  }
24
- exports.isWalletUnspent = isWalletUnspent;
25
32
  function signInputWithUnspent(txBuilder, inputIndex, unspent, unspentSigner) {
26
33
  const { walletKeys, signer, cosigner } = unspentSigner.deriveForChainAndIndex(unspent.chain, unspent.index);
27
34
  const scriptType = (0, outputScripts_1.scriptTypeForChain)(unspent.chain);
@@ -32,7 +39,6 @@ function signInputWithUnspent(txBuilder, inputIndex, unspent, unspentSigner) {
32
39
  }
33
40
  (0, signature_1.signInput2Of3)(txBuilder, inputIndex, scriptType, walletKeys.publicKeys, signer, cosigner.publicKey, unspent.value);
34
41
  }
35
- exports.signInputWithUnspent = signInputWithUnspent;
36
42
  /**
37
43
  * @param tx
38
44
  * @param inputIndex
@@ -65,7 +71,6 @@ function verifySignatureWithUnspent(tx, inputIndex, unspents, walletKeys) {
65
71
  }
66
72
  return (0, signature_1.verifySignatureWithPublicKeys)(tx, inputIndex, prevOutputs, walletKeys.deriveForChainAndIndex(unspent.chain, unspent.index).publicKeys);
67
73
  }
68
- exports.verifySignatureWithUnspent = verifySignatureWithUnspent;
69
74
  /**
70
75
  * @param psbt
71
76
  * @param inputIndex
@@ -78,7 +83,6 @@ function psbtIncludesUnspentAtIndex(psbt, inputIndex, id) {
78
83
  const psbtOutPoint = (0, Unspent_1.getOutputIdForInput)(psbt.txInputs[inputIndex]);
79
84
  return psbtOutPoint.txid === txid && psbtOutPoint.vout === vout;
80
85
  }
81
- exports.psbtIncludesUnspentAtIndex = psbtIncludesUnspentAtIndex;
82
86
  /**
83
87
  * Update the psbt input at the given index
84
88
  * @param psbt
@@ -113,7 +117,6 @@ function updateReplayProtectionUnspentToPsbt(psbt, inputIndex, u, redeemScript,
113
117
  psbt.updateInput(inputIndex, { sighashType });
114
118
  }
115
119
  }
116
- exports.updateReplayProtectionUnspentToPsbt = updateReplayProtectionUnspentToPsbt;
117
120
  function addUnspentToPsbt(psbt, id, { sequenceNumber = exports.TX_INPUT_SEQUENCE_NUMBER_FINAL } = {}) {
118
121
  const { txid, vout } = (0, Unspent_1.parseOutputId)(id);
119
122
  psbt.addInput({
@@ -126,7 +129,6 @@ function addReplayProtectionUnspentToPsbt(psbt, u, redeemScript, customParams) {
126
129
  addUnspentToPsbt(psbt, u.id);
127
130
  updateReplayProtectionUnspentToPsbt(psbt, psbt.inputCount - 1, u, redeemScript, customParams);
128
131
  }
129
- exports.addReplayProtectionUnspentToPsbt = addReplayProtectionUnspentToPsbt;
130
132
  /**
131
133
  * Update the PSBT with the unspent data for the input at the given index if the data is not there already.
132
134
  *
@@ -251,7 +253,6 @@ function updateWalletUnspentForPsbt(psbt, inputIndex, u, rootWalletKeys, signer,
251
253
  }
252
254
  }
253
255
  }
254
- exports.updateWalletUnspentForPsbt = updateWalletUnspentForPsbt;
255
256
  function addWalletUnspentToPsbt(psbt, u, rootWalletKeys, signer, cosigner, customParams) {
256
257
  let sequenceNumber = exports.TX_INPUT_SEQUENCE_NUMBER_FINAL;
257
258
  if (customParams && customParams.isReplaceableByFee) {
@@ -260,5 +261,4 @@ function addWalletUnspentToPsbt(psbt, u, rootWalletKeys, signer, cosigner, custo
260
261
  addUnspentToPsbt(psbt, u.id, { sequenceNumber });
261
262
  updateWalletUnspentForPsbt(psbt, psbt.inputCount - 1, u, rootWalletKeys, signer, cosigner, customParams ? { skipNonWitnessUtxo: customParams.skipNonWitnessUtxo } : {});
262
263
  }
263
- exports.addWalletUnspentToPsbt = addWalletUnspentToPsbt;
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVW5zcGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvVW5zcGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBc0Q7QUFFdEQsb0RBTzBCO0FBQzFCLDJDQUErQztBQUMvQyw0Q0FLc0I7QUFLdEIsd0NBUW9CO0FBQ3BCLHFDQUErQztBQUUvQyxzQ0FBeUQ7QUFDekQsZ0RBQTZEO0FBQzdELDhDQUFxRDtBQUNyRCxnREFBcUQ7QUFDckQsMENBQWlGO0FBRWpGLDhCQUE4QjtBQUNqQixRQUFBLDhCQUE4QixHQUFHLFVBQVUsQ0FBQztBQUV6RDs7S0FFSztBQUNRLFFBQUEsdUJBQXVCLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztBQVd0RCxTQUFnQixlQUFlLENBQWtDLENBQW1CO0lBQ2xGLE9BQVEsQ0FBNEIsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQzNELENBQUM7QUFGRCwwQ0FFQztBQUVELFNBQWdCLG9CQUFvQixDQUNsQyxTQUEwQyxFQUMxQyxVQUFrQixFQUNsQixPQUErQixFQUMvQixhQUFrRDtJQUVsRCxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxhQUFhLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUcsTUFBTSxVQUFVLEdBQUcsSUFBQSxrQ0FBa0IsRUFBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBQSxzQ0FBc0IsRUFBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUN6RixNQUFNLGlCQUFpQixHQUFHLElBQUEsd0JBQWMsRUFBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFrQixDQUFDLENBQUM7SUFDeEYsSUFBSSxDQUFDLFNBQVMs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Jy4uLy4uJztcbmltcG9ydCB7IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi9VdHhvVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7XG4gIGNyZWF0ZUtleVBhdGhQMnRyTXVzaWcyLFxuICBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzLFxuICBjcmVhdGVTcGVuZFNjcmlwdFAydHIsXG4gIGNyZWF0ZVNwZW5kU2NyaXB0UDJ0ck11c2lnMixcbiAgc2NyaXB0VHlwZUZvckNoYWluLFxuICB0b1hPbmx5UHVibGljS2V5LFxufSBmcm9tICcuLi9vdXRwdXRTY3JpcHRzJztcbmltcG9ydCB7IHRvT3V0cHV0U2NyaXB0IH0gZnJvbSAnLi4vLi4vYWRkcmVzcyc7XG5pbXBvcnQge1xuICBnZXREZWZhdWx0U2lnSGFzaCxcbiAgZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9ucyxcbiAgc2lnbklucHV0Mk9mMyxcbiAgdmVyaWZ5U2lnbmF0dXJlV2l0aFB1YmxpY0tleXMsXG59IGZyb20gJy4uL3NpZ25hdHVyZSc7XG5pbXBvcnQgeyBXYWxsZXRVbnNwZW50U2lnbmVyIH0gZnJvbSAnLi9XYWxsZXRVbnNwZW50U2lnbmVyJztcbmltcG9ydCB7IEtleU5hbWUsIFJvb3RXYWxsZXRLZXlzIH0gZnJvbSAnLi9XYWxsZXRLZXlzJztcbmltcG9ydCB7IFV0eG9UcmFuc2FjdGlvbiB9IGZyb20gJy4uL1V0eG9UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1xuICB0b091dHB1dCxcbiAgVW5zcGVudFdpdGhQcmV2VHgsXG4gIFVuc3BlbnQsXG4gIGlzVW5zcGVudFdpdGhQcmV2VHgsXG4gIHRvUHJldk91dHB1dCxcbiAgcGFyc2VPdXRwdXRJZCxcbiAgZ2V0T3V0cHV0SWRGb3JJbnB1dCxcbn0gZnJvbSAnLi4vVW5zcGVudCc7XG5pbXBvcnQgeyBDaGFpbkNvZGUsIGlzU2Vnd2l0IH0gZnJvbSAnLi9jaGFpbnMnO1xuaW1wb3J0IHsgVXR4b1BzYnQgfSBmcm9tICcuLi9VdHhvUHNidCc7XG5pbXBvcnQgeyBlbmNvZGVQc2J0TXVzaWcyUGFydGljaXBhbnRzIH0gZnJvbSAnLi4vTXVzaWcyJztcbmltcG9ydCB7IGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlciB9IGZyb20gJy4uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IHBhcnNlU2lnbmF0dXJlU2NyaXB0IH0gZnJvbSAnLi4vcGFyc2VJbnB1dCc7XG5pbXBvcnQgeyBjaGVja0ZvcklucHV0IH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvdXRpbHMnO1xuaW1wb3J0IHsgUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLCBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIgfSBmcm9tICcuLi9Qc2J0VXRpbCc7XG5cbi8qKiBGaW5hbCAobm9uLXJlcGxhY2VhYmxlKSAqL1xuZXhwb3J0IGNvbnN0IFRYX0lOUFVUX1NFUVVFTkNFX05VTUJFUl9GSU5BTCA9IDB4ZmZmZmZmZmY7XG5cbi8qKiBOb24tRmluYWwgKFJlcGxhY2VhYmxlKVxuICogUmVmZXJlbmNlOiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI1LjEvc3JjL3JwYy9yYXd0cmFuc2FjdGlvbl91dGlsLmNwcCNMNDlcbiAqICovXG5leHBvcnQgY29uc3QgTUFYX0JJUDEyNV9SQkZfU0VRVUVOQ0UgPSAweGZmZmZmZmZmIC0gMjtcblxuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRVbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+IGV4dGVuZHMgVW5zcGVudDxUTnVtYmVyPiB7XG4gIGNoYWluOiBDaGFpbkNvZGU7XG4gIGluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9uV2l0bmVzc1dhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj5cbiAgZXh0ZW5kcyBVbnNwZW50V2l0aFByZXZUeDxUTnVtYmVyPixcbiAgICBXYWxsZXRVbnNwZW50PFROdW1iZXI+IHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1dhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4odTogVW5zcGVudDxUTnVtYmVyPik6IHUgaXMgV2FsbGV0VW5zcGVudDxUTnVtYmVyPiB7XG4gIHJldHVybiAodSBhcyBXYWxsZXRVbnNwZW50PFROdW1iZXI+KS5jaGFpbiAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbklucHV0V2l0aFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4QnVpbGRlcjogVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICB1bnNwZW50OiBXYWxsZXRVbnNwZW50PFROdW1iZXI+LFxuICB1bnNwZW50U2lnbmVyOiBXYWxsZXRVbnNwZW50U2lnbmVyPFJvb3RXYWxsZXRLZXlzPlxuKTogdm9pZCB7XG4gIGNvbnN0IHsgd2FsbGV0S2V5cywgc2lnbmVyLCBjb3NpZ25lciB9ID0gdW5zcGVudFNpZ25lci5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KHVuc3BlbnQuY2hhaW4sIHVuc3BlbnQuaW5kZXgpO1xuICBjb25zdCBzY3JpcHRUeXBlID0gc2NyaXB0VHlwZUZvckNoYWluKHVuc3BlbnQuY2hhaW4pO1xuICBjb25zdCBwdWJTY3JpcHQgPSBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzKHdhbGxldEtleXMucHVibGljS2V5cywgc2NyaXB0VHlwZSkuc2NyaXB0UHViS2V5O1xuICBjb25zdCBwdWJTY3JpcHRFeHBlY3RlZCA9IHRvT3V0cHV0U2NyaXB0KHVuc3BlbnQuYWRkcmVzcywgdHhCdWlsZGVyLm5ldHdvcmsgYXMgTmV0d29yayk7XG4gIGlmICghcHViU2NyaXB0LmVxdWFscyhwdWJTY3JpcHRFeHBlY3RlZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcHVic2NyaXB0IG1pc21hdGNoOiBleHBlY3RlZCAke3B1YlNjcmlwdEV4cGVjdGVkLnRvU3RyaW5nKCdoZXgnKX0gZ290ICR7cHViU2NyaXB0LnRvU3RyaW5nKCdoZXgnKX1gXG4gICAgKTtcbiAgfVxuICBzaWduSW5wdXQyT2YzPFROdW1iZXI+KFxuICAgIHR4QnVpbGRlcixcbiAgICBpbnB1dEluZGV4LFxuICAgIHNjcmlwdFR5cGUsXG4gICAgd2FsbGV0S2V5cy5wdWJsaWNLZXlzLFxuICAgIHNpZ25lcixcbiAgICBjb3NpZ25lci5wdWJsaWNLZXksXG4gICAgdW5zcGVudC52YWx1ZVxuICApO1xufVxuXG4vKipcbiAqIEBwYXJhbSB0eFxuICogQHBhcmFtIGlucHV0SW5kZXhcbiAqIEBwYXJhbSB1bnNwZW50c1xuICogQHBhcmFtIHdhbGxldEtleXNcbiAqIEByZXR1cm4gdHJpcGxlIG9mIGJvb2xlYW5zIGluZGljYXRpbmcgYSB2YWxpZCBzaWduYXR1cmUgZm9yIGVhY2ggcHVia2V5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTaWduYXR1cmVXaXRoVW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHg6IFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICB1bnNwZW50czogVW5zcGVudDxUTnVtYmVyPltdLFxuICB3YWxsZXRLZXlzOiBSb290V2FsbGV0S2V5c1xuKTogVHJpcGxlPGJvb2xlYW4+IHtcbiAgaWYgKHR4Lmlucy5sZW5ndGggIT09IHVuc3BlbnRzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW5wdXQgbGVuZ3RoIG11c3QgbWF0Y2ggdW5zcGVudHMgbGVuZ3RoYCk7XG4gIH1cblxuICBjb25zdCBpbnB1dCA9IHR4Lmluc1tpbnB1dEluZGV4XTtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFpbnB1dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8gaW5wdXQgYXQgaW5kZXggJHtpbnB1dEluZGV4fWApO1xuICB9XG5cbiAgY29uc3QgdW5zcGVudCA9IHVuc3BlbnRzW2lucHV0SW5kZXhdO1xuICBpZiAoIWlzV2FsbGV0VW5zcGVudCh1bnNwZW50KSB8fCAoIWlucHV0LnNjcmlwdD8ubGVuZ3RoICYmICFpbnB1dC53aXRuZXNzPy5sZW5ndGgpKSB7XG4gICAgcmV0dXJuIFtmYWxzZSwgZmFsc2UsIGZhbHNlXTtcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZElucHV0ID0gcGFyc2VTaWduYXR1cmVTY3JpcHQoaW5wdXQpO1xuICBjb25zdCBwcmV2T3V0cHV0cyA9IHVuc3BlbnRzLm1hcCgodSkgPT4gdG9PdXRwdXQodSwgdHgubmV0d29yaykpO1xuXG4gIC8vIElmIGl0IGlzIGEgdGFwcm9vdCBrZXlQYXRoU3BlbmQgaW5wdXQsIHRoZSBvbmx5IHZhbGlkIHNpZ25hdHVyZSBjb21iaW5hdGlvbnMgaXMgdXNlci1iaXRnby4gV2UgY2FuXG4gIC8vIG9ubHkgdmVyaWZ5IHRoYXQgdGhlIGFnZ3JlZ2F0ZWQgc2lnbmF0dXJlIGlzIHZhbGlkLCBub3QgdGhhdCB0aGUgaW5kaXZpZHVhbCBwYXJ0aWFsLXNpZ25hdHVyZSBpcyB2YWxpZC5cbiAgLy8gVGhlcmVmb3JlLCB3ZSBjYW4gb25seSBzYXkgdGhhdCBlaXRoZXIgYWxsIHBhcnRpYWwgc2lnbmF0dXJlcyBhcmUgdmFsaWQsIG9yIG5vbmUgYXJlLlxuICBpZiAocGFyc2VkSW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9ucyh0eCwgaW5wdXRJbmRleCwgdW5zcGVudC52YWx1ZSwgdW5kZWZpbmVkLCBwcmV2T3V0cHV0cyk7XG4gICAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPT09IDEgJiYgcmVzdWx0WzBdLnNpZ25hdHVyZSA/IFt0cnVlLCBmYWxzZSwgdHJ1ZV0gOiBbZmFsc2UsIGZhbHNlLCBmYWxzZV07XG4gIH1cblxuICByZXR1cm4gdmVyaWZ5U2lnbmF0dXJlV2l0aFB1YmxpY0tleXMoXG4gICAgdHgsXG4gICAgaW5wdXRJbmRleCxcbiAgICBwcmV2T3V0cHV0cyxcbiAgICB3YWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgodW5zcGVudC5jaGFpbiwgdW5zcGVudC5pbmRleCkucHVibGljS2V5c1xuICApIGFzIFRyaXBsZTxib29sZWFuPjtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVXNlZCBpbiBjZXJ0YWluIGxlZ2FjeSBzaWduaW5nIG1ldGhvZHMgdGhhdCBkbyBub3QgZGVyaXZlIHNpZ25pbmcgZGF0YSBmcm9tIGluZGV4L2NoYWluXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0VW5zcGVudExlZ2FjeTxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiBleHRlbmRzIFdhbGxldFVuc3BlbnQ8VE51bWJlcj4ge1xuICAvKiogQGRlcHJlY2F0ZWQgLSBvYnZpYXRlZCBieSBzaWduV2l0aFVuc3BlbnQgKi9cbiAgcmVkZWVtU2NyaXB0Pzogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgLSBvYnZpYXRlZCBieSB2ZXJpZnlXaXRoVW5zcGVudCAqL1xuICB3aXRuZXNzU2NyaXB0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBwYXJhbSBwc2J0XG4gKiBAcGFyYW0gaW5wdXRJbmRleFxuICogQHBhcmFtIGlkIFVuc3BlbnQgSURcbiAqIEByZXR1cm5zIHRydWUgaWZmIHRoZSB1bnNwZW50IElEIG9uIHRoZSB1bnNwZW50IGFuZCBwc2J0IGlucHV0IG1hdGNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwc2J0SW5jbHVkZXNVbnNwZW50QXRJbmRleChwc2J0OiBVdHhvUHNidCwgaW5wdXRJbmRleDogbnVtYmVyLCBpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNoZWNrRm9ySW5wdXQocHNidC5kYXRhLmlucHV0cywgaW5wdXRJbmRleCk7XG5cbiAgY29uc3QgeyB0eGlkLCB2b3V0IH0gPSBwYXJzZU91dHB1dElkKGlkKTtcbiAgY29uc3QgcHNidE91dFBvaW50ID0gZ2V0T3V0cHV0SWRGb3JJbnB1dChwc2J0LnR4SW5wdXRzW2lucHV0SW5kZXhdKTtcbiAgcmV0dXJuIHBzYnRPdXRQb2ludC50eGlkID09PSB0eGlkICYmIHBzYnRPdXRQb2ludC52b3V0ID09PSB2b3V0O1xufVxuXG4vKipcbiAqIFVwZGF0ZSB0aGUgcHNidCBpbnB1dCBhdCB0aGUgZ2l2ZW4gaW5kZXhcbiAqIEBwYXJhbSBwc2J0XG4gKiBAcGFyYW0gaW5wdXRJbmRleFxuICogQHBhcmFtIHVcbiAqIEBwYXJhbSByZWRlZW1TY3JpcHQgT25seSBvdmVycmlkZXMgaWYgdGhlcmUgaXMgbm8gcmVkZWVtU2NyaXB0IGluIHRoZSBpbnB1dCBjdXJyZW50bHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVJlcGxheVByb3RlY3Rpb25VbnNwZW50VG9Qc2J0KFxuICBwc2J0OiBVdHhvUHNidCxcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICB1OiBVbnNwZW50PGJpZ2ludD4sXG4gIHJlZGVlbVNjcmlwdD86IEJ1ZmZlcixcbiAgY3VzdG9tUGFyYW1zPzogeyBza2lwTm9uV2l0bmVzc1V0eG8/OiBib29sZWFuIH1cbik6IHZvaWQge1xuICBpZiAoIXBzYnRJbmNsdWRlc1Vuc3BlbnRBdEluZGV4KHBzYnQsIGlucHV0SW5kZXgsIHUuaWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bnNwZW50IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gcHNidCBpbnB1dGApO1xuICB9XG4gIGNvbnN0IGlucHV0ID0gY2hlY2tGb3JJbnB1dChwc2J0LmRhdGEuaW5wdXRzLCBpbnB1dEluZGV4KTtcblxuICBpZiAocmVkZWVtU2NyaXB0ICYmICFpbnB1dC5yZWRlZW1TY3JpcHQpIHtcbiAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHsgcmVkZWVtU2NyaXB0IH0pO1xuICB9XG5cbiAgLy8gQmVjYXVzZSBaY2FzaCBkaXJlY3RseSBoYXNoZXMgdGhlIHZhbHVlIGZvciBub24tc2Vnd2l0IHRyYW5zYWN0aW9ucywgd2UgZG8gbm90IG5lZWQgdG8gY2hlY2sgaW5kaXJlY3RseVxuICAvLyB3aXRoIHRoZSBwcmV2aW91cyB0cmFuc2FjdGlvbi4gVGhlcmVmb3JlLCB3ZSBjYW4gdHJlYXQgWmNhc2ggbm9uLXNlZ3dpdCB0cmFuc2FjdGlvbnMgYXMgQml0Y29pblxuICAvLyBzZWd3aXQgdHJhbnNhY3Rpb25zXG4gIGNvbnN0IGlzWmNhc2ggPSBnZXRNYWlubmV0KHBzYnQubmV0d29yaykgPT09IG5ldHdvcmtzLnpjYXNoO1xuICBpZiAoIWlzVW5zcGVudFdpdGhQcmV2VHgodSkgJiYgIWlzWmNhc2ggJiYgIWN1c3RvbVBhcmFtcz8uc2tpcE5vbldpdG5lc3NVdHhvKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciwgcmVxdWlyZSBwcmV2aW91cyB0eCB0byBhZGQgdG8gUFNCVCcpO1xuICB9XG4gIGlmICgoaXNaY2FzaCAmJiAhaW5wdXQud2l0bmVzc1V0eG8pIHx8IGN1c3RvbVBhcmFtcz8uc2tpcE5vbldpdG5lc3NVdHhvKSB7XG4gICAgY29uc3QgeyBzY3JpcHQsIHZhbHVlIH0gPSB0b1ByZXZPdXRwdXQodSwgcHNidC5uZXR3b3JrKTtcbiAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHsgd2l0bmVzc1V0eG86IHsgc2NyaXB0LCB2YWx1ZSB9IH0pO1xuICB9IGVsc2UgaWYgKCFpc1pjYXNoICYmICFpbnB1dC5ub25XaXRuZXNzVXR4bykge1xuICAgIHBzYnQudXBkYXRlSW5wdXQoaW5wdXRJbmRleCwgeyBub25XaXRuZXNzVXR4bzogKHUgYXMgVW5zcGVudFdpdGhQcmV2VHg8YmlnaW50PikucHJldlR4IH0pO1xuICB9XG5cbiAgY29uc3Qgc2lnaGFzaFR5cGUgPSBnZXREZWZhdWx0U2lnSGFzaChwc2J0Lm5ldHdvcmspO1xuICBpZiAocHNidC5kYXRhLmlucHV0c1tpbnB1dEluZGV4XS5zaWdoYXNoVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7IHNpZ2hhc2hUeXBlIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFkZFVuc3BlbnRUb1BzYnQoXG4gIHBzYnQ6IFV0eG9Qc2J0LFxuICBpZDogc3RyaW5nLFxuICB7IHNlcXVlbmNlTnVtYmVyID0gVFhfSU5QVVRfU0VRVUVOQ0VfTlVNQkVSX0ZJTkFMIH06IHsgc2VxdWVuY2VOdW1iZXI/OiBudW1iZXIgfSA9IHt9XG4pOiB2b2lkIHtcbiAgY29uc3QgeyB0eGlkLCB2b3V0IH0gPSBwYXJzZU91dHB1dElkKGlkKTtcbiAgcHNidC5hZGRJbnB1dCh7XG4gICAgaGFzaDogdHhpZCxcbiAgICBpbmRleDogdm91dCxcbiAgICBzZXF1ZW5jZTogc2VxdWVuY2VOdW1iZXIsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkUmVwbGF5UHJvdGVjdGlvblVuc3BlbnRUb1BzYnQoXG4gIHBzYnQ6IFV0eG9Qc2J0LFxuICB1OiBVbnNwZW50PGJpZ2ludD4sXG4gIHJlZGVlbVNjcmlwdDogQnVmZmVyLFxuICBjdXN0b21QYXJhbXM/OiB7IHNraXBOb25XaXRuZXNzVXR4bz86IGJvb2xlYW4gfVxuKTogdm9pZCB7XG4gIGFkZFVuc3BlbnRUb1BzYnQocHNidCwgdS5pZCk7XG4gIHVwZGF0ZVJlcGxheVByb3RlY3Rpb25VbnNwZW50VG9Qc2J0KHBzYnQsIHBzYnQuaW5wdXRDb3VudCAtIDEsIHUsIHJlZGVlbVNjcmlwdCwgY3VzdG9tUGFyYW1zKTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgdGhlIFBTQlQgd2l0aCB0aGUgdW5zcGVudCBkYXRhIGZvciB0aGUgaW5wdXQgYXQgdGhlIGdpdmVuIGluZGV4IGlmIHRoZSBkYXRhIGlzIG5vdCB0aGVyZSBhbHJlYWR5LlxuICpcbiAqIElmIHNraXBOb25XaXRuZXNzVXR4byBpcyB0cnVlLCB0aGVuIHRoZSBub25XaXRuZXNzVXR4byB3aWxsIG5vdCBiZSBhZGRlZCBmb3IgYW4gaW5wdXQgdGhhdCByZXF1aXJlcyBpdCAoZS5nLiBub24tc2Vnd2l0KVxuICogYW5kIGluc3RlYWQgdGhlIHdpdG5lc3NVdHhvIHdpbGwgYmUgYWRkZWRcbiAqXG4gKiBAcGFyYW0gcHNidFxuICogQHBhcmFtIGlucHV0SW5kZXhcbiAqIEBwYXJhbSB1XG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXNcbiAqIEBwYXJhbSBzaWduZXJcbiAqIEBwYXJhbSBjb3NpZ25lclxuICogQHBhcmFtIGN1c3RvbVBhcmFtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlV2FsbGV0VW5zcGVudEZvclBzYnQoXG4gIHBzYnQ6IFV0eG9Qc2J0LFxuICBpbnB1dEluZGV4OiBudW1iZXIsXG4gIHU6IFdhbGxldFVuc3BlbnQ8YmlnaW50PixcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduZXI6IEtleU5hbWUsXG4gIGNvc2lnbmVyOiBLZXlOYW1lLFxuICBjdXN0b21QYXJhbXM/OiB7IHNraXBOb25XaXRuZXNzVXR4bz86IGJvb2xlYW4gfVxuKTogdm9pZCB7XG4gIGlmICghcHNidEluY2x1ZGVzVW5zcGVudEF0SW5kZXgocHNidCwgaW5wdXRJbmRleCwgdS5pZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3BlbnQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBwc2J0IGlucHV0YCk7XG4gIH1cbiAgY29uc3QgaW5wdXQgPSBjaGVja0ZvcklucHV0KHBzYnQuZGF0YS5pbnB1dHMsIGlucHV0SW5kZXgpO1xuXG4gIC8vIEJlY2F1c2UgWmNhc2ggZGlyZWN0bHkgaGFzaGVzIHRoZSB2YWx1ZSBmb3Igbm9uLXNlZ3dpdCB0cmFuc2FjdGlvbnMsIHdlIGRvIG5vdCBuZWVkIHRvIGNoZWNrIGluZGlyZWN0bHlcbiAgLy8gd2l0aCB0aGUgcHJldmlvdXMgdHJhbnNhY3Rpb24uIFRoZXJlZm9yZSwgd2UgY2FuIHRyZWF0IFpjYXNoIG5vbi1zZWd3aXQgdHJhbnNhY3Rpb25zIGFzIEJpdGNvaW5cbiAgLy8gc2Vnd2l0IHRyYW5zYWN0aW9uc1xuICBjb25zdCBpc1pjYXNoT3JTZWd3aXQgPSBpc1NlZ3dpdCh1LmNoYWluKSB8fCBnZXRNYWlubmV0KHBzYnQubmV0d29yaykgPT09IG5ldHdvcmtzLnpjYXNoO1xuICBpZiAoKGlzWmNhc2hPclNlZ3dpdCB8fCBjdXN0b21QYXJhbXM/LnNraXBOb25XaXRuZXNzVXR4bykgJiYgIWlucHV0LndpdG5lc3NVdHhvKSB7XG4gICAgY29uc3QgeyBzY3JpcHQsIHZhbHVlIH0gPSB0b1ByZXZPdXRwdXQodSwgcHNidC5uZXR3b3JrKTtcbiAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHsgd2l0bmVzc1V0eG86IHsgc2NyaXB0LCB2YWx1ZSB9IH0pO1xuICB9IGVsc2UgaWYgKCFpc1pjYXNoT3JTZWd3aXQpIHtcbiAgICBpZiAoIWlzVW5zcGVudFdpdGhQcmV2VHgodSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IsIHJlcXVpcmUgcHJldmlvdXMgdHggdG8gYWRkIHRvIFBTQlQnKTtcbiAgICB9XG5cbiAgICBpZiAoIWlucHV0LndpdG5lc3NVdHhvICYmICFpbnB1dC5ub25XaXRuZXNzVXR4bykge1xuICAgICAgLy8gRm9yY2UgdGhlIGxpdGVjb2luIHRyYW5zYWN0aW9uIHRvIGhhdmUgbm8gTVdFQiBhZHZhbmNlZCB0cmFuc2FjdGlvbiBmbGFnXG4gICAgICBpZiAoZ2V0TWFpbm5ldChwc2J0Lm5ldHdvcmspID09PSBuZXR3b3Jrcy5saXRlY29pbikge1xuICAgICAgICB1LnByZXZUeCA9IGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcih1LnByZXZUeCwgcHNidC5uZXR3b3JrLCB7IGFtb3VudFR5cGU6ICdiaWdpbnQnIH0pLnRvQnVmZmVyKCk7XG4gICAgICB9XG5cbiAgICAgIHBzYnQudXBkYXRlSW5wdXQoaW5wdXRJbmRleCwgeyBub25XaXRuZXNzVXR4bzogdS5wcmV2VHggfSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgd2FsbGV0S2V5cyA9IHJvb3RXYWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgodS5jaGFpbiwgdS5pbmRleCk7XG4gIGNvbnN0IHNjcmlwdFR5cGUgPSBzY3JpcHRUeXBlRm9yQ2hhaW4odS5jaGFpbik7XG4gIGNvbnN0IHNpZ2hhc2hUeXBlID0gZ2V0RGVmYXVsdFNpZ0hhc2gocHNidC5uZXR3b3JrLCBzY3JpcHRUeXBlKTtcbiAgaWYgKHBzYnQuZGF0YS5pbnB1dHNbaW5wdXRJbmRleF0uc2lnaGFzaFR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgIHBzYnQudXBkYXRlSW5wdXQoaW5wdXRJbmRleCwgeyBzaWdoYXNoVHlwZSB9KTtcbiAgfVxuICBjb25zdCBpc0JhY2t1cEZsb3cgPSBzaWduZXIgPT09ICdiYWNrdXAnIHx8IGNvc2lnbmVyID09PSAnYmFja3VwJztcblxuICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AydHInIHx8IChzY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicgJiYgaXNCYWNrdXBGbG93KSkge1xuICAgIGlmIChpbnB1dC50YXBMZWFmU2NyaXB0ICYmIGlucHV0LnRhcEJpcDMyRGVyaXZhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjcmVhdGVTcGVuZFNjcmlwdFAydHJGbiA9IHNjcmlwdFR5cGUgPT09ICdwMnRyJyA/IGNyZWF0ZVNwZW5kU2NyaXB0UDJ0ciA6IGNyZWF0ZVNwZW5kU2NyaXB0UDJ0ck11c2lnMjtcbiAgICBjb25zdCB7IGNvbnRyb2xCbG9jaywgd2l0bmVzc1NjcmlwdCwgbGVhZlZlcnNpb24sIGxlYWZIYXNoIH0gPSBjcmVhdGVTcGVuZFNjcmlwdFAydHJGbih3YWxsZXRLZXlzLnB1YmxpY0tleXMsIFtcbiAgICAgIHdhbGxldEtleXNbc2lnbmVyXS5wdWJsaWNLZXksXG4gICAgICB3YWxsZXRLZXlzW2Nvc2lnbmVyXS5wdWJsaWNLZXksXG4gICAgXSk7XG4gICAgaWYgKCFpbnB1dC50YXBMZWFmU2NyaXB0KSB7XG4gICAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHtcbiAgICAgICAgdGFwTGVhZlNjcmlwdDogW3sgY29udHJvbEJsb2NrLCBzY3JpcHQ6IHdpdG5lc3NTY3JpcHQsIGxlYWZWZXJzaW9uIH1dLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICghaW5wdXQudGFwQmlwMzJEZXJpdmF0aW9uKSB7XG4gICAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHtcbiAgICAgICAgdGFwQmlwMzJEZXJpdmF0aW9uOiBbc2lnbmVyLCBjb3NpZ25lcl0ubWFwKChrZXkpID0+ICh7XG4gICAgICAgICAgbGVhZkhhc2hlczogW2xlYWZIYXNoXSxcbiAgICAgICAgICBwdWJrZXk6IHRvWE9ubHlQdWJsaWNLZXkod2FsbGV0S2V5c1trZXldLnB1YmxpY0tleSksXG4gICAgICAgICAgcGF0aDogcm9vdFdhbGxldEtleXMuZ2V0RGVyaXZhdGlvblBhdGgocm9vdFdhbGxldEtleXNba2V5XSwgdS5jaGFpbiwgdS5pbmRleCksXG4gICAgICAgICAgbWFzdGVyRmluZ2VycHJpbnQ6IHJvb3RXYWxsZXRLZXlzW2tleV0uZmluZ2VycHJpbnQsXG4gICAgICAgIH0pKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBlbHNlIGlmIChzY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicpIHtcbiAgICBjb25zdCB7XG4gICAgICBpbnRlcm5hbFB1YmtleTogdGFwSW50ZXJuYWxLZXksXG4gICAgICBvdXRwdXRQdWJrZXk6IHRhcE91dHB1dEtleSxcbiAgICAgIHRhcHRyZWVSb290LFxuICAgIH0gPSBjcmVhdGVLZXlQYXRoUDJ0ck11c2lnMih3YWxsZXRLZXlzLnB1YmxpY0tleXMpO1xuXG4gICAgaWYgKFxuICAgICAgcHNidC5nZXRQcm9wcmlldGFyeUtleVZhbHMoaW5wdXRJbmRleCwge1xuICAgICAgICBpZGVudGlmaWVyOiBQU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgICAgIHN1YnR5cGU6IFByb3ByaWV0YXJ5S2V5U3VidHlwZS5NVVNJRzJfUEFSVElDSVBBTlRfUFVCX0tFWVMsXG4gICAgICB9KS5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIGNvbnN0IHBhcnRpY2lwYW50c0tleVZhbERhdGEgPSBlbmNvZGVQc2J0TXVzaWcyUGFydGljaXBhbnRzKHtcbiAgICAgICAgdGFwT3V0cHV0S2V5LFxuICAgICAgICB0YXBJbnRlcm5hbEtleSxcbiAgICAgICAgcGFydGljaXBhbnRQdWJLZXlzOiBbd2FsbGV0S2V5cy51c2VyLnB1YmxpY0tleSwgd2FsbGV0S2V5cy5iaXRnby5wdWJsaWNLZXldLFxuICAgICAgfSk7XG4gICAgICBwc2J0LmFkZFByb3ByaWV0YXJ5S2V5VmFsVG9JbnB1dChpbnB1dEluZGV4LCBwYXJ0aWNpcGFudHNLZXlWYWxEYXRhKTtcbiAgICB9XG5cbiAgICBpZiAoIWlucHV0LnRhcEludGVybmFsS2V5KSB7XG4gICAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHtcbiAgICAgICAgdGFwSW50ZXJuYWxLZXk6IHRhcEludGVybmFsS2V5LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCFpbnB1dC50YXBNZXJrbGVSb290KSB7XG4gICAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHtcbiAgICAgICAgdGFwTWVya2xlUm9vdDogdGFwdHJlZVJvb3QsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIWlucHV0LnRhcEJpcDMyRGVyaXZhdGlvbikge1xuICAgICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICAgIHRhcEJpcDMyRGVyaXZhdGlvbjogW3NpZ25lciwgY29zaWduZXJdLm1hcCgoa2V5KSA9PiAoe1xuICAgICAgICAgIGxlYWZIYXNoZXM6IFtdLFxuICAgICAgICAgIHB1YmtleTogdG9YT25seVB1YmxpY0tleSh3YWxsZXRLZXlzW2tleV0ucHVibGljS2V5KSxcbiAgICAgICAgICBwYXRoOiByb290V2FsbGV0S2V5cy5nZXREZXJpdmF0aW9uUGF0aChyb290V2FsbGV0S2V5c1trZXldLCB1LmNoYWluLCB1LmluZGV4KSxcbiAgICAgICAgICBtYXN0ZXJGaW5nZXJwcmludDogcm9vdFdhbGxldEtleXNba2V5XS5maW5nZXJwcmludCxcbiAgICAgICAgfSkpLFxuICAgICAgfSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICghaW5wdXQuYmlwMzJEZXJpdmF0aW9uKSB7XG4gICAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHtcbiAgICAgICAgYmlwMzJEZXJpdmF0aW9uOiBbMCwgMSwgMl0ubWFwKChpZHgpID0+ICh7XG4gICAgICAgICAgcHVia2V5OiB3YWxsZXRLZXlzLnRyaXBsZVtpZHhdLnB1YmxpY0tleSxcbiAgICAgICAgICBwYXRoOiB3YWxsZXRLZXlzLnBhdGhzW2lkeF0sXG4gICAgICAgICAgbWFzdGVyRmluZ2VycHJpbnQ6IHJvb3RXYWxsZXRLZXlzLnRyaXBsZVtpZHhdLmZpbmdlcnByaW50LFxuICAgICAgICB9KSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHdpdG5lc3NTY3JpcHQsIHJlZGVlbVNjcmlwdCB9ID0gY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyh3YWxsZXRLZXlzLnB1YmxpY0tleXMsIHNjcmlwdFR5cGUpO1xuICAgIGlmICh3aXRuZXNzU2NyaXB0ICYmICFpbnB1dC53aXRuZXNzU2NyaXB0KSB7XG4gICAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHsgd2l0bmVzc1NjcmlwdCB9KTtcbiAgICB9XG4gICAgaWYgKHJlZGVlbVNjcmlwdCAmJiAhaW5wdXQucmVkZWVtU2NyaXB0KSB7XG4gICAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHsgcmVkZWVtU2NyaXB0IH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkV2FsbGV0VW5zcGVudFRvUHNidChcbiAgcHNidDogVXR4b1BzYnQsXG4gIHU6IFdhbGxldFVuc3BlbnQ8YmlnaW50PixcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduZXI6IEtleU5hbWUsXG4gIGNvc2lnbmVyOiBLZXlOYW1lLFxuICBjdXN0b21QYXJhbXM/OiB7IGlzUmVwbGFjZWFibGVCeUZlZT86IGJvb2xlYW47IHNraXBOb25XaXRuZXNzVXR4bz86IGJvb2xlYW4gfVxuKTogdm9pZCB7XG4gIGxldCBzZXF1ZW5jZU51bWJlciA9IFRYX0lOUFVUX1NFUVVFTkNFX05VTUJFUl9GSU5BTDtcbiAgaWYgKGN1c3RvbVBhcmFtcyAmJiBjdXN0b21QYXJhbXMuaXNSZXBsYWNlYWJsZUJ5RmVlKSB7XG4gICAgc2VxdWVuY2VOdW1iZXIgPSBNQVhfQklQMTI1X1JCRl9TRVFVRU5DRTtcbiAgfVxuXG4gIGFkZFVuc3BlbnRUb1BzYnQocHNidCwgdS5pZCwgeyBzZXF1ZW5jZU51bWJlciB9KTtcbiAgdXBkYXRlV2FsbGV0VW5zcGVudEZvclBzYnQoXG4gICAgcHNidCxcbiAgICBwc2J0LmlucHV0Q291bnQgLSAxLFxuICAgIHUsXG4gICAgcm9vdFdhbGxldEtleXMsXG4gICAgc2lnbmVyLFxuICAgIGNvc2lnbmVyLFxuICAgIGN1c3RvbVBhcmFtcyA/IHsgc2tpcE5vbldpdG5lc3NVdHhvOiBjdXN0b21QYXJhbXMuc2tpcE5vbldpdG5lc3NVdHhvIH0gOiB7fVxuICApO1xufVxuIl19
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVW5zcGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvVW5zcGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1REEsMENBRUM7QUFFRCxvREF3QkM7QUFTRCxnRUFzQ0M7QUFtQkQsZ0VBTUM7QUFTRCxrRkFrQ0M7QUFlRCw0RUFRQztBQWdCRCxnRUFrSUM7QUFFRCx3REF1QkM7QUF4WUQsNkJBQXNEO0FBRXRELG9EQU8wQjtBQUMxQiwyQ0FBK0M7QUFDL0MsNENBS3NCO0FBS3RCLHdDQVFvQjtBQUNwQixxQ0FBK0M7QUFFL0Msc0NBQXlEO0FBQ3pELGdEQUE2RDtBQUM3RCw4Q0FBcUQ7QUFDckQsZ0RBQXFEO0FBQ3JELDBDQUFpRjtBQUVqRiw4QkFBOEI7QUFDakIsUUFBQSw4QkFBOEIsR0FBRyxVQUFVLENBQUM7QUFFekQ7O0tBRUs7QUFDUSxRQUFBLHVCQUF1QixHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFXdEQsU0FBZ0IsZUFBZSxDQUFrQyxDQUFtQjtJQUNsRixPQUFRLENBQTRCLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQ2xDLFNBQTBDLEVBQzFDLFVBQWtCLEVBQ2xCLE9BQStCLEVBQy9CLGFBQWtEO0lBRWxELE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RyxNQUFNLFVBQVUsR0FBRyxJQUFBLGtDQUFrQixFQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFBLHNDQUFzQixFQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3pGLE1BQU0saUJBQWlCLEdB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QUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNqRCwwQkFBMEIsQ0FDeEIsSUFBSSxFQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxFQUNuQixDQUFDLEVBQ0QsY0FBYyxFQUNkLE1BQU0sRUFDTixRQUFRLEVBQ1IsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzVFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TWFpbm5ldCwgTmV0d29yaywgbmV0d29ya3MgfSBmcm9tICcuLi8uLic7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vVXR4b1RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQge1xuICBjcmVhdGVLZXlQYXRoUDJ0ck11c2lnMixcbiAgY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyxcbiAgY3JlYXRlU3BlbmRTY3JpcHRQMnRyLFxuICBjcmVhdGVTcGVuZFNjcmlwdFAydHJNdXNpZzIsXG4gIHNjcmlwdFR5cGVGb3JDaGFpbixcbiAgdG9YT25seVB1YmxpY0tleSxcbn0gZnJvbSAnLi4vb3V0cHV0U2NyaXB0cyc7XG5pbXBvcnQgeyB0b091dHB1dFNjcmlwdCB9IGZyb20gJy4uLy4uL2FkZHJlc3MnO1xuaW1wb3J0IHtcbiAgZ2V0RGVmYXVsdFNpZ0hhc2gsXG4gIGdldFNpZ25hdHVyZVZlcmlmaWNhdGlvbnMsXG4gIHNpZ25JbnB1dDJPZjMsXG4gIHZlcmlmeVNpZ25hdHVyZVdpdGhQdWJsaWNLZXlzLFxufSBmcm9tICcuLi9zaWduYXR1cmUnO1xuaW1wb3J0IHsgV2FsbGV0VW5zcGVudFNpZ25lciB9IGZyb20gJy4vV2FsbGV0VW5zcGVudFNpZ25lcic7XG5pbXBvcnQgeyBLZXlOYW1lLCBSb290V2FsbGV0S2V5cyB9IGZyb20gJy4vV2FsbGV0S2V5cyc7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9VdHhvVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgdG9PdXRwdXQsXG4gIFVuc3BlbnRXaXRoUHJldlR4LFxuICBVbnNwZW50LFxuICBpc1Vuc3BlbnRXaXRoUHJldlR4LFxuICB0b1ByZXZPdXRwdXQsXG4gIHBhcnNlT3V0cHV0SWQsXG4gIGdldE91dHB1dElkRm9ySW5wdXQsXG59IGZyb20gJy4uL1Vuc3BlbnQnO1xuaW1wb3J0IHsgQ2hhaW5Db2RlLCBpc1NlZ3dpdCB9IGZyb20gJy4vY2hhaW5zJztcbmltcG9ydCB7IFV0eG9Qc2J0IH0gZnJvbSAnLi4vVXR4b1BzYnQnO1xuaW1wb3J0IHsgZW5jb2RlUHNidE11c2lnMlBhcnRpY2lwYW50cyB9IGZyb20gJy4uL011c2lnMic7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIgfSBmcm9tICcuLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBwYXJzZVNpZ25hdHVyZVNjcmlwdCB9IGZyb20gJy4uL3BhcnNlSW5wdXQnO1xuaW1wb3J0IHsgY2hlY2tGb3JJbnB1dCB9IGZyb20gJ2JpcDE3NC9zcmMvbGliL3V0aWxzJztcbmltcG9ydCB7IFByb3ByaWV0YXJ5S2V5U3VidHlwZSwgUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSIH0gZnJvbSAnLi4vUHNidFV0aWwnO1xuXG4vKiogRmluYWwgKG5vbi1yZXBsYWNlYWJsZSkgKi9cbmV4cG9ydCBjb25zdCBUWF9JTlBVVF9TRVFVRU5DRV9OVU1CRVJfRklOQUwgPSAweGZmZmZmZmZmO1xuXG4vKiogTm9uLUZpbmFsIChSZXBsYWNlYWJsZSlcbiAqIFJlZmVyZW5jZTogaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYml0Y29pbi9ibG9iL3YyNS4xL3NyYy9ycGMvcmF3dHJhbnNhY3Rpb25fdXRpbC5jcHAjTDQ5XG4gKiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9CSVAxMjVfUkJGX1NFUVVFTkNFID0gMHhmZmZmZmZmZiAtIDI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0VW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiBleHRlbmRzIFVuc3BlbnQ8VE51bWJlcj4ge1xuICBjaGFpbjogQ2hhaW5Db2RlO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vbldpdG5lc3NXYWxsZXRVbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+XG4gIGV4dGVuZHMgVW5zcGVudFdpdGhQcmV2VHg8VE51bWJlcj4sXG4gICAgV2FsbGV0VW5zcGVudDxUTnVtYmVyPiB7fVxuXG5leHBvcnQgZnVuY3Rpb24gaXNXYWxsZXRVbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KHU6IFVuc3BlbnQ8VE51bWJlcj4pOiB1IGlzIFdhbGxldFVuc3BlbnQ8VE51bWJlcj4ge1xuICByZXR1cm4gKHUgYXMgV2FsbGV0VW5zcGVudDxUTnVtYmVyPikuY2hhaW4gIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25JbnB1dFdpdGhVbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eEJ1aWxkZXI6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4sXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgdW5zcGVudDogV2FsbGV0VW5zcGVudDxUTnVtYmVyPixcbiAgdW5zcGVudFNpZ25lcjogV2FsbGV0VW5zcGVudFNpZ25lcjxSb290V2FsbGV0S2V5cz5cbik6IHZvaWQge1xuICBjb25zdCB7IHdhbGxldEtleXMsIHNpZ25lciwgY29zaWduZXIgfSA9IHVuc3BlbnRTaWduZXIuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleCh1bnNwZW50LmNoYWluLCB1bnNwZW50LmluZGV4KTtcbiAgY29uc3Qgc2NyaXB0VHlwZSA9IHNjcmlwdFR5cGVGb3JDaGFpbih1bnNwZW50LmNoYWluKTtcbiAgY29uc3QgcHViU2NyaXB0ID0gY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyh3YWxsZXRLZXlzLnB1YmxpY0tleXMsIHNjcmlwdFR5cGUpLnNjcmlwdFB1YktleTtcbiAgY29uc3QgcHViU2NyaXB0RXhwZWN0ZWQgPSB0b091dHB1dFNjcmlwdCh1bnNwZW50LmFkZHJlc3MsIHR4QnVpbGRlci5uZXR3b3JrIGFzIE5ldHdvcmspO1xuICBpZiAoIXB1YlNjcmlwdC5lcXVhbHMocHViU2NyaXB0RXhwZWN0ZWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHB1YnNjcmlwdCBtaXNtYXRjaDogZXhwZWN0ZWQgJHtwdWJTY3JpcHRFeHBlY3RlZC50b1N0cmluZygnaGV4Jyl9IGdvdCAke3B1YlNjcmlwdC50b1N0cmluZygnaGV4Jyl9YFxuICAgICk7XG4gIH1cbiAgc2lnbklucHV0Mk9mMzxUTnVtYmVyPihcbiAgICB0eEJ1aWxkZXIsXG4gICAgaW5wdXRJbmRleCxcbiAgICBzY3JpcHRUeXBlLFxuICAgIHdhbGxldEtleXMucHVibGljS2V5cyxcbiAgICBzaWduZXIsXG4gICAgY29zaWduZXIucHVibGljS2V5LFxuICAgIHVuc3BlbnQudmFsdWVcbiAgKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gdHhcbiAqIEBwYXJhbSBpbnB1dEluZGV4XG4gKiBAcGFyYW0gdW5zcGVudHNcbiAqIEBwYXJhbSB3YWxsZXRLZXlzXG4gKiBAcmV0dXJuIHRyaXBsZSBvZiBib29sZWFucyBpbmRpY2F0aW5nIGEgdmFsaWQgc2lnbmF0dXJlIGZvciBlYWNoIHB1YmtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U2lnbmF0dXJlV2l0aFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4OiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgdW5zcGVudHM6IFVuc3BlbnQ8VE51bWJlcj5bXSxcbiAgd2FsbGV0S2V5czogUm9vdFdhbGxldEtleXNcbik6IFRyaXBsZTxib29sZWFuPiB7XG4gIGlmICh0eC5pbnMubGVuZ3RoICE9PSB1bnNwZW50cy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGlucHV0IGxlbmd0aCBtdXN0IG1hdGNoIHVuc3BlbnRzIGxlbmd0aGApO1xuICB9XG5cbiAgY29uc3QgaW5wdXQgPSB0eC5pbnNbaW5wdXRJbmRleF07XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICghaW5wdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG5vIGlucHV0IGF0IGluZGV4ICR7aW5wdXRJbmRleH1gKTtcbiAgfVxuXG4gIGNvbnN0IHVuc3BlbnQgPSB1bnNwZW50c1tpbnB1dEluZGV4XTtcbiAgaWYgKCFpc1dhbGxldFVuc3BlbnQodW5zcGVudCkgfHwgKCFpbnB1dC5zY3JpcHQ/Lmxlbmd0aCAmJiAhaW5wdXQud2l0bmVzcz8ubGVuZ3RoKSkge1xuICAgIHJldHVybiBbZmFsc2UsIGZhbHNlLCBmYWxzZV07XG4gIH1cblxuICBjb25zdCBwYXJzZWRJbnB1dCA9IHBhcnNlU2lnbmF0dXJlU2NyaXB0KGlucHV0KTtcbiAgY29uc3QgcHJldk91dHB1dHMgPSB1bnNwZW50cy5tYXAoKHUpID0+IHRvT3V0cHV0KHUsIHR4Lm5ldHdvcmspKTtcblxuICAvLyBJZiBpdCBpcyBhIHRhcHJvb3Qga2V5UGF0aFNwZW5kIGlucHV0LCB0aGUgb25seSB2YWxpZCBzaWduYXR1cmUgY29tYmluYXRpb25zIGlzIHVzZXItYml0Z28uIFdlIGNhblxuICAvLyBvbmx5IHZlcmlmeSB0aGF0IHRoZSBhZ2dyZWdhdGVkIHNpZ25hdHVyZSBpcyB2YWxpZCwgbm90IHRoYXQgdGhlIGluZGl2aWR1YWwgcGFydGlhbC1zaWduYXR1cmUgaXMgdmFsaWQuXG4gIC8vIFRoZXJlZm9yZSwgd2UgY2FuIG9ubHkgc2F5IHRoYXQgZWl0aGVyIGFsbCBwYXJ0aWFsIHNpZ25hdHVyZXMgYXJlIHZhbGlkLCBvciBub25lIGFyZS5cbiAgaWYgKHBhcnNlZElucHV0LnNjcmlwdFR5cGUgPT09ICd0YXByb290S2V5UGF0aFNwZW5kJykge1xuICAgIGNvbnN0IHJlc3VsdCA9IGdldFNpZ25hdHVyZVZlcmlmaWNhdGlvbnModHgsIGlucHV0SW5kZXgsIHVuc3BlbnQudmFsdWUsIHVuZGVmaW5lZCwgcHJldk91dHB1dHMpO1xuICAgIHJldHVybiByZXN1bHQubGVuZ3RoID09PSAxICYmIHJlc3VsdFswXS5zaWduYXR1cmUgPyBbdHJ1ZSwgZmFsc2UsIHRydWVdIDogW2ZhbHNlLCBmYWxzZSwgZmFsc2VdO1xuICB9XG5cbiAgcmV0dXJuIHZlcmlmeVNpZ25hdHVyZVdpdGhQdWJsaWNLZXlzKFxuICAgIHR4LFxuICAgIGlucHV0SW5kZXgsXG4gICAgcHJldk91dHB1dHMsXG4gICAgd2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KHVuc3BlbnQuY2hhaW4sIHVuc3BlbnQuaW5kZXgpLnB1YmxpY0tleXNcbiAgKSBhcyBUcmlwbGU8Ym9vbGVhbj47XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZWQgaW4gY2VydGFpbiBsZWdhY3kgc2lnbmluZyBtZXRob2RzIHRoYXQgZG8gbm90IGRlcml2ZSBzaWduaW5nIGRhdGEgZnJvbSBpbmRleC9jaGFpblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhbGxldFVuc3BlbnRMZWdhY3k8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gZXh0ZW5kcyBXYWxsZXRVbnNwZW50PFROdW1iZXI+IHtcbiAgLyoqIEBkZXByZWNhdGVkIC0gb2J2aWF0ZWQgYnkgc2lnbldpdGhVbnNwZW50ICovXG4gIHJlZGVlbVNjcmlwdD86IHN0cmluZztcbiAgLyoqIEBkZXByZWNhdGVkIC0gb2J2aWF0ZWQgYnkgdmVyaWZ5V2l0aFVuc3BlbnQgKi9cbiAgd2l0bmVzc1NjcmlwdD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcGFyYW0gcHNidFxuICogQHBhcmFtIGlucHV0SW5kZXhcbiAqIEBwYXJhbSBpZCBVbnNwZW50IElEXG4gKiBAcmV0dXJucyB0cnVlIGlmZiB0aGUgdW5zcGVudCBJRCBvbiB0aGUgdW5zcGVudCBhbmQgcHNidCBpbnB1dCBtYXRjaFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHNidEluY2x1ZGVzVW5zcGVudEF0SW5kZXgocHNidDogVXR4b1BzYnQsIGlucHV0SW5kZXg6IG51bWJlciwgaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjaGVja0ZvcklucHV0KHBzYnQuZGF0YS5pbnB1dHMsIGlucHV0SW5kZXgpO1xuXG4gIGNvbnN0IHsgdHhpZCwgdm91dCB9ID0gcGFyc2VPdXRwdXRJZChpZCk7XG4gIGNvbnN0IHBzYnRPdXRQb2ludCA9IGdldE91dHB1dElkRm9ySW5wdXQocHNidC50eElucHV0c1tpbnB1dEluZGV4XSk7XG4gIHJldHVybiBwc2J0T3V0UG9pbnQudHhpZCA9PT0gdHhpZCAmJiBwc2J0T3V0UG9pbnQudm91dCA9PT0gdm91dDtcbn1cblxuLyoqXG4gKiBVcGRhdGUgdGhlIHBzYnQgaW5wdXQgYXQgdGhlIGdpdmVuIGluZGV4XG4gKiBAcGFyYW0gcHNidFxuICogQHBhcmFtIGlucHV0SW5kZXhcbiAqIEBwYXJhbSB1XG4gKiBAcGFyYW0gcmVkZWVtU2NyaXB0IE9ubHkgb3ZlcnJpZGVzIGlmIHRoZXJlIGlzIG5vIHJlZGVlbVNjcmlwdCBpbiB0aGUgaW5wdXQgY3VycmVudGx5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVSZXBsYXlQcm90ZWN0aW9uVW5zcGVudFRvUHNidChcbiAgcHNidDogVXR4b1BzYnQsXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgdTogVW5zcGVudDxiaWdpbnQ+LFxuICByZWRlZW1TY3JpcHQ/OiBCdWZmZXIsXG4gIGN1c3RvbVBhcmFtcz86IHsgc2tpcE5vbldpdG5lc3NVdHhvPzogYm9vbGVhbiB9XG4pOiB2b2lkIHtcbiAgaWYgKCFwc2J0SW5jbHVkZXNVbnNwZW50QXRJbmRleChwc2J0LCBpbnB1dEluZGV4LCB1LmlkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5zcGVudCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHBzYnQgaW5wdXRgKTtcbiAgfVxuICBjb25zdCBpbnB1dCA9IGNoZWNrRm9ySW5wdXQocHNidC5kYXRhLmlucHV0cywgaW5wdXRJbmRleCk7XG5cbiAgaWYgKHJlZGVlbVNjcmlwdCAmJiAhaW5wdXQucmVkZWVtU2NyaXB0KSB7XG4gICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7IHJlZGVlbVNjcmlwdCB9KTtcbiAgfVxuXG4gIC8vIEJlY2F1c2UgWmNhc2ggZGlyZWN0bHkgaGFzaGVzIHRoZSB2YWx1ZSBmb3Igbm9uLXNlZ3dpdCB0cmFuc2FjdGlvbnMsIHdlIGRvIG5vdCBuZWVkIHRvIGNoZWNrIGluZGlyZWN0bHlcbiAgLy8gd2l0aCB0aGUgcHJldmlvdXMgdHJhbnNhY3Rpb24uIFRoZXJlZm9yZSwgd2UgY2FuIHRyZWF0IFpjYXNoIG5vbi1zZWd3aXQgdHJhbnNhY3Rpb25zIGFzIEJpdGNvaW5cbiAgLy8gc2Vnd2l0IHRyYW5zYWN0aW9uc1xuICBjb25zdCBpc1pjYXNoID0gZ2V0TWFpbm5ldChwc2J0Lm5ldHdvcmspID09PSBuZXR3b3Jrcy56Y2FzaDtcbiAgaWYgKCFpc1Vuc3BlbnRXaXRoUHJldlR4KHUpICYmICFpc1pjYXNoICYmICFjdXN0b21QYXJhbXM/LnNraXBOb25XaXRuZXNzVXR4bykge1xuICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IsIHJlcXVpcmUgcHJldmlvdXMgdHggdG8gYWRkIHRvIFBTQlQnKTtcbiAgfVxuICBpZiAoKGlzWmNhc2ggJiYgIWlucHV0LndpdG5lc3NVdHhvKSB8fCBjdXN0b21QYXJhbXM/LnNraXBOb25XaXRuZXNzVXR4bykge1xuICAgIGNvbnN0IHsgc2NyaXB0LCB2YWx1ZSB9ID0gdG9QcmV2T3V0cHV0KHUsIHBzYnQubmV0d29yayk7XG4gICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7IHdpdG5lc3NVdHhvOiB7IHNjcmlwdCwgdmFsdWUgfSB9KTtcbiAgfSBlbHNlIGlmICghaXNaY2FzaCAmJiAhaW5wdXQubm9uV2l0bmVzc1V0eG8pIHtcbiAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHsgbm9uV2l0bmVzc1V0eG86ICh1IGFzIFVuc3BlbnRXaXRoUHJldlR4PGJpZ2ludD4pLnByZXZUeCB9KTtcbiAgfVxuXG4gIGNvbnN0IHNpZ2hhc2hUeXBlID0gZ2V0RGVmYXVsdFNpZ0hhc2gocHNidC5uZXR3b3JrKTtcbiAgaWYgKHBzYnQuZGF0YS5pbnB1dHNbaW5wdXRJbmRleF0uc2lnaGFzaFR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgIHBzYnQudXBkYXRlSW5wdXQoaW5wdXRJbmRleCwgeyBzaWdoYXNoVHlwZSB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRVbnNwZW50VG9Qc2J0KFxuICBwc2J0OiBVdHhvUHNidCxcbiAgaWQ6IHN0cmluZyxcbiAgeyBzZXF1ZW5jZU51bWJlciA9IFRYX0lOUFVUX1NFUVVFTkNFX05VTUJFUl9GSU5BTCB9OiB7IHNlcXVlbmNlTnVtYmVyPzogbnVtYmVyIH0gPSB7fVxuKTogdm9pZCB7XG4gIGNvbnN0IHsgdHhpZCwgdm91dCB9ID0gcGFyc2VPdXRwdXRJZChpZCk7XG4gIHBzYnQuYWRkSW5wdXQoe1xuICAgIGhhc2g6IHR4aWQsXG4gICAgaW5kZXg6IHZvdXQsXG4gICAgc2VxdWVuY2U6IHNlcXVlbmNlTnVtYmVyLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFJlcGxheVByb3RlY3Rpb25VbnNwZW50VG9Qc2J0KFxuICBwc2J0OiBVdHhvUHNidCxcbiAgdTogVW5zcGVudDxiaWdpbnQ+LFxuICByZWRlZW1TY3JpcHQ6IEJ1ZmZlcixcbiAgY3VzdG9tUGFyYW1zPzogeyBza2lwTm9uV2l0bmVzc1V0eG8/OiBib29sZWFuIH1cbik6IHZvaWQge1xuICBhZGRVbnNwZW50VG9Qc2J0KHBzYnQsIHUuaWQpO1xuICB1cGRhdGVSZXBsYXlQcm90ZWN0aW9uVW5zcGVudFRvUHNidChwc2J0LCBwc2J0LmlucHV0Q291bnQgLSAxLCB1LCByZWRlZW1TY3JpcHQsIGN1c3RvbVBhcmFtcyk7XG59XG5cbi8qKlxuICogVXBkYXRlIHRoZSBQU0JUIHdpdGggdGhlIHVuc3BlbnQgZGF0YSBmb3IgdGhlIGlucHV0IGF0IHRoZSBnaXZlbiBpbmRleCBpZiB0aGUgZGF0YSBpcyBub3QgdGhlcmUgYWxyZWFkeS5cbiAqXG4gKiBJZiBza2lwTm9uV2l0bmVzc1V0eG8gaXMgdHJ1ZSwgdGhlbiB0aGUgbm9uV2l0bmVzc1V0eG8gd2lsbCBub3QgYmUgYWRkZWQgZm9yIGFuIGlucHV0IHRoYXQgcmVxdWlyZXMgaXQgKGUuZy4gbm9uLXNlZ3dpdClcbiAqIGFuZCBpbnN0ZWFkIHRoZSB3aXRuZXNzVXR4byB3aWxsIGJlIGFkZGVkXG4gKlxuICogQHBhcmFtIHBzYnRcbiAqIEBwYXJhbSBpbnB1dEluZGV4XG4gKiBAcGFyYW0gdVxuICogQHBhcmFtIHJvb3RXYWxsZXRLZXlzXG4gKiBAcGFyYW0gc2lnbmVyXG4gKiBAcGFyYW0gY29zaWduZXJcbiAqIEBwYXJhbSBjdXN0b21QYXJhbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVdhbGxldFVuc3BlbnRGb3JQc2J0KFxuICBwc2J0OiBVdHhvUHNidCxcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICB1OiBXYWxsZXRVbnNwZW50PGJpZ2ludD4sXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgc2lnbmVyOiBLZXlOYW1lLFxuICBjb3NpZ25lcjogS2V5TmFtZSxcbiAgY3VzdG9tUGFyYW1zPzogeyBza2lwTm9uV2l0bmVzc1V0eG8/OiBib29sZWFuIH1cbik6IHZvaWQge1xuICBpZiAoIXBzYnRJbmNsdWRlc1Vuc3BlbnRBdEluZGV4KHBzYnQsIGlucHV0SW5kZXgsIHUuaWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bnNwZW50IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gcHNidCBpbnB1dGApO1xuICB9XG4gIGNvbnN0IGlucHV0ID0gY2hlY2tGb3JJbnB1dChwc2J0LmRhdGEuaW5wdXRzLCBpbnB1dEluZGV4KTtcblxuICAvLyBCZWNhdXNlIFpjYXNoIGRpcmVjdGx5IGhhc2hlcyB0aGUgdmFsdWUgZm9yIG5vbi1zZWd3aXQgdHJhbnNhY3Rpb25zLCB3ZSBkbyBub3QgbmVlZCB0byBjaGVjayBpbmRpcmVjdGx5XG4gIC8vIHdpdGggdGhlIHByZXZpb3VzIHRyYW5zYWN0aW9uLiBUaGVyZWZvcmUsIHdlIGNhbiB0cmVhdCBaY2FzaCBub24tc2Vnd2l0IHRyYW5zYWN0aW9ucyBhcyBCaXRjb2luXG4gIC8vIHNlZ3dpdCB0cmFuc2FjdGlvbnNcbiAgY29uc3QgaXNaY2FzaE9yU2Vnd2l0ID0gaXNTZWd3aXQodS5jaGFpbikgfHwgZ2V0TWFpbm5ldChwc2J0Lm5ldHdvcmspID09PSBuZXR3b3Jrcy56Y2FzaDtcbiAgaWYgKChpc1pjYXNoT3JTZWd3aXQgfHwgY3VzdG9tUGFyYW1zPy5za2lwTm9uV2l0bmVzc1V0eG8pICYmICFpbnB1dC53aXRuZXNzVXR4bykge1xuICAgIGNvbnN0IHsgc2NyaXB0LCB2YWx1ZSB9ID0gdG9QcmV2T3V0cHV0KHUsIHBzYnQubmV0d29yayk7XG4gICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7IHdpdG5lc3NVdHhvOiB7IHNjcmlwdCwgdmFsdWUgfSB9KTtcbiAgfSBlbHNlIGlmICghaXNaY2FzaE9yU2Vnd2l0KSB7XG4gICAgaWYgKCFpc1Vuc3BlbnRXaXRoUHJldlR4KHUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yLCByZXF1aXJlIHByZXZpb3VzIHR4IHRvIGFkZCB0byBQU0JUJyk7XG4gICAgfVxuXG4gICAgaWYgKCFpbnB1dC53aXRuZXNzVXR4byAmJiAhaW5wdXQubm9uV2l0bmVzc1V0eG8pIHtcbiAgICAgIC8vIEZvcmNlIHRoZSBsaXRlY29pbiB0cmFuc2FjdGlvbiB0byBoYXZlIG5vIE1XRUIgYWR2YW5jZWQgdHJhbnNhY3Rpb24gZmxhZ1xuICAgICAgaWYgKGdldE1haW5uZXQocHNidC5uZXR3b3JrKSA9PT0gbmV0d29ya3MubGl0ZWNvaW4pIHtcbiAgICAgICAgdS5wcmV2VHggPSBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIodS5wcmV2VHgsIHBzYnQubmV0d29yaywgeyBhbW91bnRUeXBlOiAnYmlnaW50JyB9KS50b0J1ZmZlcigpO1xuICAgICAgfVxuXG4gICAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHsgbm9uV2l0bmVzc1V0eG86IHUucHJldlR4IH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHdhbGxldEtleXMgPSByb290V2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KHUuY2hhaW4sIHUuaW5kZXgpO1xuICBjb25zdCBzY3JpcHRUeXBlID0gc2NyaXB0VHlwZUZvckNoYWluKHUuY2hhaW4pO1xuICBjb25zdCBzaWdoYXNoVHlwZSA9IGdldERlZmF1bHRTaWdIYXNoKHBzYnQubmV0d29yaywgc2NyaXB0VHlwZSk7XG4gIGlmIChwc2J0LmRhdGEuaW5wdXRzW2lucHV0SW5kZXhdLnNpZ2hhc2hUeXBlID09PSB1bmRlZmluZWQpIHtcbiAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHsgc2lnaGFzaFR5cGUgfSk7XG4gIH1cbiAgY29uc3QgaXNCYWNrdXBGbG93ID0gc2lnbmVyID09PSAnYmFja3VwJyB8fCBjb3NpZ25lciA9PT0gJ2JhY2t1cCc7XG5cbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMnRyJyB8fCAoc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzInICYmIGlzQmFja3VwRmxvdykpIHtcbiAgICBpZiAoaW5wdXQudGFwTGVhZlNjcmlwdCAmJiBpbnB1dC50YXBCaXAzMkRlcml2YXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3JlYXRlU3BlbmRTY3JpcHRQMnRyRm4gPSBzY3JpcHRUeXBlID09PSAncDJ0cicgPyBjcmVhdGVTcGVuZFNjcmlwdFAydHIgOiBjcmVhdGVTcGVuZFNjcmlwdFAydHJNdXNpZzI7XG4gICAgY29uc3QgeyBjb250cm9sQmxvY2ssIHdpdG5lc3NTY3JpcHQsIGxlYWZWZXJzaW9uLCBsZWFmSGFzaCB9ID0gY3JlYXRlU3BlbmRTY3JpcHRQMnRyRm4od2FsbGV0S2V5cy5wdWJsaWNLZXlzLCBbXG4gICAgICB3YWxsZXRLZXlzW3NpZ25lcl0ucHVibGljS2V5LFxuICAgICAgd2FsbGV0S2V5c1tjb3NpZ25lcl0ucHVibGljS2V5LFxuICAgIF0pO1xuICAgIGlmICghaW5wdXQudGFwTGVhZlNjcmlwdCkge1xuICAgICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICAgIHRhcExlYWZTY3JpcHQ6IFt7IGNvbnRyb2xCbG9jaywgc2NyaXB0OiB3aXRuZXNzU2NyaXB0LCBsZWFmVmVyc2lvbiB9XSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoIWlucHV0LnRhcEJpcDMyRGVyaXZhdGlvbikge1xuICAgICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICAgIHRhcEJpcDMyRGVyaXZhdGlvbjogW3NpZ25lciwgY29zaWduZXJdLm1hcCgoa2V5KSA9PiAoe1xuICAgICAgICAgIGxlYWZIYXNoZXM6IFtsZWFmSGFzaF0sXG4gICAgICAgICAgcHVia2V5OiB0b1hPbmx5UHVibGljS2V5KHdhbGxldEtleXNba2V5XS5wdWJsaWNLZXkpLFxuICAgICAgICAgIHBhdGg6IHJvb3RXYWxsZXRLZXlzLmdldERlcml2YXRpb25QYXRoKHJvb3RXYWxsZXRLZXlzW2tleV0sIHUuY2hhaW4sIHUuaW5kZXgpLFxuICAgICAgICAgIG1hc3RlckZpbmdlcnByaW50OiByb290V2FsbGV0S2V5c1trZXldLmZpbmdlcnByaW50LFxuICAgICAgICB9KSksXG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzInKSB7XG4gICAgY29uc3Qge1xuICAgICAgaW50ZXJuYWxQdWJrZXk6IHRhcEludGVybmFsS2V5LFxuICAgICAgb3V0cHV0UHVia2V5OiB0YXBPdXRwdXRLZXksXG4gICAgICB0YXB0cmVlUm9vdCxcbiAgICB9ID0gY3JlYXRlS2V5UGF0aFAydHJNdXNpZzIod2FsbGV0S2V5cy5wdWJsaWNLZXlzKTtcblxuICAgIGlmIChcbiAgICAgIHBzYnQuZ2V0UHJvcHJpZXRhcnlLZXlWYWxzKGlucHV0SW5kZXgsIHtcbiAgICAgICAgaWRlbnRpZmllcjogUFNCVF9QUk9QUklFVEFSWV9JREVOVElGSUVSLFxuICAgICAgICBzdWJ0eXBlOiBQcm9wcmlldGFyeUtleVN1YnR5cGUuTVVTSUcyX1BBUlRJQ0lQQU5UX1BVQl9LRVlTLFxuICAgICAgfSkubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICBjb25zdCBwYXJ0aWNpcGFudHNLZXlWYWxEYXRhID0gZW5jb2RlUHNidE11c2lnMlBhcnRpY2lwYW50cyh7XG4gICAgICAgIHRhcE91dHB1dEtleSxcbiAgICAgICAgdGFwSW50ZXJuYWxLZXksXG4gICAgICAgIHBhcnRpY2lwYW50UHViS2V5czogW3dhbGxldEtleXMudXNlci5wdWJsaWNLZXksIHdhbGxldEtleXMuYml0Z28ucHVibGljS2V5XSxcbiAgICAgIH0pO1xuICAgICAgcHNidC5hZGRQcm9wcmlldGFyeUtleVZhbFRvSW5wdXQoaW5wdXRJbmRleCwgcGFydGljaXBhbnRzS2V5VmFsRGF0YSk7XG4gICAgfVxuXG4gICAgaWYgKCFpbnB1dC50YXBJbnRlcm5hbEtleSkge1xuICAgICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICAgIHRhcEludGVybmFsS2V5OiB0YXBJbnRlcm5hbEtleSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghaW5wdXQudGFwTWVya2xlUm9vdCkge1xuICAgICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICAgIHRhcE1lcmtsZVJvb3Q6IHRhcHRyZWVSb290LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCFpbnB1dC50YXBCaXAzMkRlcml2YXRpb24pIHtcbiAgICAgIHBzYnQudXBkYXRlSW5wdXQoaW5wdXRJbmRleCwge1xuICAgICAgICB0YXBCaXAzMkRlcml2YXRpb246IFtzaWduZXIsIGNvc2lnbmVyXS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICBsZWFmSGFzaGVzOiBbXSxcbiAgICAgICAgICBwdWJrZXk6IHRvWE9ubHlQdWJsaWNLZXkod2FsbGV0S2V5c1trZXldLnB1YmxpY0tleSksXG4gICAgICAgICAgcGF0aDogcm9vdFdhbGxldEtleXMuZ2V0RGVyaXZhdGlvblBhdGgocm9vdFdhbGxldEtleXNba2V5XSwgdS5jaGFpbiwgdS5pbmRleCksXG4gICAgICAgICAgbWFzdGVyRmluZ2VycHJpbnQ6IHJvb3RXYWxsZXRLZXlzW2tleV0uZmluZ2VycHJpbnQsXG4gICAgICAgIH0pKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoIWlucHV0LmJpcDMyRGVyaXZhdGlvbikge1xuICAgICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICAgIGJpcDMyRGVyaXZhdGlvbjogWzAsIDEsIDJdLm1hcCgoaWR4KSA9PiAoe1xuICAgICAgICAgIHB1YmtleTogd2FsbGV0S2V5cy50cmlwbGVbaWR4XS5wdWJsaWNLZXksXG4gICAgICAgICAgcGF0aDogd2FsbGV0S2V5cy5wYXRoc1tpZHhdLFxuICAgICAgICAgIG1hc3RlckZpbmdlcnByaW50OiByb290V2FsbGV0S2V5cy50cmlwbGVbaWR4XS5maW5nZXJwcmludCxcbiAgICAgICAgfSkpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyB3aXRuZXNzU2NyaXB0LCByZWRlZW1TY3JpcHQgfSA9IGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMod2FsbGV0S2V5cy5wdWJsaWNLZXlzLCBzY3JpcHRUeXBlKTtcbiAgICBpZiAod2l0bmVzc1NjcmlwdCAmJiAhaW5wdXQud2l0bmVzc1NjcmlwdCkge1xuICAgICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7IHdpdG5lc3NTY3JpcHQgfSk7XG4gICAgfVxuICAgIGlmIChyZWRlZW1TY3JpcHQgJiYgIWlucHV0LnJlZGVlbVNjcmlwdCkge1xuICAgICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7IHJlZGVlbVNjcmlwdCB9KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFdhbGxldFVuc3BlbnRUb1BzYnQoXG4gIHBzYnQ6IFV0eG9Qc2J0LFxuICB1OiBXYWxsZXRVbnNwZW50PGJpZ2ludD4sXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgc2lnbmVyOiBLZXlOYW1lLFxuICBjb3NpZ25lcjogS2V5TmFtZSxcbiAgY3VzdG9tUGFyYW1zPzogeyBpc1JlcGxhY2VhYmxlQnlGZWU/OiBib29sZWFuOyBza2lwTm9uV2l0bmVzc1V0eG8/OiBib29sZWFuIH1cbik6IHZvaWQge1xuICBsZXQgc2VxdWVuY2VOdW1iZXIgPSBUWF9JTlBVVF9TRVFVRU5DRV9OVU1CRVJfRklOQUw7XG4gIGlmIChjdXN0b21QYXJhbXMgJiYgY3VzdG9tUGFyYW1zLmlzUmVwbGFjZWFibGVCeUZlZSkge1xuICAgIHNlcXVlbmNlTnVtYmVyID0gTUFYX0JJUDEyNV9SQkZfU0VRVUVOQ0U7XG4gIH1cblxuICBhZGRVbnNwZW50VG9Qc2J0KHBzYnQsIHUuaWQsIHsgc2VxdWVuY2VOdW1iZXIgfSk7XG4gIHVwZGF0ZVdhbGxldFVuc3BlbnRGb3JQc2J0KFxuICAgIHBzYnQsXG4gICAgcHNidC5pbnB1dENvdW50IC0gMSxcbiAgICB1LFxuICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgIHNpZ25lcixcbiAgICBjb3NpZ25lcixcbiAgICBjdXN0b21QYXJhbXMgPyB7IHNraXBOb25XaXRuZXNzVXR4bzogY3VzdG9tUGFyYW1zLnNraXBOb25XaXRuZXNzVXR4byB9IDoge31cbiAgKTtcbn1cbiJdfQ==
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  /**
4
2
  * Classes for deriving key triples for wallet addresses.
5
3
  *
@@ -1 +1 @@
1
- {"version":3,"file":"WalletKeys.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/WalletKeys.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElD,wBAAgB,WAAW,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,qBAAa,UAAU;aAMO,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAL1D,SAAgB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3C;;OAEG;gBACyB,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAY1D,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED,IAAI,KAAK,IAAI,cAAc,CAE1B;CACF;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAK5B,MAAM,EAAE,cAAc;IAAS,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;IAJvE;;;OAGG;gBACgB,MAAM,EAAE,cAAc,EAAS,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;CAGxE;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;aAU1B,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC;IATpD,MAAM,CAAC,QAAQ,CAAC,aAAa,SAAS;IAEtC;;;;OAIG;gBAED,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,EACd,kBAAkB,GAAE,MAAM,CAAC,MAAM,CAIhD;IAWH;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAW5E;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB;CAMxE"}
1
+ {"version":3,"file":"WalletKeys.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/WalletKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElD,wBAAgB,WAAW,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,qBAAa,UAAU;aAMO,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAL1D,SAAgB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3C;;OAEG;gBACyB,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAY1D,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED,IAAI,KAAK,IAAI,cAAc,CAE1B;CACF;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAK5B,MAAM,EAAE,cAAc;IAAS,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;IAJvE;;;OAGG;gBACgB,MAAM,EAAE,cAAc,EAAS,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;CAGxE;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;aAU1B,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC;IATpD,MAAM,CAAC,QAAQ,CAAC,aAAa,SAAS;IAEtC;;;;OAIG;gBAED,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,EACd,kBAAkB,GAAE,MAAM,CAAC,MAAM,CAIhD;IAWH;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAW5E;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB;CAMxE"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RootWalletKeys = exports.DerivedWalletKeys = exports.WalletKeys = exports.eqPublicKey = void 0;
3
+ exports.RootWalletKeys = exports.DerivedWalletKeys = exports.WalletKeys = void 0;
4
+ exports.eqPublicKey = eqPublicKey;
4
5
  function eqPublicKey(a, b) {
5
6
  return a.publicKey.equals(b.publicKey);
6
7
  }
7
- exports.eqPublicKey = eqPublicKey;
8
8
  /**
9
9
  * Base class for RootWalletKeys and DerivedWalletKeys.
10
10
  * Keys can be either public keys or private keys.
@@ -101,4 +101,4 @@ class RootWalletKeys extends WalletKeys {
101
101
  }
102
102
  exports.RootWalletKeys = RootWalletKeys;
103
103
  RootWalletKeys.defaultPrefix = '0/0';
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0S2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0S2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQkEsU0FBZ0IsV0FBVyxDQUFDLENBQWlCLEVBQUUsQ0FBaUI7SUFDOUQsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUZELGtDQUVDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxVQUFVO0lBR3JCOztPQUVHO0lBQ0gsWUFBNEIsTUFBOEI7UUFBOUIsV0FBTSxHQUFOLE1BQU0sQ0FBd0I7UUFDeEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QixJQUFJLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2lCQUNqRDtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFtQixDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQTdCRCxnQ0E2QkM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxVQUFVO0lBQy9DOzs7T0FHRztJQUNILFlBQW1CLE1BQXNCLEVBQVMsS0FBcUI7UUFDckUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBMkIsQ0FBQyxDQUFDO1FBRHBFLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFFdkUsQ0FBQztDQUNGO0FBUkQsOENBUUM7QUFFRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLFVBQVU7SUFHNUM7Ozs7T0FJRztJQUNILFlBQ0UsTUFBOEIsRUFDZCxxQkFBcUM7UUFDbkQsY0FBYyxDQUFDLGFBQWE7UUFDNUIsY0FBYyxDQUFDLGFBQWE7UUFDNUIsY0FBYyxDQUFDLGFBQWE7S0FDN0I7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFORSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBSWpDO1FBSUQsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQzthQUN6RTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUMsR0FBbUIsRUFBRSxLQUFhLEVBQUUsS0FBYTtRQUNqRSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUMzQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdGLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDMUM7UUFDRCxPQUFPLEdBQUcsTUFBTSxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHNCQUFzQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELE9BQU8sSUFBSSxpQkFBaUIsQ0FDMUIsSUFBSSxFQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBbUIsQ0FDbEYsQ0FBQztJQUNKLENBQUM7O0FBcERILHdDQXFEQztBQXBEaUIsNEJBQWEsR0FBRyxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENsYXNzZXMgZm9yIGRlcml2aW5nIGtleSB0cmlwbGVzIGZvciB3YWxsZXQgYWRkcmVzc2VzLlxuICpcbiAqIEJ5IGRlZmF1bHQsIEJpdEdvIHdhbGxldHMgY29uc2lzdCBvZiBhIHRyaXBsZSBvZiBiaXAzMiBleHRlbmQga2V5cGFpcnMuXG4gKiBFdmVyeSB3YWxsZXQgYWRkcmVzcyBjYW4gYmUgaWRlbnRpZmllZCBieSBfKGNoYWluOiBudW1iZXIsIGluZGV4OiBudW1iZXIpXy5cbiAqIFRoZSBrZXkgc2V0IGZvciBhIHBhcnRpY3VsYXIgYWRkcmVzcyBjYW4gYmUgb2J0YWluZWQgYnkgZGVyaXZpbmcgd2l0aCB0aGUgcGF0aFxuICogYDAvMC8ke2NoYWlufS8ke2luZGV4fWAuIChJbiByYXJlIGNhc2VzIHRoZSBwcmVmaXggMC8wIGNhbiBiZSBkaWZmZXJlbnQpXG4gKlxuICogU2luY2Ugd2UgbmV2ZXIgdXNlIG90aGVyIGRlcml2YXRpb25zIGZvciB1dHhvIGFkZHJlc3Mgc2NyaXB0cywgdGhlIGNsYXNzZXMgZGVmaW5lZCBoZXJlIG9ubHlcbiAqIGFsbG93IGV4YWN0bHkgb25lIGxldmVsIG9mIGRlcml2YXRpb24uXG4gKi9cbmltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnYmlwMzInO1xuXG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEtleU5hbWUgPSAndXNlcicgfCAnYmFja3VwJyB8ICdiaXRnbyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlcVB1YmxpY0tleShhOiBCSVAzMkludGVyZmFjZSwgYjogQklQMzJJbnRlcmZhY2UpOiBib29sZWFuIHtcbiAgcmV0dXJuIGEucHVibGljS2V5LmVxdWFscyhiLnB1YmxpY0tleSk7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgUm9vdFdhbGxldEtleXMgYW5kIERlcml2ZWRXYWxsZXRLZXlzLlxuICogS2V5cyBjYW4gYmUgZWl0aGVyIHB1YmxpYyBrZXlzIG9yIHByaXZhdGUga2V5cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFdhbGxldEtleXMge1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGljS2V5czogVHJpcGxlPEJ1ZmZlcj47XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB0cmlwbGUgLSBiaXAzMiBrZXkgdHJpcGxlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdHJpcGxlOiBUcmlwbGU8QklQMzJJbnRlcmZhY2U+KSB7XG4gICAgdHJpcGxlLmZvckVhY2goKGEsIGkpID0+IHtcbiAgICAgIHRyaXBsZS5mb3JFYWNoKChiLCBqKSA9PiB7XG4gICAgICAgIGlmIChlcVB1YmxpY0tleShhLCBiKSAmJiBpICE9PSBqKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3YWxsZXQga2V5cyBtdXN0IGJlIGRpc3RpbmN0YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5wdWJsaWNLZXlzID0gdGhpcy50cmlwbGUubWFwKChrKSA9PiBrLnB1YmxpY0tleSkgYXMgVHJpcGxlPEJ1ZmZlcj47XG4gIH1cblxuICBnZXQgdXNlcigpOiBCSVAzMkludGVyZmFjZSB7XG4gICAgcmV0dXJuIHRoaXMudHJpcGxlWzBdO1xuICB9XG5cbiAgZ2V0IGJhY2t1cCgpOiBCSVAzMkludGVyZmFjZSB7XG4gICAgcmV0dXJuIHRoaXMudHJpcGxlWzFdO1xuICB9XG5cbiAgZ2V0IGJpdGdvKCk6IEJJUDMySW50ZXJmYWNlIHtcbiAgICByZXR1cm4gdGhpcy50cmlwbGVbMl07XG4gIH1cbn1cblxuLyoqXG4gKiBTZXQgb2YgV2FsbGV0S2V5cyBkZXJpdmVkIGZyb20gUm9vdFdhbGxldEtleXMuIFN1aXRhYmxlIGZvciBzaWduaW5nIHRyYW5zYWN0aW9uIGlucHV0cy5cbiAqIENvbnRhaW5zIHJlZmVyZW5jZSB0byB0aGUgUm9vdFdhbGxldEtleXMgdGhpcyB3YXMgZGVyaXZlZCBmcm9tIGFzIHdlbGwgYXMgdGhlIHBhdGhzIHVzZWRcbiAqIGZvciBkZXJpdmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgRGVyaXZlZFdhbGxldEtleXMgZXh0ZW5kcyBXYWxsZXRLZXlzIHtcbiAgLyoqXG4gICAqIEBwYXJhbSBwYXJlbnQgLSB3YWxsZXQga2V5cyB0byBkZXJpdmUgZnJvbVxuICAgKiBAcGFyYW0gcGF0aHMgLSBwYXRocyB0byBkZXJpdmUgd2l0aFxuICAgKi9cbiAgY29uc3RydWN0b3IocHVibGljIHBhcmVudDogUm9vdFdhbGxldEtleXMsIHB1YmxpYyBwYXRoczogVHJpcGxlPHN0cmluZz4pIHtcbiAgICBzdXBlcihwYXJlbnQudHJpcGxlLm1hcCgoaywgaSkgPT4gay5kZXJpdmVQYXRoKHBhdGhzW2ldKSkgYXMgVHJpcGxlPEJJUDMySW50ZXJmYWNlPik7XG4gIH1cbn1cblxuLyoqXG4gKiBTZXQgb2Ygcm9vdCB3YWxsZXQga2V5cywgdHlwaWNhbGx5IGluc3RhbnRpYXRlZCB1c2luZyB0aGUgd2FsbGV0IHhwdWIgdHJpcGxlLlxuICovXG5leHBvcnQgY2xhc3MgUm9vdFdhbGxldEtleXMgZXh0ZW5kcyBXYWxsZXRLZXlzIHtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRQcmVmaXggPSAnMC8wJztcblxuICAvKipcbiAgICogQHBhcmFtIHRyaXBsZSAtIGJpcDMyIGtleSB0cmlwbGVcbiAgICogQHBhcmFtIGRlcml2YXRpb25QcmVmaXhlcyAtIENlcnRhaW4gdjEgd2FsbGV0cyBvciB0aGVpciBtaWdyYXRlZCB2MiBjb3VudGVycGFydHNcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBoYXZlIGEgbm9uc3RhbmRhcmQgcHJlZml4LlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgdHJpcGxlOiBUcmlwbGU8QklQMzJJbnRlcmZhY2U+LFxuICAgIHB1YmxpYyByZWFkb25seSBkZXJpdmF0aW9uUHJlZml4ZXM6IFRyaXBsZTxzdHJpbmc+ID0gW1xuICAgICAgUm9vdFdhbGxldEtleXMuZGVmYXVsdFByZWZpeCxcbiAgICAgIFJvb3RXYWxsZXRLZXlzLmRlZmF1bHRQcmVmaXgsXG4gICAgICBSb290V2FsbGV0S2V5cy5kZWZhdWx0UHJlZml4LFxuICAgIF1cbiAgKSB7XG4gICAgc3VwZXIodHJpcGxlKTtcblxuICAgIGRlcml2YXRpb25QcmVmaXhlcy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBpZiAocC5zdGFydHNXaXRoKCcvJykgfHwgcC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgZGVyaXZhdGlvbiBwcmVmaXggbXVzdCBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzbGFzaGApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBrZXlcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKiBAcmV0dXJuIGZ1bGwgZGVyaXZhdGlvbiBwYXRoIGZvciBrZXksIGluY2x1ZGluZyBrZXktc3BlY2lmaWMgcHJlZml4XG4gICAqL1xuICBnZXREZXJpdmF0aW9uUGF0aChrZXk6IEJJUDMySW50ZXJmYWNlLCBjaGFpbjogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuZGVyaXZhdGlvblByZWZpeGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG5vIGRlcml2YXRpb24gcHJlZml4ZXNgKTtcbiAgICB9XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5kZXJpdmF0aW9uUHJlZml4ZXMuZmluZCgocHJlZml4LCBpKSA9PiBlcVB1YmxpY0tleShrZXksIHRoaXMudHJpcGxlW2ldKSk7XG4gICAgaWYgKHByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGtleSBub3QgaW4gd2FsbGV0S2V5c2ApO1xuICAgIH1cbiAgICByZXR1cm4gYCR7cHJlZml4fS8ke2NoYWlufS8ke2luZGV4fWA7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKiBAcmV0dXJuIHdhbGxldEtleXMgZm9yIGEgcGFydGljdWxhciBhZGRyZXNzIGlkZW50aWZpZWQgYnkgKGNoYWluLCBpbmRleClcbiAgICovXG4gIGRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW46IG51bWJlciwgaW5kZXg6IG51bWJlcik6IERlcml2ZWRXYWxsZXRLZXlzIHtcbiAgICByZXR1cm4gbmV3IERlcml2ZWRXYWxsZXRLZXlzKFxuICAgICAgdGhpcyxcbiAgICAgIHRoaXMudHJpcGxlLm1hcCgoaykgPT4gdGhpcy5nZXREZXJpdmF0aW9uUGF0aChrLCBjaGFpbiwgaW5kZXgpKSBhcyBUcmlwbGU8c3RyaW5nPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0S2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0S2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQkEsa0NBRUM7QUFGRCxTQUFnQixXQUFXLENBQUMsQ0FBaUIsRUFBRSxDQUFpQjtJQUM5RCxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxVQUFVO0lBR3JCOztPQUVHO0lBQ0gsWUFBNEIsTUFBOEI7UUFBOUIsV0FBTSxHQUFOLE1BQU0sQ0FBd0I7UUFDeEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QixJQUFJLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7Z0JBQ2xELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBbUIsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQ0Y7QUE3QkQsZ0NBNkJDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsVUFBVTtJQUMvQzs7O09BR0c7SUFDSCxZQUFtQixNQUFzQixFQUFTLEtBQXFCO1FBQ3JFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQTJCLENBQUMsQ0FBQztRQURwRSxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWdCO0lBRXZFLENBQUM7Q0FDRjtBQVJELDhDQVFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxVQUFVO0lBRzVDOzs7O09BSUc7SUFDSCxZQUNFLE1BQThCLEVBQ2QscUJBQXFDO1FBQ25ELGNBQWMsQ0FBQyxhQUFhO1FBQzVCLGNBQWMsQ0FBQyxhQUFhO1FBQzVCLGNBQWMsQ0FBQyxhQUFhO0tBQzdCO1FBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBTkUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUlqQztRQUlELGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztZQUMxRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsQ0FBQyxHQUFtQixFQUFFLEtBQWEsRUFBRSxLQUFhO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdGLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLE1BQU0sSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxzQkFBc0IsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUNqRCxPQUFPLElBQUksaUJBQWlCLENBQzFCLElBQUksRUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQW1CLENBQ2xGLENBQUM7SUFDSixDQUFDOztBQXBESCx3Q0FxREM7QUFwRGlCLDRCQUFhLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDbGFzc2VzIGZvciBkZXJpdmluZyBrZXkgdHJpcGxlcyBmb3Igd2FsbGV0IGFkZHJlc3Nlcy5cbiAqXG4gKiBCeSBkZWZhdWx0LCBCaXRHbyB3YWxsZXRzIGNvbnNpc3Qgb2YgYSB0cmlwbGUgb2YgYmlwMzIgZXh0ZW5kIGtleXBhaXJzLlxuICogRXZlcnkgd2FsbGV0IGFkZHJlc3MgY2FuIGJlIGlkZW50aWZpZWQgYnkgXyhjaGFpbjogbnVtYmVyLCBpbmRleDogbnVtYmVyKV8uXG4gKiBUaGUga2V5IHNldCBmb3IgYSBwYXJ0aWN1bGFyIGFkZHJlc3MgY2FuIGJlIG9idGFpbmVkIGJ5IGRlcml2aW5nIHdpdGggdGhlIHBhdGhcbiAqIGAwLzAvJHtjaGFpbn0vJHtpbmRleH1gLiAoSW4gcmFyZSBjYXNlcyB0aGUgcHJlZml4IDAvMCBjYW4gYmUgZGlmZmVyZW50KVxuICpcbiAqIFNpbmNlIHdlIG5ldmVyIHVzZSBvdGhlciBkZXJpdmF0aW9ucyBmb3IgdXR4byBhZGRyZXNzIHNjcmlwdHMsIHRoZSBjbGFzc2VzIGRlZmluZWQgaGVyZSBvbmx5XG4gKiBhbGxvdyBleGFjdGx5IG9uZSBsZXZlbCBvZiBkZXJpdmF0aW9uLlxuICovXG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ2JpcDMyJztcblxuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBLZXlOYW1lID0gJ3VzZXInIHwgJ2JhY2t1cCcgfCAnYml0Z28nO1xuXG5leHBvcnQgZnVuY3Rpb24gZXFQdWJsaWNLZXkoYTogQklQMzJJbnRlcmZhY2UsIGI6IEJJUDMySW50ZXJmYWNlKTogYm9vbGVhbiB7XG4gIHJldHVybiBhLnB1YmxpY0tleS5lcXVhbHMoYi5wdWJsaWNLZXkpO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIFJvb3RXYWxsZXRLZXlzIGFuZCBEZXJpdmVkV2FsbGV0S2V5cy5cbiAqIEtleXMgY2FuIGJlIGVpdGhlciBwdWJsaWMga2V5cyBvciBwcml2YXRlIGtleXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWxsZXRLZXlzIHtcbiAgcHVibGljIHJlYWRvbmx5IHB1YmxpY0tleXM6IFRyaXBsZTxCdWZmZXI+O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gdHJpcGxlIC0gYmlwMzIga2V5IHRyaXBsZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHRyaXBsZTogVHJpcGxlPEJJUDMySW50ZXJmYWNlPikge1xuICAgIHRyaXBsZS5mb3JFYWNoKChhLCBpKSA9PiB7XG4gICAgICB0cmlwbGUuZm9yRWFjaCgoYiwgaikgPT4ge1xuICAgICAgICBpZiAoZXFQdWJsaWNLZXkoYSwgYikgJiYgaSAhPT0gaikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgd2FsbGV0IGtleXMgbXVzdCBiZSBkaXN0aW5jdGApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMucHVibGljS2V5cyA9IHRoaXMudHJpcGxlLm1hcCgoaykgPT4gay5wdWJsaWNLZXkpIGFzIFRyaXBsZTxCdWZmZXI+O1xuICB9XG5cbiAgZ2V0IHVzZXIoKTogQklQMzJJbnRlcmZhY2Uge1xuICAgIHJldHVybiB0aGlzLnRyaXBsZVswXTtcbiAgfVxuXG4gIGdldCBiYWNrdXAoKTogQklQMzJJbnRlcmZhY2Uge1xuICAgIHJldHVybiB0aGlzLnRyaXBsZVsxXTtcbiAgfVxuXG4gIGdldCBiaXRnbygpOiBCSVAzMkludGVyZmFjZSB7XG4gICAgcmV0dXJuIHRoaXMudHJpcGxlWzJdO1xuICB9XG59XG5cbi8qKlxuICogU2V0IG9mIFdhbGxldEtleXMgZGVyaXZlZCBmcm9tIFJvb3RXYWxsZXRLZXlzLiBTdWl0YWJsZSBmb3Igc2lnbmluZyB0cmFuc2FjdGlvbiBpbnB1dHMuXG4gKiBDb250YWlucyByZWZlcmVuY2UgdG8gdGhlIFJvb3RXYWxsZXRLZXlzIHRoaXMgd2FzIGRlcml2ZWQgZnJvbSBhcyB3ZWxsIGFzIHRoZSBwYXRocyB1c2VkXG4gKiBmb3IgZGVyaXZhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIERlcml2ZWRXYWxsZXRLZXlzIGV4dGVuZHMgV2FsbGV0S2V5cyB7XG4gIC8qKlxuICAgKiBAcGFyYW0gcGFyZW50IC0gd2FsbGV0IGtleXMgdG8gZGVyaXZlIGZyb21cbiAgICogQHBhcmFtIHBhdGhzIC0gcGF0aHMgdG8gZGVyaXZlIHdpdGhcbiAgICovXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJlbnQ6IFJvb3RXYWxsZXRLZXlzLCBwdWJsaWMgcGF0aHM6IFRyaXBsZTxzdHJpbmc+KSB7XG4gICAgc3VwZXIocGFyZW50LnRyaXBsZS5tYXAoKGssIGkpID0+IGsuZGVyaXZlUGF0aChwYXRoc1tpXSkpIGFzIFRyaXBsZTxCSVAzMkludGVyZmFjZT4pO1xuICB9XG59XG5cbi8qKlxuICogU2V0IG9mIHJvb3Qgd2FsbGV0IGtleXMsIHR5cGljYWxseSBpbnN0YW50aWF0ZWQgdXNpbmcgdGhlIHdhbGxldCB4cHViIHRyaXBsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJvb3RXYWxsZXRLZXlzIGV4dGVuZHMgV2FsbGV0S2V5cyB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0UHJlZml4ID0gJzAvMCc7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB0cmlwbGUgLSBiaXAzMiBrZXkgdHJpcGxlXG4gICAqIEBwYXJhbSBkZXJpdmF0aW9uUHJlZml4ZXMgLSBDZXJ0YWluIHYxIHdhbGxldHMgb3IgdGhlaXIgbWlncmF0ZWQgdjIgY291bnRlcnBhcnRzXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW4gaGF2ZSBhIG5vbnN0YW5kYXJkIHByZWZpeC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRyaXBsZTogVHJpcGxlPEJJUDMySW50ZXJmYWNlPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVyaXZhdGlvblByZWZpeGVzOiBUcmlwbGU8c3RyaW5nPiA9IFtcbiAgICAgIFJvb3RXYWxsZXRLZXlzLmRlZmF1bHRQcmVmaXgsXG4gICAgICBSb290V2FsbGV0S2V5cy5kZWZhdWx0UHJlZml4LFxuICAgICAgUm9vdFdhbGxldEtleXMuZGVmYXVsdFByZWZpeCxcbiAgICBdXG4gICkge1xuICAgIHN1cGVyKHRyaXBsZSk7XG5cbiAgICBkZXJpdmF0aW9uUHJlZml4ZXMuZm9yRWFjaCgocCkgPT4ge1xuICAgICAgaWYgKHAuc3RhcnRzV2l0aCgnLycpIHx8IHAuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRlcml2YXRpb24gcHJlZml4IG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIGEgc2xhc2hgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ga2V5XG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICogQHJldHVybiBmdWxsIGRlcml2YXRpb24gcGF0aCBmb3Iga2V5LCBpbmNsdWRpbmcga2V5LXNwZWNpZmljIHByZWZpeFxuICAgKi9cbiAgZ2V0RGVyaXZhdGlvblBhdGgoa2V5OiBCSVAzMkludGVyZmFjZSwgY2hhaW46IG51bWJlciwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmRlcml2YXRpb25QcmVmaXhlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBubyBkZXJpdmF0aW9uIHByZWZpeGVzYCk7XG4gICAgfVxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZGVyaXZhdGlvblByZWZpeGVzLmZpbmQoKHByZWZpeCwgaSkgPT4gZXFQdWJsaWNLZXkoa2V5LCB0aGlzLnRyaXBsZVtpXSkpO1xuICAgIGlmIChwcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBrZXkgbm90IGluIHdhbGxldEtleXNgKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke3ByZWZpeH0vJHtjaGFpbn0vJHtpbmRleH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICogQHJldHVybiB3YWxsZXRLZXlzIGZvciBhIHBhcnRpY3VsYXIgYWRkcmVzcyBpZGVudGlmaWVkIGJ5IChjaGFpbiwgaW5kZXgpXG4gICAqL1xuICBkZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYWluOiBudW1iZXIsIGluZGV4OiBudW1iZXIpOiBEZXJpdmVkV2FsbGV0S2V5cyB7XG4gICAgcmV0dXJuIG5ldyBEZXJpdmVkV2FsbGV0S2V5cyhcbiAgICAgIHRoaXMsXG4gICAgICB0aGlzLnRyaXBsZS5tYXAoKGspID0+IHRoaXMuZ2V0RGVyaXZhdGlvblBhdGgoaywgY2hhaW4sIGluZGV4KSkgYXMgVHJpcGxlPHN0cmluZz5cbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateWalletOutputForPsbt = exports.addWalletOutputToPsbt = void 0;
3
+ exports.addWalletOutputToPsbt = addWalletOutputToPsbt;
4
+ exports.updateWalletOutputForPsbt = updateWalletOutputForPsbt;
4
5
  const bitcoinjs_lib_1 = require("bitcoinjs-lib");
5
6
  const chains_1 = require("./chains");
6
7
  const outputScripts_1 = require("../outputScripts");
@@ -30,7 +31,6 @@ function addWalletOutputToPsbt(psbt, rootWalletKeys, chain, index, value) {
30
31
  }
31
32
  updateWalletOutputForPsbt(psbt, rootWalletKeys, psbt.data.outputs.length - 1, chain, index);
32
33
  }
33
- exports.addWalletOutputToPsbt = addWalletOutputToPsbt;
34
34
  /**
35
35
  * Update the wallet output with the required information when necessary. If the
36
36
  * information is there already, it will skip over it.
@@ -106,5 +106,4 @@ function updateWalletOutputForPsbt(psbt, rootWalletKeys, outputIndex, chain, ind
106
106
  }
107
107
  psbt.updateOutput(outputIndex, update);
108
108
  }
109
- exports.updateWalletOutputForPsbt = updateWalletOutputForPsbt;
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0T3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9XYWxsZXRPdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQXdDO0FBSXhDLHFDQUF5RDtBQUN6RCxvREFBd0g7QUFFeEg7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLElBQWMsRUFDZCxjQUE4QixFQUM5QixLQUFnQixFQUNoQixLQUFhLEVBQ2IsS0FBYTtJQUViLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkUsTUFBTSxVQUFVLEdBQUcsSUFBQSwyQkFBa0IsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxJQUFJLFVBQVUsS0FBSyxNQUFNLElBQUksVUFBVSxLQUFLLFlBQVksRUFBRTtRQUN4RCxNQUFNLE9BQU8sR0FDWCxVQUFVLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFBLGlDQUFpQixFQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSx1Q0FBdUIsRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDcEQ7U0FBTTtRQUNMLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSxzQ0FBc0IsRUFBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUNuQztJQUNELHlCQUF5QixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFP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O0FBQ3pDLENBQUM7QUF0RUQsOERBc0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFwcm9vdCB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0IHsgUHNidE91dHB1dFVwZGF0ZSB9IGZyb20gJ2JpcDE3NC9zcmMvbGliL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVXR4b1BzYnQgfSBmcm9tICcuLi9VdHhvUHNidCc7XG5pbXBvcnQgeyBSb290V2FsbGV0S2V5cyB9IGZyb20gJy4vV2FsbGV0S2V5cyc7XG5pbXBvcnQgeyBDaGFpbkNvZGUsIHNjcmlwdFR5cGVGb3JDaGFpbiB9IGZyb20gJy4vY2hhaW5zJztcbmltcG9ydCB7IGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMsIGNyZWF0ZVBheW1lbnRQMnRyLCBjcmVhdGVQYXltZW50UDJ0ck11c2lnMiwgdG9YT25seVB1YmxpY0tleSB9IGZyb20gJy4uL291dHB1dFNjcmlwdHMnO1xuXG4vKipcbiAqIEFkZCBhIHZlcmlmaWFibGUgd2FsbGV0IG91dHB1dCB0byB0aGUgUFNCVC4gVGhlIG91dHB1dCBhbmQgYWxsIGRhdGFcbiAqIG5lZWRlZCB0byB2ZXJpZnkgaXQgZnJvbSBwdWJsaWMga2V5cyBvbmx5IGFyZSBhZGRlZCB0byB0aGUgUFNCVC5cbiAqIFR5cGljYWxseSB0aGVzZSBhcmUgY2hhbmdlIG91dHB1dHMuXG4gKlxuICogQHBhcmFtIHBzYnQgdGhlIFBTQlQgdG8gYWRkIGNoYW5nZSBvdXRwdXQgdG9cbiAqIEBwYXJhbSByb290V2FsbGV0S2V5cyBrZXlzIHRoYXQgd2lsbCBiZSBhYmxlIHRvIHNwZW5kIHRoZSBvdXRwdXRcbiAqIEBwYXJhbSBjaGFpbiBjaGFpbiBjb2RlIHRvIHVzZSBmb3IgZGVyaXZpbmcgc2NyaXB0cyAoYW5kIHRvIGRldGVybWluZSBzY3JpcHRcbiAqICAgICAgICAgICAgICB0eXBlKSBjaGFpbiBpcyBhbiBBUEkgcGFyYW1ldGVyIGluIHRoZSBCaXRHbyBBUEksIGFuZCBtYXkgYmVcbiAqICAgICAgICAgICAgICBhbnkgdmFsaWQgQ2hhaW5Db2RlXG4gKiBAcGFyYW0gaW5kZXggZGVyaXZhdGlvbiBpbmRleCBmb3IgdGhlIGNoYW5nZSBhZGRyZXNzXG4gKiBAcGFyYW0gdmFsdWUgdmFsdWUgb2YgdGhlIGNoYW5nZSBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFdhbGxldE91dHB1dFRvUHNidChcbiAgcHNidDogVXR4b1BzYnQsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgY2hhaW46IENoYWluQ29kZSxcbiAgaW5kZXg6IG51bWJlcixcbiAgdmFsdWU6IGJpZ2ludFxuKTogdm9pZCB7XG4gIGNvbnN0IHdhbGxldEtleXMgPSByb290V2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYWluLCBpbmRleCk7XG4gIGNvbnN0IHNjcmlwdFR5cGUgPSBzY3JpcHRUeXBlRm9yQ2hhaW4oY2hhaW4pO1xuICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AydHInIHx8IHNjcmlwdFR5cGUgPT09ICdwMnRyTXVzaWcyJykge1xuICAgIGNvbnN0IHBheW1lbnQgPVxuICAgICAgc2NyaXB0VHlwZSA9PT0gJ3AydHInID8gY3JlYXRlUGF5bWVudFAydHIod2FsbGV0S2V5cy5wdWJsaWNLZXlzKSA6IGNyZWF0ZVBheW1lbnRQMnRyTXVzaWcyKHdhbGxldEtleXMucHVibGljS2V5cyk7XG4gICAgcHNidC5hZGRPdXRwdXQoeyBzY3JpcHQ6IHBheW1lbnQub3V0cHV0ISwgdmFsdWUgfSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgeyBzY3JpcHRQdWJLZXk6IHNjcmlwdCB9ID0gY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyh3YWxsZXRLZXlzLnB1YmxpY0tleXMsIHNjcmlwdFR5cGUpO1xuICAgIHBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0LCB2YWx1ZSB9KTtcbiAgfVxuICB1cGRhdGVXYWxsZXRPdXRwdXRGb3JQc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzLCBwc2J0LmRhdGEub3V0cHV0cy5sZW5ndGggLSAxLCBjaGFpbiwgaW5kZXgpO1xufVxuXG4vKipcbiAqIFVwZGF0ZSB0aGUgd2FsbGV0IG91dHB1dCB3aXRoIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiB3aGVuIG5lY2Vzc2FyeS4gSWYgdGhlXG4gKiBpbmZvcm1hdGlvbiBpcyB0aGVyZSBhbHJlYWR5LCBpdCB3aWxsIHNraXAgb3ZlciBpdC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgb3V0cHV0IHNjcmlwdCBhbmQgdmFsdWUgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0LlxuICpcbiAqIEBwYXJhbSBwc2J0IHRoZSBQU0JUIHRvIHVwZGF0ZSBjaGFuZ2Ugb3V0cHV0IGF0XG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXMga2V5cyB0aGF0IHdpbGwgYmUgYWJsZSB0byBzcGVuZCB0aGUgb3V0cHV0XG4gKiBAcGFyYW0gb3V0cHV0SW5kZXggb3V0cHV0IGluZGV4IHdoZXJlIHRvIHVwZGF0ZSB0aGUgb3V0cHV0XG4gKiBAcGFyYW0gY2hhaW4gY2hhaW4gY29kZSB0byB1c2UgZm9yIGRlcml2aW5nIHNjcmlwdHMgKGFuZCB0byBkZXRlcm1pbmUgc2NyaXB0XG4gKiAgICAgICAgICAgICAgdHlwZSkgY2hhaW4gaXMgYW4gQVBJIHBhcmFtZXRlciBpbiB0aGUgQml0R28gQVBJLCBhbmQgbWF5IGJlXG4gKiAgICAgICAgICAgICAgYW55IHZhbGlkIENoYWluQ29kZVxuICogQHBhcmFtIGluZGV4IGRlcml2YXRpb24gaW5kZXggZm9yIHRoZSBjaGFuZ2UgYWRkcmVzc1xuICogQHBhcmFtIHZhbHVlIHZhbHVlIG9mIHRoZSBjaGFuZ2Ugb3V0cHV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVXYWxsZXRPdXRwdXRGb3JQc2J0KFxuICBwc2J0OiBVdHhvUHNidCxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBvdXRwdXRJbmRleDogbnVtYmVyLFxuICBjaGFpbjogQ2hhaW5Db2RlLFxuICBpbmRleDogbnVtYmVyXG4pOiB2b2lkIHtcbiAgaWYgKHBzYnQuZGF0YS5vdXRwdXRzLmxlbmd0aCA8PSBvdXRwdXRJbmRleCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBvdXRwdXRJbmRleCAoJHtvdXRwdXRJbmRleH0pIGlzIHRvbyBsYXJnZSBmb3IgdGhlIG51bWJlciBvZiBvdXRwdXRzICgke3BzYnQuZGF0YS5vdXRwdXRzLmxlbmd0aH0pYFxuICAgICk7XG4gIH1cblxuICBjb25zdCBvdXRwdXRTY3JpcHQgPSBwc2J0LmdldE91dHB1dFNjcmlwdChvdXRwdXRJbmRleCk7XG5cbiAgY29uc3Qgd2FsbGV0S2V5cyA9IHJvb3RXYWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW4sIGluZGV4KTtcbiAgY29uc3Qgc2NyaXB0VHlwZSA9IHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbik7XG4gIGNvbnN0IG91dHB1dCA9IHBzYnQuZGF0YS5vdXRwdXRzW291dHB1dEluZGV4XTtcbiAgY29uc3QgdXBkYXRlOiBQc2J0T3V0cHV0VXBkYXRlID0ge307XG4gIGlmIChzY3JpcHRUeXBlID09PSAncDJ0cicgfHwgc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzInKSB7XG4gICAgY29uc3QgcGF5bWVudCA9XG4gICAgICBzY3JpcHRUeXBlID09PSAncDJ0cicgPyBjcmVhdGVQYXltZW50UDJ0cih3YWxsZXRLZXlzLnB1YmxpY0tleXMpIDogY3JlYXRlUGF5bWVudFAydHJNdXNpZzIod2FsbGV0S2V5cy5wdWJsaWNLZXlzKTtcbiAgICBpZiAoIXBheW1lbnQub3V0cHV0IHx8ICFwYXltZW50Lm91dHB1dC5lcXVhbHMob3V0cHV0U2NyaXB0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgdXBkYXRlIGEgcDJ0ciBvdXRwdXQgd2hlcmUgdGhlIHNjcmlwdHMgZG8gbm90IG1hdGNoIC0gRmFpbGluZy5gKTtcbiAgICB9XG4gICAgY29uc3QgYWxsTGVhZkhhc2hlcyA9IHBheW1lbnQucmVkZWVtcyEubWFwKChyKSA9PiB0YXByb290Lmhhc2hUYXBMZWFmKHIub3V0cHV0ISkpO1xuXG4gICAgaWYgKCFvdXRwdXQudGFwVHJlZSkge1xuICAgICAgdXBkYXRlLnRhcFRyZWUgPSBwYXltZW50LnRhcFRyZWU7XG4gICAgfVxuICAgIGlmICghb3V0cHV0LnRhcEludGVybmFsS2V5KSB7XG4gICAgICB1cGRhdGUudGFwSW50ZXJuYWxLZXkgPSBwYXltZW50LmludGVybmFsUHVia2V5O1xuICAgIH1cbiAgICBpZiAoIW91dHB1dC50YXBCaXAzMkRlcml2YXRpb24pIHtcbiAgICAgIHVwZGF0ZS50YXBCaXAzMkRlcml2YXRpb24gPSBbMCwgMSwgMl0ubWFwKChpZHgpID0+IHtcbiAgICAgICAgY29uc3QgcHVia2V5ID0gdG9YT25seVB1YmxpY0tleSh3YWxsZXRLZXlzLnRyaXBsZVtpZHhdLnB1YmxpY0tleSk7XG4gICAgICAgIGNvbnN0IGxlYWZIYXNoZXM6IEJ1ZmZlcltdID0gW107XG4gICAgICAgIHBheW1lbnQucmVkZWVtcyEuZm9yRWFjaCgociwgaWR4KSA9PiB7XG4gICAgICAgICAgaWYgKHIucHVia2V5cyEuZmluZCgocGspID0+IHBrLmVxdWFscyhwdWJrZXkpKSkge1xuICAgICAgICAgICAgbGVhZkhhc2hlcy5wdXNoKGFsbExlYWZIYXNoZXNbaWR4XSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsZWFmSGFzaGVzLFxuICAgICAgICAgIHB1YmtleSxcbiAgICAgICAgICBwYXRoOiB3YWxsZXRLZXlzLnBhdGhzW2lkeF0sXG4gICAgICAgICAgbWFzdGVyRmluZ2VycHJpbnQ6IHJvb3RXYWxsZXRLZXlzLnRyaXBsZVtpZHhdLmZpbmdlcnByaW50LFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHsgc2NyaXB0UHViS2V5LCB3aXRuZXNzU2NyaXB0LCByZWRlZW1TY3JpcHQgfSA9IGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMod2FsbGV0S2V5cy5wdWJsaWNLZXlzLCBzY3JpcHRUeXBlKTtcbiAgICBpZiAoIXNjcmlwdFB1YktleS5lcXVhbHMob3V0cHV0U2NyaXB0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgdXBkYXRlIGFuIG91dHB1dCB3aGVyZSB0aGUgc2NyaXB0cyBkbyBub3QgbWF0Y2ggLSBGYWlsaW5nLmApO1xuICAgIH1cbiAgICBpZiAoIW91dHB1dC5iaXAzMkRlcml2YXRpb24pIHtcbiAgICAgIHVwZGF0ZS5iaXAzMkRlcml2YXRpb24gPSBbMCwgMSwgMl0ubWFwKChpZHgpID0+ICh7XG4gICAgICAgIHB1YmtleTogd2FsbGV0S2V5cy50cmlwbGVbaWR4XS5wdWJsaWNLZXksXG4gICAgICAgIHBhdGg6IHdhbGxldEtleXMucGF0aHNbaWR4XSxcbiAgICAgICAgbWFzdGVyRmluZ2VycHJpbnQ6IHJvb3RXYWxsZXRLZXlzLnRyaXBsZVtpZHhdLmZpbmdlcnByaW50LFxuICAgICAgfSkpO1xuICAgIH1cbiAgICBpZiAoIW91dHB1dC53aXRuZXNzU2NyaXB0ICYmIHdpdG5lc3NTY3JpcHQpIHtcbiAgICAgIHVwZGF0ZS53aXRuZXNzU2NyaXB0ID0gd2l0bmVzc1NjcmlwdDtcbiAgICB9XG4gICAgaWYgKCFvdXRwdXQucmVkZWVtU2NyaXB0ICYmIHJlZGVlbVNjcmlwdCkge1xuICAgICAgdXBkYXRlLnJlZGVlbVNjcmlwdCA9IHJlZGVlbVNjcmlwdDtcbiAgICB9XG4gIH1cbiAgcHNidC51cGRhdGVPdXRwdXQob3V0cHV0SW5kZXgsIHVwZGF0ZSk7XG59XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0T3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9XYWxsZXRPdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFvQkEsc0RBa0JDO0FBaUJELDhEQXNFQztBQTdIRCxpREFBd0M7QUFJeEMscUNBQXlEO0FBQ3pELG9EQUF3SDtBQUV4SDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsSUFBYyxFQUNkLGNBQThCLEVBQzlCLEtBQWdCLEVBQ2hCLEtBQWEsRUFDYixLQUFhO0lBRWIsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RSxNQUFNLFVBQVUsR0FBRyxJQUFBLDJCQUFrQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLElBQUksVUFBVSxLQUFLLE1BQU0sSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDekQsTUFBTSxPQUFPLEdBQ1gsVUFBVSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBQSxpQ0FBaUIsRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsdUNBQXVCLEVBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BILElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFBLHNDQUFzQixFQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCx5QkFBeUIsQ0FB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RCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUN6QyxNQUFNLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0YXByb290IH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgeyBQc2J0T3V0cHV0VXBkYXRlIH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBVdHhvUHNidCB9IGZyb20gJy4uL1V0eG9Qc2J0JztcbmltcG9ydCB7IFJvb3RXYWxsZXRLZXlzIH0gZnJvbSAnLi9XYWxsZXRLZXlzJztcbmltcG9ydCB7IENoYWluQ29kZSwgc2NyaXB0VHlwZUZvckNoYWluIH0gZnJvbSAnLi9jaGFpbnMnO1xuaW1wb3J0IHsgY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMywgY3JlYXRlUGF5bWVudFAydHIsIGNyZWF0ZVBheW1lbnRQMnRyTXVzaWcyLCB0b1hPbmx5UHVibGljS2V5IH0gZnJvbSAnLi4vb3V0cHV0U2NyaXB0cyc7XG5cbi8qKlxuICogQWRkIGEgdmVyaWZpYWJsZSB3YWxsZXQgb3V0cHV0IHRvIHRoZSBQU0JULiBUaGUgb3V0cHV0IGFuZCBhbGwgZGF0YVxuICogbmVlZGVkIHRvIHZlcmlmeSBpdCBmcm9tIHB1YmxpYyBrZXlzIG9ubHkgYXJlIGFkZGVkIHRvIHRoZSBQU0JULlxuICogVHlwaWNhbGx5IHRoZXNlIGFyZSBjaGFuZ2Ugb3V0cHV0cy5cbiAqXG4gKiBAcGFyYW0gcHNidCB0aGUgUFNCVCB0byBhZGQgY2hhbmdlIG91dHB1dCB0b1xuICogQHBhcmFtIHJvb3RXYWxsZXRLZXlzIGtleXMgdGhhdCB3aWxsIGJlIGFibGUgdG8gc3BlbmQgdGhlIG91dHB1dFxuICogQHBhcmFtIGNoYWluIGNoYWluIGNvZGUgdG8gdXNlIGZvciBkZXJpdmluZyBzY3JpcHRzIChhbmQgdG8gZGV0ZXJtaW5lIHNjcmlwdFxuICogICAgICAgICAgICAgIHR5cGUpIGNoYWluIGlzIGFuIEFQSSBwYXJhbWV0ZXIgaW4gdGhlIEJpdEdvIEFQSSwgYW5kIG1heSBiZVxuICogICAgICAgICAgICAgIGFueSB2YWxpZCBDaGFpbkNvZGVcbiAqIEBwYXJhbSBpbmRleCBkZXJpdmF0aW9uIGluZGV4IGZvciB0aGUgY2hhbmdlIGFkZHJlc3NcbiAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSBvZiB0aGUgY2hhbmdlIG91dHB1dFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KFxuICBwc2J0OiBVdHhvUHNidCxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBjaGFpbjogQ2hhaW5Db2RlLFxuICBpbmRleDogbnVtYmVyLFxuICB2YWx1ZTogYmlnaW50XG4pOiB2b2lkIHtcbiAgY29uc3Qgd2FsbGV0S2V5cyA9IHJvb3RXYWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW4sIGluZGV4KTtcbiAgY29uc3Qgc2NyaXB0VHlwZSA9IHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbik7XG4gIGlmIChzY3JpcHRUeXBlID09PSAncDJ0cicgfHwgc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzInKSB7XG4gICAgY29uc3QgcGF5bWVudCA9XG4gICAgICBzY3JpcHRUeXBlID09PSAncDJ0cicgPyBjcmVhdGVQYXltZW50UDJ0cih3YWxsZXRLZXlzLnB1YmxpY0tleXMpIDogY3JlYXRlUGF5bWVudFAydHJNdXNpZzIod2FsbGV0S2V5cy5wdWJsaWNLZXlzKTtcbiAgICBwc2J0LmFkZE91dHB1dCh7IHNjcmlwdDogcGF5bWVudC5vdXRwdXQhLCB2YWx1ZSB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IHNjcmlwdFB1YktleTogc2NyaXB0IH0gPSBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzKHdhbGxldEtleXMucHVibGljS2V5cywgc2NyaXB0VHlwZSk7XG4gICAgcHNidC5hZGRPdXRwdXQoeyBzY3JpcHQsIHZhbHVlIH0pO1xuICB9XG4gIHVwZGF0ZVdhbGxldE91dHB1dEZvclBzYnQocHNidCwgcm9vdFdhbGxldEtleXMsIHBzYnQuZGF0YS5vdXRwdXRzLmxlbmd0aCAtIDEsIGNoYWluLCBpbmRleCk7XG59XG5cbi8qKlxuICogVXBkYXRlIHRoZSB3YWxsZXQgb3V0cHV0IHdpdGggdGhlIHJlcXVpcmVkIGluZm9ybWF0aW9uIHdoZW4gbmVjZXNzYXJ5LiBJZiB0aGVcbiAqIGluZm9ybWF0aW9uIGlzIHRoZXJlIGFscmVhZHksIGl0IHdpbGwgc2tpcCBvdmVyIGl0LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IHRoZSBvdXRwdXQgc2NyaXB0IGFuZCB2YWx1ZSBoYXZlIGFscmVhZHkgYmVlbiBzZXQuXG4gKlxuICogQHBhcmFtIHBzYnQgdGhlIFBTQlQgdG8gdXBkYXRlIGNoYW5nZSBvdXRwdXQgYXRcbiAqIEBwYXJhbSByb290V2FsbGV0S2V5cyBrZXlzIHRoYXQgd2lsbCBiZSBhYmxlIHRvIHNwZW5kIHRoZSBvdXRwdXRcbiAqIEBwYXJhbSBvdXRwdXRJbmRleCBvdXRwdXQgaW5kZXggd2hlcmUgdG8gdXBkYXRlIHRoZSBvdXRwdXRcbiAqIEBwYXJhbSBjaGFpbiBjaGFpbiBjb2RlIHRvIHVzZSBmb3IgZGVyaXZpbmcgc2NyaXB0cyAoYW5kIHRvIGRldGVybWluZSBzY3JpcHRcbiAqICAgICAgICAgICAgICB0eXBlKSBjaGFpbiBpcyBhbiBBUEkgcGFyYW1ldGVyIGluIHRoZSBCaXRHbyBBUEksIGFuZCBtYXkgYmVcbiAqICAgICAgICAgICAgICBhbnkgdmFsaWQgQ2hhaW5Db2RlXG4gKiBAcGFyYW0gaW5kZXggZGVyaXZhdGlvbiBpbmRleCBmb3IgdGhlIGNoYW5nZSBhZGRyZXNzXG4gKiBAcGFyYW0gdmFsdWUgdmFsdWUgb2YgdGhlIGNoYW5nZSBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVdhbGxldE91dHB1dEZvclBzYnQoXG4gIHBzYnQ6IFV0eG9Qc2J0LFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIG91dHB1dEluZGV4OiBudW1iZXIsXG4gIGNoYWluOiBDaGFpbkNvZGUsXG4gIGluZGV4OiBudW1iZXJcbik6IHZvaWQge1xuICBpZiAocHNidC5kYXRhLm91dHB1dHMubGVuZ3RoIDw9IG91dHB1dEluZGV4KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYG91dHB1dEluZGV4ICgke291dHB1dEluZGV4fSkgaXMgdG9vIGxhcmdlIGZvciB0aGUgbnVtYmVyIG9mIG91dHB1dHMgKCR7cHNidC5kYXRhLm91dHB1dHMubGVuZ3RofSlgXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG91dHB1dFNjcmlwdCA9IHBzYnQuZ2V0T3V0cHV0U2NyaXB0KG91dHB1dEluZGV4KTtcblxuICBjb25zdCB3YWxsZXRLZXlzID0gcm9vdFdhbGxldEtleXMuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbiwgaW5kZXgpO1xuICBjb25zdCBzY3JpcHRUeXBlID0gc2NyaXB0VHlwZUZvckNoYWluKGNoYWluKTtcbiAgY29uc3Qgb3V0cHV0ID0gcHNidC5kYXRhLm91dHB1dHNbb3V0cHV0SW5kZXhdO1xuICBjb25zdCB1cGRhdGU6IFBzYnRPdXRwdXRVcGRhdGUgPSB7fTtcbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMnRyJyB8fCBzY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicpIHtcbiAgICBjb25zdCBwYXltZW50ID1cbiAgICAgIHNjcmlwdFR5cGUgPT09ICdwMnRyJyA/IGNyZWF0ZVBheW1lbnRQMnRyKHdhbGxldEtleXMucHVibGljS2V5cykgOiBjcmVhdGVQYXltZW50UDJ0ck11c2lnMih3YWxsZXRLZXlzLnB1YmxpY0tleXMpO1xuICAgIGlmICghcGF5bWVudC5vdXRwdXQgfHwgIXBheW1lbnQub3V0cHV0LmVxdWFscyhvdXRwdXRTY3JpcHQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCB1cGRhdGUgYSBwMnRyIG91dHB1dCB3aGVyZSB0aGUgc2NyaXB0cyBkbyBub3QgbWF0Y2ggLSBGYWlsaW5nLmApO1xuICAgIH1cbiAgICBjb25zdCBhbGxMZWFmSGFzaGVzID0gcGF5bWVudC5yZWRlZW1zIS5tYXAoKHIpID0+IHRhcHJvb3QuaGFzaFRhcExlYWYoci5vdXRwdXQhKSk7XG5cbiAgICBpZiAoIW91dHB1dC50YXBUcmVlKSB7XG4gICAgICB1cGRhdGUudGFwVHJlZSA9IHBheW1lbnQudGFwVHJlZTtcbiAgICB9XG4gICAgaWYgKCFvdXRwdXQudGFwSW50ZXJuYWxLZXkpIHtcbiAgICAgIHVwZGF0ZS50YXBJbnRlcm5hbEtleSA9IHBheW1lbnQuaW50ZXJuYWxQdWJrZXk7XG4gICAgfVxuICAgIGlmICghb3V0cHV0LnRhcEJpcDMyRGVyaXZhdGlvbikge1xuICAgICAgdXBkYXRlLnRhcEJpcDMyRGVyaXZhdGlvbiA9IFswLCAxLCAyXS5tYXAoKGlkeCkgPT4ge1xuICAgICAgICBjb25zdCBwdWJrZXkgPSB0b1hPbmx5UHVibGljS2V5KHdhbGxldEtleXMudHJpcGxlW2lkeF0ucHVibGljS2V5KTtcbiAgICAgICAgY29uc3QgbGVhZkhhc2hlczogQnVmZmVyW10gPSBbXTtcbiAgICAgICAgcGF5bWVudC5yZWRlZW1zIS5mb3JFYWNoKChyLCBpZHgpID0+IHtcbiAgICAgICAgICBpZiAoci5wdWJrZXlzIS5maW5kKChwaykgPT4gcGsuZXF1YWxzKHB1YmtleSkpKSB7XG4gICAgICAgICAgICBsZWFmSGFzaGVzLnB1c2goYWxsTGVhZkhhc2hlc1tpZHhdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxlYWZIYXNoZXMsXG4gICAgICAgICAgcHVia2V5LFxuICAgICAgICAgIHBhdGg6IHdhbGxldEtleXMucGF0aHNbaWR4XSxcbiAgICAgICAgICBtYXN0ZXJGaW5nZXJwcmludDogcm9vdFdhbGxldEtleXMudHJpcGxlW2lkeF0uZmluZ2VycHJpbnQsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgeyBzY3JpcHRQdWJLZXksIHdpdG5lc3NTY3JpcHQsIHJlZGVlbVNjcmlwdCB9ID0gY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyh3YWxsZXRLZXlzLnB1YmxpY0tleXMsIHNjcmlwdFR5cGUpO1xuICAgIGlmICghc2NyaXB0UHViS2V5LmVxdWFscyhvdXRwdXRTY3JpcHQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCB1cGRhdGUgYW4gb3V0cHV0IHdoZXJlIHRoZSBzY3JpcHRzIGRvIG5vdCBtYXRjaCAtIEZhaWxpbmcuYCk7XG4gICAgfVxuICAgIGlmICghb3V0cHV0LmJpcDMyRGVyaXZhdGlvbikge1xuICAgICAgdXBkYXRlLmJpcDMyRGVyaXZhdGlvbiA9IFswLCAxLCAyXS5tYXAoKGlkeCkgPT4gKHtcbiAgICAgICAgcHVia2V5OiB3YWxsZXRLZXlzLnRyaXBsZVtpZHhdLnB1YmxpY0tleSxcbiAgICAgICAgcGF0aDogd2FsbGV0S2V5cy5wYXRoc1tpZHhdLFxuICAgICAgICBtYXN0ZXJGaW5nZXJwcmludDogcm9vdFdhbGxldEtleXMudHJpcGxlW2lkeF0uZmluZ2VycHJpbnQsXG4gICAgICB9KSk7XG4gICAgfVxuICAgIGlmICghb3V0cHV0LndpdG5lc3NTY3JpcHQgJiYgd2l0bmVzc1NjcmlwdCkge1xuICAgICAgdXBkYXRlLndpdG5lc3NTY3JpcHQgPSB3aXRuZXNzU2NyaXB0O1xuICAgIH1cbiAgICBpZiAoIW91dHB1dC5yZWRlZW1TY3JpcHQgJiYgcmVkZWVtU2NyaXB0KSB7XG4gICAgICB1cGRhdGUucmVkZWVtU2NyaXB0ID0gcmVkZWVtU2NyaXB0O1xuICAgIH1cbiAgfVxuICBwc2J0LnVwZGF0ZU91dHB1dChvdXRwdXRJbmRleCwgdXBkYXRlKTtcbn1cbiJdfQ==
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getWalletAddress = exports.getWalletOutputScripts = void 0;
3
+ exports.getWalletOutputScripts = getWalletOutputScripts;
4
+ exports.getWalletAddress = getWalletAddress;
4
5
  const __1 = require("../..");
5
6
  const __2 = require("..");
6
7
  const outputScripts_1 = require("../outputScripts");
7
8
  function getWalletOutputScripts(keys, chain, index) {
8
9
  return __2.outputScripts.createOutputScript2of3(keys.deriveForChainAndIndex(chain, index).publicKeys, (0, outputScripts_1.scriptTypeForChain)(chain));
9
10
  }
10
- exports.getWalletOutputScripts = getWalletOutputScripts;
11
11
  function getWalletAddress(keys, chain, index, network) {
12
12
  return __1.address.fromOutputScript(getWalletOutputScripts(keys, chain, index).scriptPubKey, network);
13
13
  }
14
- exports.getWalletAddress = getWalletAddress;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0U2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0U2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBeUM7QUFDekMsMEJBQThDO0FBRTlDLG9EQUF1RTtBQUV2RSxTQUFnQixzQkFBc0IsQ0FBQyxJQUFvQixFQUFFLEtBQWdCLEVBQUUsS0FBYTtJQUMxRixPQUFPLGlCQUFhLENBQUMsc0JBQXNCLENBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUNwRCxJQUFBLGtDQUFrQixFQUFDLEtBQUssQ0FBQyxDQUMxQixDQUFDO0FBQ0osQ0FBQztBQUxELHdEQUtDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBb0IsRUFBRSxLQUFnQixFQUFFLEtBQWEsRUFBRSxPQUFnQjtJQUN0RyxPQUFPLFdBQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwRyxDQUFDO0FBRkQsNENBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXR3b3JrLCBhZGRyZXNzIH0gZnJvbSAnLi4vLi4nO1xuaW1wb3J0IHsgQ2hhaW5Db2RlLCBvdXRwdXRTY3JpcHRzIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgUm9vdFdhbGxldEtleXMgfSBmcm9tICcuL1dhbGxldEtleXMnO1xuaW1wb3J0IHsgc2NyaXB0VHlwZUZvckNoYWluLCBTcGVuZGFibGVTY3JpcHQgfSBmcm9tICcuLi9vdXRwdXRTY3JpcHRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdhbGxldE91dHB1dFNjcmlwdHMoa2V5czogUm9vdFdhbGxldEtleXMsIGNoYWluOiBDaGFpbkNvZGUsIGluZGV4OiBudW1iZXIpOiBTcGVuZGFibGVTY3JpcHQge1xuICByZXR1cm4gb3V0cHV0U2NyaXB0cy5jcmVhdGVPdXRwdXRTY3JpcHQyb2YzKFxuICAgIGtleXMuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbiwgaW5kZXgpLnB1YmxpY0tleXMsXG4gICAgc2NyaXB0VHlwZUZvckNoYWluKGNoYWluKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0QWRkcmVzcyhrZXlzOiBSb290V2FsbGV0S2V5cywgY2hhaW46IENoYWluQ29kZSwgaW5kZXg6IG51bWJlciwgbmV0d29yazogTmV0d29yayk6IHN0cmluZyB7XG4gIHJldHVybiBhZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoZ2V0V2FsbGV0T3V0cHV0U2NyaXB0cyhrZXlzLCBjaGFpbiwgaW5kZXgpLnNjcmlwdFB1YktleSwgbmV0d29yayk7XG59XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0U2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0U2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLHdEQUtDO0FBRUQsNENBRUM7QUFkRCw2QkFBeUM7QUFDekMsMEJBQThDO0FBRTlDLG9EQUF1RTtBQUV2RSxTQUFnQixzQkFBc0IsQ0FBQyxJQUFvQixFQUFFLEtBQWdCLEVBQUUsS0FBYTtJQUMxRixPQUFPLGlCQUFhLENBQUMsc0JBQXNCLENBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUNwRCxJQUFBLGtDQUFrQixFQUFDLEtBQUssQ0FBQyxDQUMxQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLElBQW9CLEVBQUUsS0FBZ0IsRUFBRSxLQUFhLEVBQUUsT0FBZ0I7SUFDdEcsT0FBTyxXQUFPLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5ldHdvcmssIGFkZHJlc3MgfSBmcm9tICcuLi8uLic7XG5pbXBvcnQgeyBDaGFpbkNvZGUsIG91dHB1dFNjcmlwdHMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBSb290V2FsbGV0S2V5cyB9IGZyb20gJy4vV2FsbGV0S2V5cyc7XG5pbXBvcnQgeyBzY3JpcHRUeXBlRm9yQ2hhaW4sIFNwZW5kYWJsZVNjcmlwdCB9IGZyb20gJy4uL291dHB1dFNjcmlwdHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0T3V0cHV0U2NyaXB0cyhrZXlzOiBSb290V2FsbGV0S2V5cywgY2hhaW46IENoYWluQ29kZSwgaW5kZXg6IG51bWJlcik6IFNwZW5kYWJsZVNjcmlwdCB7XG4gIHJldHVybiBvdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoXG4gICAga2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYWluLCBpbmRleCkucHVibGljS2V5cyxcbiAgICBzY3JpcHRUeXBlRm9yQ2hhaW4oY2hhaW4pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXYWxsZXRBZGRyZXNzKGtleXM6IFJvb3RXYWxsZXRLZXlzLCBjaGFpbjogQ2hhaW5Db2RlLCBpbmRleDogbnVtYmVyLCBuZXR3b3JrOiBOZXR3b3JrKTogc3RyaW5nIHtcbiAgcmV0dXJuIGFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChnZXRXYWxsZXRPdXRwdXRTY3JpcHRzKGtleXMsIGNoYWluLCBpbmRleCkuc2NyaXB0UHViS2V5LCBuZXR3b3JrKTtcbn1cbiJdfQ==
@@ -44,4 +44,4 @@ class WalletUnspentSigner {
44
44
  }
45
45
  }
46
46
  exports.WalletUnspentSigner = WalletUnspentSigner;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0VW5zcGVudFNpZ25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0VW5zcGVudFNpZ25lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2Q0FBMEY7QUFHMUYsTUFBYSxtQkFBbUI7SUFHOUIsTUFBTSxDQUFDLElBQUksQ0FDVCxVQUEwQixFQUMxQixNQUFzQixFQUN0QixRQUF3QjtRQUV4QixPQUFPLElBQUksbUJBQW1CLENBQWlCLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUtELFlBQ0UsVUFBK0MsRUFDeEMsTUFBc0IsRUFDdEIsUUFBd0I7UUFEeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFFL0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzdCLFVBQVUsR0FBRyxJQUFJLDJCQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHdCQUFXLEVBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUUsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7U0FDbEQ7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHdCQUFXLEVBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbEYsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQWUsQ0FBQztRQUVsQyxJQUFJLElBQUEsd0JBQVcsRUFBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxzQkFBc0IsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUNqRCxJQUFJLElBQUksQ0FBQyxVQUFVLFlBQVksOEJBQWlCLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLDJCQUFjLEVBQUU7WUFDN0MsT0FBTyxJQUFJLG1CQUFtQixDQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUNwRixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ3pGLENBQUM7U0FDSDtRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBN0RELGtEQTZEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnYmlwMzInO1xuXG5pbXBvcnQgeyBEZXJpdmVkV2FsbGV0S2V5cywgZXFQdWJsaWNLZXksIFJvb3RXYWxsZXRLZXlzLCBXYWxsZXRLZXlzIH0gZnJvbSAnLi9XYWxsZXRLZXlzJztcbmltcG9ydCB7IFRyaXBsZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIFdhbGxldFVuc3BlbnRTaWduZXI8VCBleHRlbmRzIFdhbGxldEtleXM+IHtcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldEtleXM6IFQ7XG5cbiAgc3RhdGljIGZyb20oXG4gICAgd2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gICAgc2lnbmVyOiBCSVAzMkludGVyZmFjZSxcbiAgICBjb3NpZ25lcjogQklQMzJJbnRlcmZhY2VcbiAgKTogV2FsbGV0VW5zcGVudFNpZ25lcjxSb290V2FsbGV0S2V5cz4ge1xuICAgIHJldHVybiBuZXcgV2FsbGV0VW5zcGVudFNpZ25lcjxSb290V2FsbGV0S2V5cz4od2FsbGV0S2V5cywgc2lnbmVyLCBjb3NpZ25lcik7XG4gIH1cblxuICByZWFkb25seSBzaWduZXJJbmRleDtcbiAgcmVhZG9ubHkgY29zaWduZXJJbmRleDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB3YWxsZXRLZXlzOiBXYWxsZXRLZXlzIHwgVHJpcGxlPEJJUDMySW50ZXJmYWNlPixcbiAgICBwdWJsaWMgc2lnbmVyOiBCSVAzMkludGVyZmFjZSxcbiAgICBwdWJsaWMgY29zaWduZXI6IEJJUDMySW50ZXJmYWNlXG4gICkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHdhbGxldEtleXMpKSB7XG4gICAgICB3YWxsZXRLZXlzID0gbmV3IFJvb3RXYWxsZXRLZXlzKHdhbGxldEtleXMpO1xuICAgIH1cbiAgICB0aGlzLnNpZ25lckluZGV4ID0gd2FsbGV0S2V5cy50cmlwbGUuZmluZEluZGV4KChrKSA9PiBlcVB1YmxpY0tleShrLCBzaWduZXIpKTtcbiAgICBpZiAodGhpcy5zaWduZXJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHNpZ25lciBub3QgcGFydCBvZiB3YWxsZXRLZXlzYCk7XG4gICAgfVxuICAgIHRoaXMuY29zaWduZXJJbmRleCA9IHdhbGxldEtleXMudHJpcGxlLmZpbmRJbmRleCgoaykgPT4gZXFQdWJsaWNLZXkoaywgY29zaWduZXIpKTtcbiAgICBpZiAodGhpcy5jb3NpZ25lckluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgY29zaWduZXIgbm90IHBhcnQgb2Ygd2FsbGV0S2V5c2ApO1xuICAgIH1cblxuICAgIHRoaXMud2FsbGV0S2V5cyA9IHdhbGxldEtleXMgYXMgVDtcblxuICAgIGlmIChlcVB1YmxpY0tleShzaWduZXIsIGNvc2lnbmVyKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduZXIgbXVzdCBub3QgZXF1YWwgY29zaWduZXJgKTtcbiAgICB9XG4gICAgaWYgKHNpZ25lci5pc05ldXRlcmVkKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgc2lnbmVyIG11c3QgaGF2ZSBwcml2YXRlIGtleWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gY2hhaW5cbiAgICogQHBhcmFtIGluZGV4XG4gICAqIEByZXR1cm4gV2FsbGV0VW5zcGVudFNpZ25lciB0aGF0IGNvbnRhaW5zIGtleXMgZm9yIGdlbmVyYXRpbmcgb3V0cHV0IHNjcmlwdHMgYW5kIHNpZ25hdHVyZXMuXG4gICAqL1xuICBkZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYWluOiBudW1iZXIsIGluZGV4OiBudW1iZXIpOiBXYWxsZXRVbnNwZW50U2lnbmVyPERlcml2ZWRXYWxsZXRLZXlzPiB7XG4gICAgaWYgKHRoaXMud2FsbGV0S2V5cyBpbnN0YW5jZW9mIERlcml2ZWRXYWxsZXRLZXlzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBkZXJpdmUgYWdhaW4gZnJvbSBEZXJpdmVkV2FsbGV0S2V5c2ApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLndhbGxldEtleXMgaW5zdGFuY2VvZiBSb290V2FsbGV0S2V5cykge1xuICAgICAgcmV0dXJuIG5ldyBXYWxsZXRVbnNwZW50U2lnbmVyKFxuICAgICAgICB0aGlzLndhbGxldEtleXMuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbiwgaW5kZXgpLFxuICAgICAgICB0aGlzLnNpZ25lci5kZXJpdmVQYXRoKHRoaXMud2FsbGV0S2V5cy5nZXREZXJpdmF0aW9uUGF0aCh0aGlzLnNpZ25lciwgY2hhaW4sIGluZGV4KSksXG4gICAgICAgIHRoaXMuY29zaWduZXIuZGVyaXZlUGF0aCh0aGlzLndhbGxldEtleXMuZ2V0RGVyaXZhdGlvblBhdGgodGhpcy5jb3NpZ25lciwgY2hhaW4sIGluZGV4KSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHN0YXRlYCk7XG4gIH1cbn1cbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0VW5zcGVudFNpZ25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0VW5zcGVudFNpZ25lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2Q0FBMEY7QUFHMUYsTUFBYSxtQkFBbUI7SUFHOUIsTUFBTSxDQUFDLElBQUksQ0FDVCxVQUEwQixFQUMxQixNQUFzQixFQUN0QixRQUF3QjtRQUV4QixPQUFPLElBQUksbUJBQW1CLENBQWlCLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUtELFlBQ0UsVUFBK0MsRUFDeEMsTUFBc0IsRUFDdEIsUUFBd0I7UUFEeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFFL0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDOUIsVUFBVSxHQUFHLElBQUksMkJBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSx3QkFBVyxFQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsd0JBQVcsRUFBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNsRixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQWUsQ0FBQztRQUVsQyxJQUFJLElBQUEsd0JBQVcsRUFBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHNCQUFzQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksSUFBSSxDQUFDLFVBQVUsWUFBWSw4QkFBaUIsRUFBRSxDQUFDO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLDJCQUFjLEVBQUUsQ0FBQztZQUM5QyxPQUFPLElBQUksbUJBQW1CLENBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQ3BGLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDekYsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQTdERCxrREE2REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ2JpcDMyJztcblxuaW1wb3J0IHsgRGVyaXZlZFdhbGxldEtleXMsIGVxUHVibGljS2V5LCBSb290V2FsbGV0S2V5cywgV2FsbGV0S2V5cyB9IGZyb20gJy4vV2FsbGV0S2V5cyc7XG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRVbnNwZW50U2lnbmVyPFQgZXh0ZW5kcyBXYWxsZXRLZXlzPiB7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRLZXlzOiBUO1xuXG4gIHN0YXRpYyBmcm9tKFxuICAgIHdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICAgIHNpZ25lcjogQklQMzJJbnRlcmZhY2UsXG4gICAgY29zaWduZXI6IEJJUDMySW50ZXJmYWNlXG4gICk6IFdhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+IHtcbiAgICByZXR1cm4gbmV3IFdhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+KHdhbGxldEtleXMsIHNpZ25lciwgY29zaWduZXIpO1xuICB9XG5cbiAgcmVhZG9ubHkgc2lnbmVySW5kZXg7XG4gIHJlYWRvbmx5IGNvc2lnbmVySW5kZXg7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgd2FsbGV0S2V5czogV2FsbGV0S2V5cyB8IFRyaXBsZTxCSVAzMkludGVyZmFjZT4sXG4gICAgcHVibGljIHNpZ25lcjogQklQMzJJbnRlcmZhY2UsXG4gICAgcHVibGljIGNvc2lnbmVyOiBCSVAzMkludGVyZmFjZVxuICApIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh3YWxsZXRLZXlzKSkge1xuICAgICAgd2FsbGV0S2V5cyA9IG5ldyBSb290V2FsbGV0S2V5cyh3YWxsZXRLZXlzKTtcbiAgICB9XG4gICAgdGhpcy5zaWduZXJJbmRleCA9IHdhbGxldEtleXMudHJpcGxlLmZpbmRJbmRleCgoaykgPT4gZXFQdWJsaWNLZXkoaywgc2lnbmVyKSk7XG4gICAgaWYgKHRoaXMuc2lnbmVySW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduZXIgbm90IHBhcnQgb2Ygd2FsbGV0S2V5c2ApO1xuICAgIH1cbiAgICB0aGlzLmNvc2lnbmVySW5kZXggPSB3YWxsZXRLZXlzLnRyaXBsZS5maW5kSW5kZXgoKGspID0+IGVxUHVibGljS2V5KGssIGNvc2lnbmVyKSk7XG4gICAgaWYgKHRoaXMuY29zaWduZXJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvc2lnbmVyIG5vdCBwYXJ0IG9mIHdhbGxldEtleXNgKTtcbiAgICB9XG5cbiAgICB0aGlzLndhbGxldEtleXMgPSB3YWxsZXRLZXlzIGFzIFQ7XG5cbiAgICBpZiAoZXFQdWJsaWNLZXkoc2lnbmVyLCBjb3NpZ25lcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgc2lnbmVyIG11c3Qgbm90IGVxdWFsIGNvc2lnbmVyYCk7XG4gICAgfVxuICAgIGlmIChzaWduZXIuaXNOZXV0ZXJlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHNpZ25lciBtdXN0IGhhdmUgcHJpdmF0ZSBrZXlgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKiBAcmV0dXJuIFdhbGxldFVuc3BlbnRTaWduZXIgdGhhdCBjb250YWlucyBrZXlzIGZvciBnZW5lcmF0aW5nIG91dHB1dCBzY3JpcHRzIGFuZCBzaWduYXR1cmVzLlxuICAgKi9cbiAgZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbjogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogV2FsbGV0VW5zcGVudFNpZ25lcjxEZXJpdmVkV2FsbGV0S2V5cz4ge1xuICAgIGlmICh0aGlzLndhbGxldEtleXMgaW5zdGFuY2VvZiBEZXJpdmVkV2FsbGV0S2V5cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZGVyaXZlIGFnYWluIGZyb20gRGVyaXZlZFdhbGxldEtleXNgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy53YWxsZXRLZXlzIGluc3RhbmNlb2YgUm9vdFdhbGxldEtleXMpIHtcbiAgICAgIHJldHVybiBuZXcgV2FsbGV0VW5zcGVudFNpZ25lcihcbiAgICAgICAgdGhpcy53YWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW4sIGluZGV4KSxcbiAgICAgICAgdGhpcy5zaWduZXIuZGVyaXZlUGF0aCh0aGlzLndhbGxldEtleXMuZ2V0RGVyaXZhdGlvblBhdGgodGhpcy5zaWduZXIsIGNoYWluLCBpbmRleCkpLFxuICAgICAgICB0aGlzLmNvc2lnbmVyLmRlcml2ZVBhdGgodGhpcy53YWxsZXRLZXlzLmdldERlcml2YXRpb25QYXRoKHRoaXMuY29zaWduZXIsIGNoYWluLCBpbmRleCkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBzdGF0ZWApO1xuICB9XG59XG4iXX0=
@@ -1,6 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSegwit = exports.isInternalChainCode = exports.isExternalChainCode = exports.getInternalChainCode = exports.getExternalChainCode = exports.scriptTypeForChain = exports.toChainPair = exports.isChainCode = exports.chainCodes = exports.chainCodesP2trMusig2 = exports.chainCodesP2tr = exports.chainCodesP2wsh = exports.chainCodesP2shP2wsh = exports.chainCodesP2sh = void 0;
3
+ exports.chainCodes = exports.chainCodesP2trMusig2 = exports.chainCodesP2tr = exports.chainCodesP2wsh = exports.chainCodesP2shP2wsh = exports.chainCodesP2sh = void 0;
4
+ exports.isChainCode = isChainCode;
5
+ exports.toChainPair = toChainPair;
6
+ exports.scriptTypeForChain = scriptTypeForChain;
7
+ exports.getExternalChainCode = getExternalChainCode;
8
+ exports.getInternalChainCode = getInternalChainCode;
9
+ exports.isExternalChainCode = isExternalChainCode;
10
+ exports.isInternalChainCode = isInternalChainCode;
11
+ exports.isSegwit = isSegwit;
4
12
  /**
5
13
  * All valid chain codes
6
14
  */
@@ -19,7 +27,6 @@ exports.chainCodes = [
19
27
  function isChainCode(n) {
20
28
  return exports.chainCodes.includes(n);
21
29
  }
22
- exports.isChainCode = isChainCode;
23
30
  const map = new Map([
24
31
  ['p2sh', exports.chainCodesP2sh],
25
32
  ['p2shP2wsh', exports.chainCodesP2shP2wsh],
@@ -49,7 +56,6 @@ function toChainPair(v) {
49
56
  }
50
57
  return pair;
51
58
  }
52
- exports.toChainPair = toChainPair;
53
59
  /**
54
60
  * @return ScriptType2Of3 for input
55
61
  */
@@ -61,35 +67,30 @@ function scriptTypeForChain(chain) {
61
67
  }
62
68
  throw new Error(`invalid chain ${chain}`);
63
69
  }
64
- exports.scriptTypeForChain = scriptTypeForChain;
65
70
  /**
66
71
  * @return chain code intended for external addresses
67
72
  */
68
73
  function getExternalChainCode(v) {
69
74
  return toChainPair(v)[0];
70
75
  }
71
- exports.getExternalChainCode = getExternalChainCode;
72
76
  /**
73
77
  * @return chain code intended for change outputs
74
78
  */
75
79
  function getInternalChainCode(v) {
76
80
  return toChainPair(v)[1];
77
81
  }
78
- exports.getInternalChainCode = getInternalChainCode;
79
82
  /**
80
83
  * @return true iff chain code is external
81
84
  */
82
85
  function isExternalChainCode(v) {
83
86
  return toChainPair(v).indexOf(v) === 0;
84
87
  }
85
- exports.isExternalChainCode = isExternalChainCode;
86
88
  /**
87
89
  * @return true iff chain code is internal
88
90
  */
89
91
  function isInternalChainCode(v) {
90
92
  return toChainPair(v).indexOf(v) === 1;
91
93
  }
92
- exports.isInternalChainCode = isInternalChainCode;
93
94
  /**
94
95
  * @return true iff chain code is a segwit address
95
96
  */
@@ -102,5 +103,4 @@ function isSegwit(v) {
102
103
  ];
103
104
  return segwitCodes.includes(v);
104
105
  }
105
- exports.isSegwit = isSegwit;
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9jaGFpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBYUE7O0dBRUc7QUFDVSxRQUFBLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQVUsQ0FBQztBQUNqQyxRQUFBLG1CQUFtQixHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBVSxDQUFDO0FBQ3hDLFFBQUEsZUFBZSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBVSxDQUFDO0FBQ3BDLFFBQUEsY0FBYyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBVSxDQUFDO0FBQ25DLFFBQUEsb0JBQW9CLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFVLENBQUM7QUFDekMsUUFBQSxVQUFVLEdBQUc7SUFDeEIsR0FBRyxzQkFBYztJQUNqQixHQUFHLDJCQUFtQjtJQUN0QixHQUFHLHVCQUFlO0lBQ2xCLEdBQUcsc0JBQWM7SUFDakIsR0FBRyw0QkFBb0I7Q0FDeEIsQ0FBQztBQUVGLFNBQWdCLFdBQVcsQ0FBQyxDQUFVO0lBQ3BDLE9BQU8sa0JBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBYyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUZELGtDQUVDO0FBUUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQ2pCO0lBQ0UsQ0FBQyxNQUFNLEVBQUUsc0JBQWMsQ0FBQztJQUN4QixDQUFDLFdBQVcsRUFBRSwyQkFBbUIsQ0FBQztJQUNsQyxDQUFDLE9BQU8sRUFBRSx1QkFBZSxDQUFDO0lBQzFCLENBQUMsTUFBTSxFQUFFLHNCQUFjLENBQUM7SUFDeEIsQ0FBQyxZQUFZLEVBQUUsNEJBQW9CLENBQUM7Q0FDckMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFtQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFrQixDQUFDLENBQUMsQ0FDNUUsQ0FBQztBQUVGLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUVoQzs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxDQUE2QztJQUN2RSxJQUFJLElBQUksQ0FBQztJQUNULElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNwQixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBa0IsQ0FBQyxFQUFFO1lBQ3RDLElBQUksR0FBRyxDQUFDLENBQUM7U0FDVjtLQUNGO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDekIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbkI7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtRQUN6QixJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3pDO0lBQ0QsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNULE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDM0M7SUFDRCxPQUFPLElBQXFCLENBQUM7QUFDL0IsQ0FBQztBQWpCRCxrQ0FpQkM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLEtBQWdCO0lBQ2pELEtBQUssTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sVUFBVSxDQUFDO1NBQ25CO0tBQ0Y7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFQRCxnREFPQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsQ0FBNkM7SUFDaEYsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUZELG9EQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxDQUE2QztJQUNoRixPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRkQsb0RBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLENBQVk7SUFDOUMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRkQsa0RBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLENBQVk7SUFDOUMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRkQsa0RBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxDQUFZO0lBQ25DLE1BQU0sV0FBVyxHQUFnQjtRQUMvQixHQUFHLDJCQUFtQjtRQUN0QixHQUFHLHVCQUFlO1FBQ2xCLEdBQUcsc0JBQWM7UUFDakIsR0FBRyw0QkFBb0I7S0FDeEIsQ0FBQztJQUNGLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBUkQsNEJBUUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmluZXMgQml0R28gbWFwcGluZ3MgYmV0d2VlbiBiaXAzMiBkZXJpdmF0aW9uIHBhdGggYW5kIHNjcmlwdCB0eXBlLlxuICpcbiAqIFRoZSBzY3JpcHRzIGZvciBhIEJpdEdvIHdhbGxldCBhZGRyZXNzIGFyZSBkZWZpbmVkIGJ5IHRoZWlyIGRlcml2YXRpb24gcGF0aC5cbiAqXG4gKiBUaGUgZGVyaXZhdGlvbiBwYXRoIGhhcyB0aGUgZm9ybWF0IGAwLzAvJHtjaGFpbn0vJHtpbmRleH1gIChpbiByYXJlIGNhc2VzIHRoZSBwcmVmaXggaXMgbm90IDAvMClcbiAqXG4gKiBUaGUgYWRkcmVzcyBzY3JpcHQgdHlwZSAoU2NyaXB0VHlwZTJPZjMpIGlzIGRlZmluZWQgYnkgdGhlIGBjaGFpbmAgcGFyYW1ldGVyLlxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBtYXBwaW5nIGJldHdlZW4gY2hhaW4gcGFyYW1ldGVyIGFuZCBhZGRyZXNzIHR5cGUuXG4gKi9cbmltcG9ydCB7IFNjcmlwdFR5cGUyT2YzIH0gZnJvbSAnLi4vb3V0cHV0U2NyaXB0cyc7XG5cbi8qKlxuICogQWxsIHZhbGlkIGNoYWluIGNvZGVzXG4gKi9cbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJzaCA9IFswLCAxXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJzaFAyd3NoID0gWzEwLCAxMV0gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgY2hhaW5Db2Rlc1Ayd3NoID0gWzIwLCAyMV0gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgY2hhaW5Db2Rlc1AydHIgPSBbMzAsIDMxXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJ0ck11c2lnMiA9IFs0MCwgNDFdIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IGNoYWluQ29kZXMgPSBbXG4gIC4uLmNoYWluQ29kZXNQMnNoLFxuICAuLi5jaGFpbkNvZGVzUDJzaFAyd3NoLFxuICAuLi5jaGFpbkNvZGVzUDJ3c2gsXG4gIC4uLmNoYWluQ29kZXNQMnRyLFxuICAuLi5jaGFpbkNvZGVzUDJ0ck11c2lnMixcbl07XG5leHBvcnQgdHlwZSBDaGFpbkNvZGUgPSAodHlwZW9mIGNoYWluQ29kZXMpW251bWJlcl07XG5leHBvcnQgZnVuY3Rpb24gaXNDaGFpbkNvZGUobjogdW5rbm93bik6IG4gaXMgQ2hhaW5Db2RlIHtcbiAgcmV0dXJuIGNoYWluQ29kZXMuaW5jbHVkZXMobiBhcyBDaGFpbkNvZGUpO1xufVxuXG4vKipcbiAqIEEgc2NyaXB0IHR5cGUgbWFwcyB0byB0d28gQ2hhaW5Db2RlczpcbiAqIEV4dGVybmFsIGFkZHJlc3NlcyBhcmUgaW50ZW5kZWQgZm9yIGRlcG9zaXRzLCBpbnRlcm5hbCBhZGRyZXNzZXMgYXJlIGludGVuZGVkIGZvciBjaGFuZ2Ugb3V0cHV0cy5cbiAqL1xuZXhwb3J0IHR5cGUgQ2hhaW5Db2RlUGFpciA9IFJlYWRvbmx5PFtleHRlcm5hbDogQ2hhaW5Db2RlLCBpbnRlcm5hbDogQ2hhaW5Db2RlXT47XG5cbmNvbnN0IG1hcCA9IG5ldyBNYXA8U2NyaXB0VHlwZTJPZjMsIENoYWluQ29kZVBhaXI+KFxuICBbXG4gICAgWydwMnNoJywgY2hhaW5Db2Rlc1Ayc2hdLFxuICAgIFsncDJzaFAyd3NoJywgY2hhaW5Db2Rlc1Ayc2hQMndzaF0sXG4gICAgWydwMndzaCcsIGNoYWluQ29kZXNQMndzaF0sXG4gICAgWydwMnRyJywgY2hhaW5Db2Rlc1AydHJdLFxuICAgIFsncDJ0ck11c2lnMicsIGNoYWluQ29kZXNQMnRyTXVzaWcyXSxcbiAgXS5tYXAoKFtrLCB2XSkgPT4gW2sgYXMgU2NyaXB0VHlwZTJPZjMsIE9iamVjdC5mcmVlemUodikgYXMgQ2hhaW5Db2RlUGFpcl0pXG4pO1xuXG5jb25zdCBwYWlycyA9IFsuLi5tYXAudmFsdWVzKCldO1xuXG4vKipcbiAqIEByZXR1cm4gQ2hhaW5Db2RlUGFpciBmb3IgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ2hhaW5QYWlyKHY6IENoYWluQ29kZVBhaXIgfCBDaGFpbkNvZGUgfCBTY3JpcHRUeXBlMk9mMyk6IENoYWluQ29kZVBhaXIge1xuICBsZXQgcGFpcjtcbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICBpZiAocGFpcnMuaW5jbHVkZXModiBhcyBDaGFpbkNvZGVQYWlyKSkge1xuICAgICAgcGFpciA9IHY7XG4gICAgfVxuICB9XG4gIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcbiAgICBwYWlyID0gbWFwLmdldCh2KTtcbiAgfVxuICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB7XG4gICAgcGFpciA9IHBhaXJzLmZpbmQoKHApID0+IHAuaW5jbHVkZXModikpO1xuICB9XG4gIGlmICghcGFpcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8gcGFpciBmb3IgaW5wdXQgJHt2fWApO1xuICB9XG4gIHJldHVybiBwYWlyIGFzIENoYWluQ29kZVBhaXI7XG59XG5cbi8qKlxuICogQHJldHVybiBTY3JpcHRUeXBlMk9mMyBmb3IgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbjogQ2hhaW5Db2RlKTogU2NyaXB0VHlwZTJPZjMge1xuICBmb3IgKGNvbnN0IFtzY3JpcHRUeXBlLCBwYWlyXSBvZiBtYXAuZW50cmllcygpKSB7XG4gICAgaWYgKHBhaXIuaW5jbHVkZXMoY2hhaW4pKSB7XG4gICAgICByZXR1cm4gc2NyaXB0VHlwZTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGNoYWluICR7Y2hhaW59YCk7XG59XG5cbi8qKlxuICogQHJldHVybiBjaGFpbiBjb2RlIGludGVuZGVkIGZvciBleHRlcm5hbCBhZGRyZXNzZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVybmFsQ2hhaW5Db2RlKHY6IENoYWluQ29kZVBhaXIgfCBTY3JpcHRUeXBlMk9mMyB8IENoYWluQ29kZSk6IENoYWluQ29kZSB7XG4gIHJldHVybiB0b0NoYWluUGFpcih2KVswXTtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIGNoYWluIGNvZGUgaW50ZW5kZWQgZm9yIGNoYW5nZSBvdXRwdXRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENoYWluQ29kZSh2OiBDaGFpbkNvZGVQYWlyIHwgU2NyaXB0VHlwZTJPZjMgfCBDaGFpbkNvZGUpOiBDaGFpbkNvZGUge1xuICByZXR1cm4gdG9DaGFpblBhaXIodilbMV07XG59XG5cbi8qKlxuICogQHJldHVybiB0cnVlIGlmZiBjaGFpbiBjb2RlIGlzIGV4dGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsQ2hhaW5Db2RlKHY6IENoYWluQ29kZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdG9DaGFpblBhaXIodikuaW5kZXhPZih2KSA9PT0gMDtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHRydWUgaWZmIGNoYWluIGNvZGUgaXMgaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJuYWxDaGFpbkNvZGUodjogQ2hhaW5Db2RlKTogYm9vbGVhbiB7XG4gIHJldHVybiB0b0NoYWluUGFpcih2KS5pbmRleE9mKHYpID09PSAxO1xufVxuXG4vKipcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgY2hhaW4gY29kZSBpcyBhIHNlZ3dpdCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlZ3dpdCh2OiBDaGFpbkNvZGUpOiBib29sZWFuIHtcbiAgY29uc3Qgc2Vnd2l0Q29kZXM6IENoYWluQ29kZVtdID0gW1xuICAgIC4uLmNoYWluQ29kZXNQMnNoUDJ3c2gsXG4gICAgLi4uY2hhaW5Db2Rlc1Ayd3NoLFxuICAgIC4uLmNoYWluQ29kZXNQMnRyLFxuICAgIC4uLmNoYWluQ29kZXNQMnRyTXVzaWcyLFxuICBdO1xuICByZXR1cm4gc2Vnd2l0Q29kZXMuaW5jbHVkZXModik7XG59XG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9jaGFpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNkJBLGtDQUVDO0FBdUJELGtDQWlCQztBQUtELGdEQU9DO0FBS0Qsb0RBRUM7QUFLRCxvREFFQztBQUtELGtEQUVDO0FBS0Qsa0RBRUM7QUFLRCw0QkFRQztBQS9HRDs7R0FFRztBQUNVLFFBQUEsY0FBYyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBVSxDQUFDO0FBQ2pDLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFVLENBQUM7QUFDeEMsUUFBQSxlQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFVLENBQUM7QUFDcEMsUUFBQSxjQUFjLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFVLENBQUM7QUFDbkMsUUFBQSxvQkFBb0IsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQVUsQ0FBQztBQUN6QyxRQUFBLFVBQVUsR0FBRztJQUN4QixHQUFHLHNCQUFjO0lBQ2pCLEdBQUcsMkJBQW1CO0lBQ3RCLEdBQUcsdUJBQWU7SUFDbEIsR0FBRyxzQkFBYztJQUNqQixHQUFHLDRCQUFvQjtDQUN4QixDQUFDO0FBRUYsU0FBZ0IsV0FBVyxDQUFDLENBQVU7SUFDcEMsT0FBTyxrQkFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFjLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBUUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQ2pCO0lBQ0UsQ0FBQyxNQUFNLEVBQUUsc0JBQWMsQ0FBQztJQUN4QixDQUFDLFdBQVcsRUFBRSwyQkFBbUIsQ0FBQztJQUNsQyxDQUFDLE9BQU8sRUFBRSx1QkFBZSxDQUFDO0lBQzFCLENBQUMsTUFBTSxFQUFFLHNCQUFjLENBQUM7SUFDeEIsQ0FBQyxZQUFZLEVBQUUsNEJBQW9CLENBQUM7Q0FDckMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFtQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFrQixDQUFDLENBQUMsQ0FDNUUsQ0FBQztBQUVGLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUVoQzs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxDQUE2QztJQUN2RSxJQUFJLElBQUksQ0FBQztJQUNULElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFrQixDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELE9BQU8sSUFBcUIsQ0FBQztBQUMvQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFnQjtJQUNqRCxLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLENBQTZDO0lBQ2hGLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLENBQTZDO0lBQ2hGLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLENBQVk7SUFDOUMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxDQUFZO0lBQzlDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLENBQVk7SUFDbkMsTUFBTSxXQUFXLEdBQWdCO1FBQy9CLEdBQUcsMkJBQW1CO1FBQ3RCLEdBQUcsdUJBQWU7UUFDbEIsR0FBRyxzQkFBYztRQUNqQixHQUFHLDRCQUFvQjtLQUN4QixDQUFDO0lBQ0YsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmluZXMgQml0R28gbWFwcGluZ3MgYmV0d2VlbiBiaXAzMiBkZXJpdmF0aW9uIHBhdGggYW5kIHNjcmlwdCB0eXBlLlxuICpcbiAqIFRoZSBzY3JpcHRzIGZvciBhIEJpdEdvIHdhbGxldCBhZGRyZXNzIGFyZSBkZWZpbmVkIGJ5IHRoZWlyIGRlcml2YXRpb24gcGF0aC5cbiAqXG4gKiBUaGUgZGVyaXZhdGlvbiBwYXRoIGhhcyB0aGUgZm9ybWF0IGAwLzAvJHtjaGFpbn0vJHtpbmRleH1gIChpbiByYXJlIGNhc2VzIHRoZSBwcmVmaXggaXMgbm90IDAvMClcbiAqXG4gKiBUaGUgYWRkcmVzcyBzY3JpcHQgdHlwZSAoU2NyaXB0VHlwZTJPZjMpIGlzIGRlZmluZWQgYnkgdGhlIGBjaGFpbmAgcGFyYW1ldGVyLlxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBtYXBwaW5nIGJldHdlZW4gY2hhaW4gcGFyYW1ldGVyIGFuZCBhZGRyZXNzIHR5cGUuXG4gKi9cbmltcG9ydCB7IFNjcmlwdFR5cGUyT2YzIH0gZnJvbSAnLi4vb3V0cHV0U2NyaXB0cyc7XG5cbi8qKlxuICogQWxsIHZhbGlkIGNoYWluIGNvZGVzXG4gKi9cbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJzaCA9IFswLCAxXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJzaFAyd3NoID0gWzEwLCAxMV0gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgY2hhaW5Db2Rlc1Ayd3NoID0gWzIwLCAyMV0gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgY2hhaW5Db2Rlc1AydHIgPSBbMzAsIDMxXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJ0ck11c2lnMiA9IFs0MCwgNDFdIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IGNoYWluQ29kZXMgPSBbXG4gIC4uLmNoYWluQ29kZXNQMnNoLFxuICAuLi5jaGFpbkNvZGVzUDJzaFAyd3NoLFxuICAuLi5jaGFpbkNvZGVzUDJ3c2gsXG4gIC4uLmNoYWluQ29kZXNQMnRyLFxuICAuLi5jaGFpbkNvZGVzUDJ0ck11c2lnMixcbl07XG5leHBvcnQgdHlwZSBDaGFpbkNvZGUgPSAodHlwZW9mIGNoYWluQ29kZXMpW251bWJlcl07XG5leHBvcnQgZnVuY3Rpb24gaXNDaGFpbkNvZGUobjogdW5rbm93bik6IG4gaXMgQ2hhaW5Db2RlIHtcbiAgcmV0dXJuIGNoYWluQ29kZXMuaW5jbHVkZXMobiBhcyBDaGFpbkNvZGUpO1xufVxuXG4vKipcbiAqIEEgc2NyaXB0IHR5cGUgbWFwcyB0byB0d28gQ2hhaW5Db2RlczpcbiAqIEV4dGVybmFsIGFkZHJlc3NlcyBhcmUgaW50ZW5kZWQgZm9yIGRlcG9zaXRzLCBpbnRlcm5hbCBhZGRyZXNzZXMgYXJlIGludGVuZGVkIGZvciBjaGFuZ2Ugb3V0cHV0cy5cbiAqL1xuZXhwb3J0IHR5cGUgQ2hhaW5Db2RlUGFpciA9IFJlYWRvbmx5PFtleHRlcm5hbDogQ2hhaW5Db2RlLCBpbnRlcm5hbDogQ2hhaW5Db2RlXT47XG5cbmNvbnN0IG1hcCA9IG5ldyBNYXA8U2NyaXB0VHlwZTJPZjMsIENoYWluQ29kZVBhaXI+KFxuICBbXG4gICAgWydwMnNoJywgY2hhaW5Db2Rlc1Ayc2hdLFxuICAgIFsncDJzaFAyd3NoJywgY2hhaW5Db2Rlc1Ayc2hQMndzaF0sXG4gICAgWydwMndzaCcsIGNoYWluQ29kZXNQMndzaF0sXG4gICAgWydwMnRyJywgY2hhaW5Db2Rlc1AydHJdLFxuICAgIFsncDJ0ck11c2lnMicsIGNoYWluQ29kZXNQMnRyTXVzaWcyXSxcbiAgXS5tYXAoKFtrLCB2XSkgPT4gW2sgYXMgU2NyaXB0VHlwZTJPZjMsIE9iamVjdC5mcmVlemUodikgYXMgQ2hhaW5Db2RlUGFpcl0pXG4pO1xuXG5jb25zdCBwYWlycyA9IFsuLi5tYXAudmFsdWVzKCldO1xuXG4vKipcbiAqIEByZXR1cm4gQ2hhaW5Db2RlUGFpciBmb3IgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ2hhaW5QYWlyKHY6IENoYWluQ29kZVBhaXIgfCBDaGFpbkNvZGUgfCBTY3JpcHRUeXBlMk9mMyk6IENoYWluQ29kZVBhaXIge1xuICBsZXQgcGFpcjtcbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICBpZiAocGFpcnMuaW5jbHVkZXModiBhcyBDaGFpbkNvZGVQYWlyKSkge1xuICAgICAgcGFpciA9IHY7XG4gICAgfVxuICB9XG4gIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcbiAgICBwYWlyID0gbWFwLmdldCh2KTtcbiAgfVxuICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB7XG4gICAgcGFpciA9IHBhaXJzLmZpbmQoKHApID0+IHAuaW5jbHVkZXModikpO1xuICB9XG4gIGlmICghcGFpcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8gcGFpciBmb3IgaW5wdXQgJHt2fWApO1xuICB9XG4gIHJldHVybiBwYWlyIGFzIENoYWluQ29kZVBhaXI7XG59XG5cbi8qKlxuICogQHJldHVybiBTY3JpcHRUeXBlMk9mMyBmb3IgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbjogQ2hhaW5Db2RlKTogU2NyaXB0VHlwZTJPZjMge1xuICBmb3IgKGNvbnN0IFtzY3JpcHRUeXBlLCBwYWlyXSBvZiBtYXAuZW50cmllcygpKSB7XG4gICAgaWYgKHBhaXIuaW5jbHVkZXMoY2hhaW4pKSB7XG4gICAgICByZXR1cm4gc2NyaXB0VHlwZTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGNoYWluICR7Y2hhaW59YCk7XG59XG5cbi8qKlxuICogQHJldHVybiBjaGFpbiBjb2RlIGludGVuZGVkIGZvciBleHRlcm5hbCBhZGRyZXNzZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVybmFsQ2hhaW5Db2RlKHY6IENoYWluQ29kZVBhaXIgfCBTY3JpcHRUeXBlMk9mMyB8IENoYWluQ29kZSk6IENoYWluQ29kZSB7XG4gIHJldHVybiB0b0NoYWluUGFpcih2KVswXTtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIGNoYWluIGNvZGUgaW50ZW5kZWQgZm9yIGNoYW5nZSBvdXRwdXRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENoYWluQ29kZSh2OiBDaGFpbkNvZGVQYWlyIHwgU2NyaXB0VHlwZTJPZjMgfCBDaGFpbkNvZGUpOiBDaGFpbkNvZGUge1xuICByZXR1cm4gdG9DaGFpblBhaXIodilbMV07XG59XG5cbi8qKlxuICogQHJldHVybiB0cnVlIGlmZiBjaGFpbiBjb2RlIGlzIGV4dGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsQ2hhaW5Db2RlKHY6IENoYWluQ29kZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdG9DaGFpblBhaXIodikuaW5kZXhPZih2KSA9PT0gMDtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHRydWUgaWZmIGNoYWluIGNvZGUgaXMgaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJuYWxDaGFpbkNvZGUodjogQ2hhaW5Db2RlKTogYm9vbGVhbiB7XG4gIHJldHVybiB0b0NoYWluUGFpcih2KS5pbmRleE9mKHYpID09PSAxO1xufVxuXG4vKipcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgY2hhaW4gY29kZSBpcyBhIHNlZ3dpdCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlZ3dpdCh2OiBDaGFpbkNvZGUpOiBib29sZWFuIHtcbiAgY29uc3Qgc2Vnd2l0Q29kZXM6IENoYWluQ29kZVtdID0gW1xuICAgIC4uLmNoYWluQ29kZXNQMnNoUDJ3c2gsXG4gICAgLi4uY2hhaW5Db2Rlc1Ayd3NoLFxuICAgIC4uLmNoYWluQ29kZXNQMnRyLFxuICAgIC4uLmNoYWluQ29kZXNQMnRyTXVzaWcyLFxuICBdO1xuICByZXR1cm4gc2Vnd2l0Q29kZXMuaW5jbHVkZXModik7XG59XG4iXX0=