@bitgo-beta/abstract-utxo 1.6.1-alpha.410 → 1.6.1-alpha.412

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.
@@ -37,6 +37,7 @@ exports.explainPsbt = explainPsbt;
37
37
  exports.explainLegacyTx = explainLegacyTx;
38
38
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
39
39
  const utxo_core_1 = require("@bitgo-beta/utxo-core");
40
+ const secp256k1_1 = require("@bitgo-beta/secp256k1");
40
41
  const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
41
42
  const utxocore = __importStar(require("@bitgo-beta/utxo-core"));
42
43
  const recipient_1 = require("../recipient");
@@ -101,7 +102,7 @@ function explainCommon(tx, params, network) {
101
102
  return { displayOrder, id: tx.getId(), ...outputDetails, fee, locktime };
102
103
  }
103
104
  function getRootWalletKeys(params) {
104
- const keys = params.pubs?.map((xpub) => utxo_lib_1.bip32.fromBase58(xpub));
105
+ const keys = params.pubs?.map((xpub) => secp256k1_1.bip32.fromBase58(xpub));
105
106
  return keys && keys.length === 3 ? new utxo_lib_1.bitgo.RootWalletKeys(keys) : undefined;
106
107
  }
107
108
  function getPsbtInputSignaturesCount(psbt, params) {
@@ -268,7 +269,7 @@ function explainPsbt(psbt, params, network, { strict = false } = {}) {
268
269
  const payGoVerificationInfo = getPayGoVerificationInfo();
269
270
  if (payGoVerificationInfo) {
270
271
  try {
271
- utxocore.paygo.verifyPayGoAddressProof(psbt, payGoVerificationInfo.outputIndex, utxolib.bip32.fromBase58(payGoVerificationInfo.verificationPubkey, utxolib.networks.bitcoin).publicKey);
272
+ utxocore.paygo.verifyPayGoAddressProof(psbt, payGoVerificationInfo.outputIndex, secp256k1_1.bip32.fromBase58(payGoVerificationInfo.verificationPubkey, utxolib.networks.bitcoin).publicKey);
272
273
  }
273
274
  catch (e) {
274
275
  if (strict) {
@@ -314,4 +315,4 @@ function explainLegacyTx(tx, params, network) {
314
315
  signatures: inputSignaturesCount.reduce((prev, curr) => (curr > prev ? curr : prev), 0),
315
316
  };
316
317
  }
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L2V4cGxhaW5UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1KQSxrQ0FrTUM7QUFFRCwwQ0FnQkM7QUF2V0QsOERBQWdEO0FBQ2hELHFEQUErQztBQUMvQyxtREFBb0U7QUFFcEUsZ0VBQWtEO0FBR2xELDRDQUF1RDtBQUN2RCw4RUFBMkU7QUFRM0UsU0FBUyxhQUFhLENBQ3BCLEVBQWtDLEVBQ2xDLE1BR0MsRUFDRCxPQUF3QjtJQUV4QixNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN4RixJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLE1BQU0sYUFBYSxHQUE4QixFQUFFLENBQUM7SUFDcEQsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBRTdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDOUIsTUFBTSxlQUFlLEdBQUcsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUV0RSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1FBQ2hDLHdIQUF3SDtRQUN4SCx5RUFBeUU7UUFDekUsTUFBTSxjQUFjLEdBQUcsSUFBQSxtQ0FBdUIsRUFBQyxhQUFhLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlFLE1BQU0sYUFBYSxHQUFH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QUNULEdBQUcsRUFBRSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDNUMsZUFBZSxFQUFFLG9CQUFvQjtRQUNyQyxVQUFVLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RixRQUFRO0tBQ2lCLENBQUM7QUFDOUIsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FDN0IsRUFBa0MsRUFDbEMsTUFJQyxFQUNELE9BQXdCO0lBRXhCLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELE1BQU0sb0JBQW9CLEdBQUcseUJBQXlCLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsZUFBZSxFQUFFLG9CQUFvQjtRQUNyQyxVQUFVLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM5RCxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGJpcDMyMiB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tY29yZSc7XG5pbXBvcnQgeyBiaXAzMiwgQklQMzJJbnRlcmZhY2UsIGJpdGdvIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdXR4b2NvcmUgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlJztcblxuaW1wb3J0IHsgT3V0cHV0LCBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBCaXAzMjJNZXNzYWdlLCBGaXhlZFNjcmlwdFdhbGxldE91dHB1dCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgdG9FeHRlbmRlZEFkZHJlc3NGb3JtYXQgfSBmcm9tICcuLi9yZWNpcGllbnQnO1xuaW1wb3J0IHsgZ2V0UGF5R29WZXJpZmljYXRpb25QdWJrZXkgfSBmcm9tICcuLi9nZXRQYXlHb1ZlcmlmaWNhdGlvblB1YmtleSc7XG5cbmV4cG9ydCB0eXBlIENoYW5nZUFkZHJlc3NJbmZvID0ge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGNoYWluOiBudW1iZXI7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBleHBsYWluQ29tbW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eDogYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBwYXJhbXM6IHtcbiAgICBjaGFuZ2VJbmZvPzogQ2hhbmdlQWRkcmVzc0luZm9bXTtcbiAgICBmZWVJbmZvPzogc3RyaW5nO1xuICB9LFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbikge1xuICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJ107XG4gIGxldCBzcGVuZEFtb3VudCA9IEJpZ0ludCgwKTtcbiAgbGV0IGNoYW5nZUFtb3VudCA9IEJpZ0ludCgwKTtcbiAgY29uc3QgY2hhbmdlT3V0cHV0czogRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXRbXSA9IFtdO1xuICBjb25zdCBvdXRwdXRzOiBPdXRwdXRbXSA9IFtdO1xuXG4gIGNvbnN0IHsgY2hhbmdlSW5mbyB9ID0gcGFyYW1zO1xuICBjb25zdCBjaGFuZ2VBZGRyZXNzZXMgPSBjaGFuZ2VJbmZvPy5tYXAoKGluZm8pID0+IGluZm8uYWRkcmVzcykgPz8gW107XG5cbiAgdHgub3V0cy5mb3JFYWNoKChjdXJyZW50T3V0cHV0KSA9PiB7XG4gICAgLy8gVHJ5IHRvIGVuY29kZSB0aGUgc2NyaXB0IHB1YmtleSB3aXRoIGFuIGFkZHJlc3MuIElmIGl0IGZhaWxzLCB0cnkgdG8gcGFyc2UgaXQgYXMgYW4gT1BfUkVUVVJOIG91dHB1dCB3aXRoIHRoZSBwcmVmaXguXG4gICAgLy8gSWYgdGhhdCBmYWlscywgdGhlbiBpdCBpcyBhbiB1bnJlY29nbml6ZWQgc2NyaXB0UHVia2V5IGFuZCBzaG91bGQgZmFpbFxuICAgIGNvbnN0IGN1cnJlbnRBZGRyZXNzID0gdG9FeHRlbmRlZEFkZHJlc3NGb3JtYXQoY3VycmVudE91dHB1dC5zY3JpcHQsIG5ldHdvcmspO1xuICAgIGNvbnN0IGN1cnJlbnRBbW91bnQgPSBCaWdJbnQoY3VycmVudE91dHB1dC52YWx1ZSk7XG5cbiAgICBpZiAoY2hhbmdlQWRkcmVzc2VzLmluY2x1ZGVzKGN1cnJlbnRBZGRyZXNzKSkge1xuICAgICAgLy8gdGhpcyBpcyBjaGFuZ2VcbiAgICAgIGNoYW5nZUFtb3VudCArPSBjdXJyZW50QW1vdW50O1xuICAgICAgY29uc3QgY2hhbmdlID0gY2hhbmdlSW5mbz8uZmluZCgoY2hhbmdlKSA9PiBjaGFuZ2UuYWRkcmVzcyA9PT0gY3VycmVudEFkZHJlc3MpO1xuXG4gICAgICBpZiAoIWNoYW5nZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NoYW5nZUluZm8gbXVzdCBoYXZlIGNoYW5nZSBpbmZvcm1hdGlvbiBmb3IgYWxsIGNoYW5nZSBvdXRwdXRzJyk7XG4gICAgICB9XG4gICAgICBjaGFuZ2VPdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBjdXJyZW50QWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiBjdXJyZW50QW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgIGNoYWluOiBjaGFuZ2UuY2hhaW4sXG4gICAgICAgIGluZGV4OiBjaGFuZ2UuaW5kZXgsXG4gICAgICAgIGV4dGVybmFsOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNwZW5kQW1vdW50ICs9IGN1cnJlbnRBbW91bnQ7XG4gICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IGN1cnJlbnRBZGRyZXNzLFxuICAgICAgYW1vdW50OiBjdXJyZW50QW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAvLyBJZiBjaGFuZ2VJbmZvIGhhcyBhIGxlbmd0aCBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gemVybywgaXQgbWVhbnMgdGhhdCB0aGUgY2hhbmdlIGluZm9ybWF0aW9uXG4gICAgICAvLyB3YXMgcHJvdmlkZWQgdG8gdGhlIGZ1bmN0aW9uIGJ1dCB0aGUgb3V0cHV0IHdhcyBub3QgaWRlbnRpZmllZCBhcyBjaGFuZ2UuIEluIHRoaXMgY2FzZSxcbiAgICAgIC8vIHRoZSBvdXRwdXQgaXMgZXh0ZXJuYWwsIGFuZCB3ZSBjYW4gc2V0IGl0IGFzIHNvLiBJZiBjaGFuZ2VJbmZvIGlzIHVuZGVmaW5lZCwgaXQgbWVhbnMgd2Ugd2VyZVxuICAgICAgLy8gZ2l2ZW4gbm8gaW5mb3JtYXRpb24gYWJvdXQgY2hhbmdlIG91dHB1dHMsIHNvIHdlIGNhbid0IGRldGVybWluZSBhbnl0aGluZyBhYm91dCB0aGUgb3V0cHV0LFxuICAgICAgLy8gc28gd2UgbGVhdmUgaXQgdW5kZWZpbmVkLlxuICAgICAgZXh0ZXJuYWw6IGNoYW5nZUluZm8gPyB0cnVlIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9KTtcblxuICBjb25zdCBvdXRwdXREZXRhaWxzID0ge1xuICAgIG91dHB1dEFtb3VudDogc3BlbmRBbW91bnQudG9TdHJpbmcoKSxcbiAgICBjaGFuZ2VBbW91bnQ6IGNoYW5nZUFtb3VudC50b1N0cmluZygpLFxuICAgIG91dHB1dHMsXG4gICAgY2hhbmdlT3V0cHV0cyxcbiAgfTtcblxuICBsZXQgZmVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGxldCBsb2NrdGltZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIGlmIChwYXJhbXMuZmVlSW5mbykge1xuICAgIGRpc3BsYXlPcmRlci5wdXNoKCdmZWUnKTtcbiAgICBmZWUgPSBwYXJhbXMuZmVlSW5mbztcbiAgfVxuXG4gIGlmIChOdW1iZXIuaXNJbnRlZ2VyKHR4LmxvY2t0aW1lKSAmJiB0eC5sb2NrdGltZSA+IDApIHtcbiAgICBkaXNwbGF5T3JkZXIucHVzaCgnbG9ja3RpbWUnKTtcbiAgICBsb2NrdGltZSA9IHR4LmxvY2t0aW1lO1xuICB9XG5cbiAgcmV0dXJuIHsgZGlzcGxheU9yZGVyLCBpZDogdHguZ2V0SWQoKSwgLi4ub3V0cHV0RGV0YWlscywgZmVlLCBsb2NrdGltZSB9O1xufVxuXG5mdW5jdGlvbiBnZXRSb290V2FsbGV0S2V5cyhwYXJhbXM6IHsgcHVicz86IHN0cmluZ1tdIH0pIHtcbiAgY29uc3Qga2V5cyA9IHBhcmFtcy5wdWJzPy5tYXAoKHhwdWIpID0+IGJpcDMyLmZyb21CYXNlNTgoeHB1YikpO1xuICByZXR1cm4ga2V5cyAmJiBrZXlzLmxlbmd0aCA9PT0gMyA/IG5ldyBiaXRnby5Sb290V2FsbGV0S2V5cyhrZXlzIGFzIFRyaXBsZTxCSVAzMkludGVyZmFjZT4pIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXRQc2J0SW5wdXRTaWduYXR1cmVzQ291bnQoXG4gIHBzYnQ6IGJpdGdvLlV0eG9Qc2J0LFxuICBwYXJhbXM6IHtcbiAgICBwdWJzPzogc3RyaW5nW107XG4gIH1cbikge1xuICBjb25zdCByb290V2FsbGV0S2V5cyA9IGdldFJvb3RXYWxsZXRLZXlzKHBhcmFtcyk7XG4gIHJldHVybiByb290V2FsbGV0S2V5c1xuICAgID8gYml0Z28uZ2V0U2lnbmF0dXJlVmFsaWRhdGlvbkFycmF5UHNidChwc2J0LCByb290V2FsbGV0S2V5cykubWFwKChzdikgPT4gc3ZbMV0uZmlsdGVyKCh2KSA9PiB2KS5sZW5ndGgpXG4gICAgOiAoQXJyYXkocHNidC5kYXRhLmlucHV0cy5sZW5ndGgpIGFzIG51bWJlcltdKS5maWxsKDApO1xufVxuXG5mdW5jdGlvbiBnZXRUeElucHV0U2lnbmF0dXJlc0NvdW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eDogYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBwYXJhbXM6IHtcbiAgICB0eEluZm8/OiB7IHVuc3BlbnRzPzogYml0Z28uVW5zcGVudDxUTnVtYmVyPltdIH07XG4gICAgcHVicz86IHN0cmluZ1tdO1xuICB9LFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbikge1xuICBjb25zdCBwcmV2T3V0cHV0cyA9IHBhcmFtcy50eEluZm8/LnVuc3BlbnRzPy5tYXAoKHUpID0+IGJpdGdvLnRvT3V0cHV0PFROdW1iZXI+KHUsIG5ldHdvcmspKTtcbiAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSBnZXRSb290V2FsbGV0S2V5cyhwYXJhbXMpO1xuICBjb25zdCB7IHVuc3BlbnRzID0gW10gfSA9IHBhcmFtcy50eEluZm8gPz8ge307XG5cbiAgLy8gZ2V0IHRoZSBudW1iZXIgb2Ygc2lnbmF0dXJlcyBwZXIgaW5wdXRcbiAgcmV0dXJuIHR4Lmlucy5tYXAoKGlucHV0LCBpZHgpOiBudW1iZXIgPT4ge1xuICAgIGlmICh1bnNwZW50cy5sZW5ndGggIT09IHR4Lmlucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBpZiAoIXByZXZPdXRwdXRzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgc3RhdGVgKTtcbiAgICB9XG4gICAgaWYgKCFyb290V2FsbGV0S2V5cykge1xuICAgICAgLy8gbm8gcHViIGtleXMgb3IgaW5jb3JyZWN0IG51bWJlciBvZiBwdWIga2V5c1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYml0Z28udmVyaWZ5U2lnbmF0dXJlV2l0aFVuc3BlbnQ8VE51bWJlcj4odHgsIGlkeCwgdW5zcGVudHMsIHJvb3RXYWxsZXRLZXlzKS5maWx0ZXIoKHYpID0+IHYpLmxlbmd0aDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBzb21lIG90aGVyIGVycm9yIG9jY3VycmVkIGFuZCB3ZSBjYW4ndCB2YWxpZGF0ZSB0aGUgc2lnbmF0dXJlc1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBEZWNvbXBvc2UgYSByYXcgcHNidCBpbnRvIHVzZWZ1bCBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgdG90YWwgYW1vdW50cyxcbiAqIGNoYW5nZSBhbW91bnRzLCBhbmQgdHJhbnNhY3Rpb24gb3V0cHV0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5Qc2J0PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQsIFR4IGV4dGVuZHMgYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4+KFxuICBwc2J0OiBiaXRnby5VdHhvUHNidDxUeD4sXG4gIHBhcmFtczoge1xuICAgIHB1YnM/OiBzdHJpbmdbXTtcbiAgICB0eEluZm8/OiB7IHVuc3BlbnRzPzogYml0Z28uVW5zcGVudDxUTnVtYmVyPltdIH07XG4gIH0sXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgeyBzdHJpY3QgPSBmYWxzZSB9OiB7IHN0cmljdD86IGJvb2xlYW4gfSA9IHt9XG4pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgY29uc3QgdHhPdXRwdXRzID0gcHNidC50eE91dHB1dHM7XG4gIGNvbnN0IHR4SW5wdXRzID0gcHNidC50eElucHV0cztcblxuICBmdW5jdGlvbiBnZXRDaGFpbkFuZEluZGV4RnJvbUJpcDMyRGVyaXZhdGlvbnMob3V0cHV0OiBiaXRnby5Qc2J0T3V0cHV0KSB7XG4gICAgY29uc3QgZGVyaXZhdGlvbnMgPSBvdXRwdXQuYmlwMzJEZXJpdmF0aW9uID8/IG91dHB1dC50YXBCaXAzMkRlcml2YXRpb24gPz8gdW5kZWZpbmVkO1xuICAgIGlmICghZGVyaXZhdGlvbnMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHBhdGhzID0gZGVyaXZhdGlvbnMubWFwKChkKSA9PiBkLnBhdGgpO1xuICAgIGlmICghcGF0aHMgfHwgcGF0aHMubGVuZ3RoICE9PSAzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIDMgcGF0aHMgaW4gYmlwMzJEZXJpdmF0aW9uIG9yIHRhcEJpcDMyRGVyaXZhdGlvbicpO1xuICAgIH1cbiAgICBpZiAoIXBhdGhzLmV2ZXJ5KChwKSA9PiBwYXRoc1swXSA9PT0gcCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgYWxsIHBhdGhzIHRvIGJlIHRoZSBzYW1lJyk7XG4gICAgfVxuXG4gICAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgaWYgKHBhdGhzWzBdICE9PSBwYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnVW5hYmxlIHRvIGdldCBhIHNpbmdsZSBjaGFpbiBhbmQgaW5kZXggb24gdGhlIG91dHB1dCBiZWNhdXNlIHRoZXJlIGFyZSBkaWZmZXJlbnQgcGF0aHMgZm9yIGRpZmZlcmVudCBrZXlzJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB1dHhvbGliLmJpdGdvLmdldENoYWluQW5kSW5kZXhGcm9tUGF0aChwYXRoc1swXSk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRDaGFuZ2VJbmZvKCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdXR4b2xpYi5iaXRnby5maW5kSW50ZXJuYWxPdXRwdXRJbmRpY2VzKHBzYnQpLm1hcCgoaSkgPT4ge1xuICAgICAgICBjb25zdCBkZXJpdmF0aW9uSW5mb3JtYXRpb24gPSBnZXRDaGFpbkFuZEluZGV4RnJvbUJpcDMyRGVyaXZhdGlvbnMocHNidC5kYXRhLm91dHB1dHNbaV0pO1xuICAgICAgICBpZiAoIWRlcml2YXRpb25JbmZvcm1hdGlvbikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZpbmQgZGVyaXZhdGlvbiBpbmZvcm1hdGlvbiBvbiBiaXAzMkRlcml2YXRpb24gb3IgdGFwQmlwMzJEZXJpdmF0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhZGRyZXNzOiB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdCh0eE91dHB1dHNbaV0uc2NyaXB0LCBuZXR3b3JrKSxcbiAgICAgICAgICBleHRlcm5hbDogZmFsc2UsXG4gICAgICAgICAgLi4uZGVyaXZhdGlvbkluZm9ybWF0aW9uLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLkVycm9yTm9NdWx0aVNpZ0lucHV0Rm91bmQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgUGF5R28gYWRkcmVzcyBwcm9vZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBQU0JUIGlmIHByZXNlbnRcbiAgICogQHJldHVybnMgSW5mb3JtYXRpb24gYWJvdXQgdGhlIFBheUdvIHByb29mLCBpbmNsdWRpbmcgdGhlIG91dHB1dCBpbmRleCBhbmQgYWRkcmVzc1xuICAgKi9cbiAgZnVuY3Rpb24gZ2V0UGF5R29WZXJpZmljYXRpb25JbmZvKCk6IHsgb3V0cHV0SW5kZXg6IG51bWJlcjsgdmVyaWZpY2F0aW9uUHVia2V5OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IG91dHB1dEluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgbGV0IGFkZHJlc3M6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvLyBDaGVjayBpZiB0aGlzIFBTQlQgaGFzIGFueSBQYXlHbyBhZGRyZXNzIHByb29mc1xuICAgIGlmICghdXR4b2NvcmUucGF5Z28ucHNidE91dHB1dEluY2x1ZGVzUGF5Z29BZGRyZXNzUHJvb2YocHNidCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBwdWxscyB0aGUgcHVia2V5IGRlcGVuZGluZyBvbiBnaXZlbiBuZXR3b3JrXG4gICAgY29uc3QgdmVyaWZpY2F0aW9uUHVia2V5ID0gZ2V0UGF5R29WZXJpZmljYXRpb25QdWJrZXkobmV0d29yayk7XG4gICAgLy8gZmluZCB3aGljaCBvdXRwdXQgaW5kZXggdGhhdCBjb250YWlucyB0aGUgUGF5R28gcHJvb2ZcbiAgICBvdXRwdXRJbmRleCA9IHV0eG9jb3JlLnBheWdvLmdldFBheUdvQWRkcmVzc1Byb29mT3V0cHV0SW5kZXgocHNidCk7XG4gICAgaWYgKG91dHB1dEluZGV4ID09PSB1bmRlZmluZWQgfHwgIXZlcmlmaWNhdGlvblB1YmtleSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0ID0gdHhPdXRwdXRzW291dHB1dEluZGV4XTtcbiAgICBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQob3V0cHV0LnNjcmlwdCwgbmV0d29yayk7XG4gICAgaWYgKCFhZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbiBub3QgZGVyaXZlIGFkZHJlc3MgJHthZGRyZXNzfSBQYXkgR28gQXR0ZXN0YXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgb3V0cHV0SW5kZXgsIHZlcmlmaWNhdGlvblB1YmtleSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgdGhlIEJJUDMyMiBtZXNzYWdlcyBhbmQgYWRkcmVzc2VzIGZyb20gdGhlIFBTQlQgaW5wdXRzIGFuZCBwZXJmb3JtXG4gICAqIHZlcmlmaWNhdGlvbiBvbiB0aGUgdHJhbnNhY3Rpb24gdG8gZW5zdXJlIHRoYXQgaXQgbWVldHMgdGhlIEJJUDMyMiByZXF1aXJlbWVudHMuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyB0aGUgbWVzc2FnZSBhbmQgYWRkcmVzcyBmb3IgZWFjaCBpbnB1dCxcbiAgICogICAgICAgICAgb3IgdW5kZWZpbmVkIGlmIG5vIEJJUDMyMiBtZXNzYWdlcyBhcmUgZm91bmQuXG4gICAqL1xuICBmdW5jdGlvbiBnZXRCaXAzMjJNZXNzYWdlSW5mb0FuZFZlcmlmeSgpOiBCaXAzMjJNZXNzYWdlW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGJpcDMyMk1lc3NhZ2VzOiB7IG1lc3NhZ2U6IHN0cmluZzsgYWRkcmVzczogc3RyaW5nIH1bXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHNidC5kYXRhLmlucHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGJpcDMyMi5nZXRCaXAzMjJQcm9vZk1lc3NhZ2VBdEluZGV4KHBzYnQsIGkpO1xuICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBwc2J0LmRhdGEuaW5wdXRzW2ldO1xuICAgICAgICBpZiAoIWlucHV0LndpdG5lc3NVdHhvKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHdpdG5lc3NVdHhvIGZvciBpbnB1dCBpbmRleCAke2l9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpbnB1dC5ub25XaXRuZXNzVXR4bykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBub25XaXRuZXNzVXR4byBmb3IgaW5wdXQgaW5kZXggJHtpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjcmlwdFB1YktleSA9IGlucHV0LndpdG5lc3NVdHhvLnNjcmlwdDtcblxuICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgdG9TcGVuZCB0cmFuc2FjdGlvbiBjYW4gYmUgcmVjcmVhdGVkIGluIHRoZSBQU0JUIGFuZCBpcyBlbmNvZGVkIGNvcnJlY3RseSBpbiB0aGUgbm9uV2l0bmVzc1V0eG9cbiAgICAgICAgY29uc3QgdG9TcGVuZCA9IGJpcDMyMi5idWlsZFRvU3BlbmRUcmFuc2FjdGlvbihzY3JpcHRQdWJLZXksIG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCB0b1NwZW5kQjY0ID0gdG9TcGVuZC50b0J1ZmZlcigpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgaWYgKGlucHV0Lm5vbldpdG5lc3NVdHhvLnRvU3RyaW5nKCdiYXNlNjQnKSAhPT0gdG9TcGVuZEI2NCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm9uLXdpdG5lc3MgVVRYTyBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgdG9TcGVuZCB0cmFuc2FjdGlvbiBhdCBpbnB1dCBpbmRleCAke2l9YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgdG9TcGVuZCB0cmFuc2FjdGlvbiBJRCBtYXRjaGVzIHRoZSBpbnB1dCdzIHJlZmVyZW5jZWQgdHJhbnNhY3Rpb24gSURcbiAgICAgICAgaWYgKHRvU3BlbmQuZ2V0SWQoKSAhPT0gdXR4b2xpYi5iaXRnby5nZXRPdXRwdXRJZEZvcklucHV0KHR4SW5wdXRzW2ldKS50eGlkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUb1NwZW5kIHRyYW5zYWN0aW9uIElEIGRvZXMgbm90IG1hdGNoIHRoZSBpbnB1dCBhdCBpbmRleCAke2l9YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWZXJpZnkgdGhlIGlucHV0IHNwZWNpZmljc1xuICAgICAgICBpZiAodHhJbnB1dHNbaV0uc2VxdWVuY2UgIT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgc2VxdWVuY2UgbnVtYmVyIGF0IGlucHV0IGluZGV4ICR7aX06ICR7dHhJbnB1dHNbaV0uc2VxdWVuY2V9LiBFeHBlY3RlZCAwLmApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eElucHV0c1tpXS5pbmRleCAhPT0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBpbnB1dCBpbmRleCBhdCBwb3NpdGlvbiAke2l9OiAke3R4SW5wdXRzW2ldLmluZGV4fS4gRXhwZWN0ZWQgMC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJpcDMyMk1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UudG9TdHJpbmcoJ3V0ZjgnKSxcbiAgICAgICAgICBhZGRyZXNzOiB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChzY3JpcHRQdWJLZXksIG5ldHdvcmspLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYmlwMzIyTWVzc2FnZXMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgYSBCSVAzMjIgbWVzc2FnZSBpbiBhbnkgaW5wdXQsIGFsbCBpbnB1dHMgbXVzdCBoYXZlIG9uZS5cbiAgICAgIGlmIChiaXAzMjJNZXNzYWdlcy5sZW5ndGggIT09IHBzYnQuZGF0YS5pbnB1dHMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb25zaXN0ZW50IEJJUDMyMiBtZXNzYWdlcyBhY3Jvc3MgaW5wdXRzLicpO1xuICAgICAgfVxuXG4gICAgICAvLyBWZXJpZnkgdGhlIHRyYW5zYWN0aW9uIHNwZWNpZmljcyBmb3IgQklQMzIyXG4gICAgICBpZiAocHNidC52ZXJzaW9uICE9PSAwICYmIHBzYnQudmVyc2lvbiAhPT0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIFBTQlQgdmVyc2lvbiBmb3IgQklQMzIyOiAke3BzYnQudmVyc2lvbn0uIEV4cGVjdGVkIDAgYCk7XG4gICAgICB9XG4gICAgICBpZiAocHNidC5kYXRhLm91dHB1dHMubGVuZ3RoICE9PSAxIHx8IHR4T3V0cHV0c1swXS5zY3JpcHQudG9TdHJpbmcoJ2hleCcpICE9PSAnNmEnIHx8IHR4T3V0cHV0c1swXS52YWx1ZSAhPT0gMG4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFBTQlQgb3V0cHV0cyBmb3IgQklQMzIyLiBFeHBlY3RlZCBleGFjdGx5IG9uZSBPUF9SRVRVUk4gb3V0cHV0IHdpdGggemVybyB2YWx1ZS5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJpcDMyMk1lc3NhZ2VzO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBwYXlHb1ZlcmlmaWNhdGlvbkluZm8gPSBnZXRQYXlHb1ZlcmlmaWNhdGlvbkluZm8oKTtcbiAgaWYgKHBheUdvVmVyaWZpY2F0aW9uSW5mbykge1xuICAgIHRyeSB7XG4gICAgICB1dHhvY29yZS5wYXlnby52ZXJpZnlQYXlHb0FkZHJlc3NQcm9vZihcbiAgICAgICAgcHNidCxcbiAgICAgICAgcGF5R29WZXJpZmljYXRpb25JbmZvLm91dHB1dEluZGV4LFxuICAgICAgICB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgocGF5R29WZXJpZmljYXRpb25JbmZvLnZlcmlmaWNhdGlvblB1YmtleSwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKS5wdWJsaWNLZXlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBtZXNzYWdlcyA9IGdldEJpcDMyMk1lc3NhZ2VJbmZvQW5kVmVyaWZ5KCk7XG4gIGNvbnN0IGNoYW5nZUluZm8gPSBnZXRDaGFuZ2VJbmZvKCk7XG4gIGNvbnN0IHR4ID0gcHNidC5nZXRVbnNpZ25lZFR4KCkgYXMgYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+O1xuICBjb25zdCBjb21tb24gPSBleHBsYWluQ29tbW9uKHR4LCB7IC4uLnBhcmFtcywgY2hhbmdlSW5mbyB9LCBuZXR3b3JrKTtcbiAgY29uc3QgaW5wdXRTaWduYXR1cmVzQ291bnQgPSBnZXRQc2J0SW5wdXRTaWduYXR1cmVzQ291bnQocHNidCwgcGFyYW1zKTtcblxuICAvLyBTZXQgZmVlIGZyb20gc3VidHJhY3RpbmcgaW5wdXRzIGZyb20gb3V0cHV0c1xuICBjb25zdCBvdXRwdXRBbW91bnQgPSB0eE91dHB1dHMucmVkdWNlKChjdW11bGF0aXZlLCBjdXJyKSA9PiBjdW11bGF0aXZlICsgQmlnSW50KGN1cnIudmFsdWUpLCBCaWdJbnQoMCkpO1xuICBjb25zdCBpbnB1dEFtb3VudCA9IHBzYnQudHhJbnB1dHMucmVkdWNlKChjdW11bGF0aXZlLCB0eElucHV0LCBpKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHBzYnQuZGF0YS5pbnB1dHNbaV07XG4gICAgaWYgKGRhdGEud2l0bmVzc1V0eG8pIHtcbiAgICAgIHJldHVybiBjdW11bGF0aXZlICsgQmlnSW50KGRhdGEud2l0bmVzc1V0eG8udmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoZGF0YS5ub25XaXRuZXNzVXR4bykge1xuICAgICAgY29uc3QgdHggPSBiaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXI8YmlnaW50PihkYXRhLm5vbldpdG5lc3NVdHhvLCBuZXR3b3JrLCB7IGFtb3VudFR5cGU6ICdiaWdpbnQnIH0pO1xuICAgICAgcmV0dXJuIGN1bXVsYXRpdmUgKyBCaWdJbnQodHgub3V0c1t0eElucHV0LmluZGV4XS52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZpbmQgdmFsdWUgb24gaW5wdXQnKTtcbiAgICB9XG4gIH0sIEJpZ0ludCgwKSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5jb21tb24sXG4gICAgZmVlOiAoaW5wdXRBbW91bnQgLSBvdXRwdXRBbW91bnQpLnRvU3RyaW5nKCksXG4gICAgaW5wdXRTaWduYXR1cmVzOiBpbnB1dFNpZ25hdHVyZXNDb3VudCxcbiAgICBzaWduYXR1cmVzOiBpbnB1dFNpZ25hdHVyZXNDb3VudC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChjdXJyID4gcHJldiA/IGN1cnIgOiBwcmV2KSwgMCksXG4gICAgbWVzc2FnZXMsXG4gIH0gYXMgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5MZWdhY3lUeDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHg6IGJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgcGFyYW1zOiB7XG4gICAgcHVicz86IHN0cmluZ1tdO1xuICAgIHR4SW5mbz86IHsgdW5zcGVudHM/OiBiaXRnby5VbnNwZW50PFROdW1iZXI+W10gfTtcbiAgICBjaGFuZ2VJbmZvPzogeyBhZGRyZXNzOiBzdHJpbmc7IGNoYWluOiBudW1iZXI7IGluZGV4OiBudW1iZXIgfVtdO1xuICB9LFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBjb25zdCBjb21tb24gPSBleHBsYWluQ29tbW9uKHR4LCBwYXJhbXMsIG5ldHdvcmspO1xuICBjb25zdCBpbnB1dFNpZ25hdHVyZXNDb3VudCA9IGdldFR4SW5wdXRTaWduYXR1cmVzQ291bnQodHgsIHBhcmFtcywgbmV0d29yayk7XG4gIHJldHVybiB7XG4gICAgLi4uY29tbW9uLFxuICAgIGlucHV0U2lnbmF0dXJlczogaW5wdXRTaWduYXR1cmVzQ291bnQsXG4gICAgc2lnbmF0dXJlczogaW5wdXRTaWduYXR1cmVzQ291bnQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAoY3VyciA+IHByZXYgPyBjdXJyIDogcHJldiksIDApLFxuICB9IGFzIFRyYW5zYWN0aW9uRXhwbGFuYXRpb247XG59XG4iXX0=
318
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L2V4cGxhaW5UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9KQSxrQ0FrTUM7QUFFRCwwQ0FnQkM7QUF4V0QsOERBQWdEO0FBQ2hELHFEQUErQztBQUMvQyxxREFBOEQ7QUFDOUQsbURBQTZDO0FBRTdDLGdFQUFrRDtBQUdsRCw0Q0FBdUQ7QUFDdkQsOEVBQTJFO0FBUTNFLFNBQVMsYUFBYSxDQUNwQixFQUFrQyxFQUNsQyxNQUdDLEVBQ0QsT0FBd0I7SUFFeEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDeEYsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixNQUFNLGFBQWEsR0FBOEIsRUFBRSxDQUFDO0lBQ3BELE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUU3QixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzlCLE1BQU0sZUFBZSxHQUFHLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFdEUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtRQUNoQyx3SEFBd0g7UUFDeEgseUVBQXlFO1FBQ3pFLE1BQU0sY0FBYyxHQUFHLElBQUEsbUNBQXVCLEVBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5RSxN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QU07UUFDVCxHQUFHLEVBQUUsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQzVDLGVBQWUsRUFBRSxvQkFBb0I7UUFDckMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkYsUUFBUTtLQUNpQixDQUFDO0FBQzlCLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQzdCLEVBQWtDLEVBQ2xDLE1BSUMsRUFDRCxPQUF3QjtJQUV4QixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRCxNQUFNLG9CQUFvQixHQUFHLHlCQUF5QixDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUUsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULGVBQWUsRUFBRSxvQkFBb0I7UUFDckMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDOUQsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBiaXAzMjIgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWNvcmUnO1xuaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UsIGJpcDMyIH0gZnJvbSAnQGJpdGdvLWJldGEvc2VjcDI1NmsxJztcbmltcG9ydCB7IGJpdGdvIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdXR4b2NvcmUgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlJztcblxuaW1wb3J0IHsgT3V0cHV0LCBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBCaXAzMjJNZXNzYWdlLCBGaXhlZFNjcmlwdFdhbGxldE91dHB1dCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgdG9FeHRlbmRlZEFkZHJlc3NGb3JtYXQgfSBmcm9tICcuLi9yZWNpcGllbnQnO1xuaW1wb3J0IHsgZ2V0UGF5R29WZXJpZmljYXRpb25QdWJrZXkgfSBmcm9tICcuLi9nZXRQYXlHb1ZlcmlmaWNhdGlvblB1YmtleSc7XG5cbmV4cG9ydCB0eXBlIENoYW5nZUFkZHJlc3NJbmZvID0ge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGNoYWluOiBudW1iZXI7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBleHBsYWluQ29tbW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eDogYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBwYXJhbXM6IHtcbiAgICBjaGFuZ2VJbmZvPzogQ2hhbmdlQWRkcmVzc0luZm9bXTtcbiAgICBmZWVJbmZvPzogc3RyaW5nO1xuICB9LFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbikge1xuICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJ107XG4gIGxldCBzcGVuZEFtb3VudCA9IEJpZ0ludCgwKTtcbiAgbGV0IGNoYW5nZUFtb3VudCA9IEJpZ0ludCgwKTtcbiAgY29uc3QgY2hhbmdlT3V0cHV0czogRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXRbXSA9IFtdO1xuICBjb25zdCBvdXRwdXRzOiBPdXRwdXRbXSA9IFtdO1xuXG4gIGNvbnN0IHsgY2hhbmdlSW5mbyB9ID0gcGFyYW1zO1xuICBjb25zdCBjaGFuZ2VBZGRyZXNzZXMgPSBjaGFuZ2VJbmZvPy5tYXAoKGluZm8pID0+IGluZm8uYWRkcmVzcykgPz8gW107XG5cbiAgdHgub3V0cy5mb3JFYWNoKChjdXJyZW50T3V0cHV0KSA9PiB7XG4gICAgLy8gVHJ5IHRvIGVuY29kZSB0aGUgc2NyaXB0IHB1YmtleSB3aXRoIGFuIGFkZHJlc3MuIElmIGl0IGZhaWxzLCB0cnkgdG8gcGFyc2UgaXQgYXMgYW4gT1BfUkVUVVJOIG91dHB1dCB3aXRoIHRoZSBwcmVmaXguXG4gICAgLy8gSWYgdGhhdCBmYWlscywgdGhlbiBpdCBpcyBhbiB1bnJlY29nbml6ZWQgc2NyaXB0UHVia2V5IGFuZCBzaG91bGQgZmFpbFxuICAgIGNvbnN0IGN1cnJlbnRBZGRyZXNzID0gdG9FeHRlbmRlZEFkZHJlc3NGb3JtYXQoY3VycmVudE91dHB1dC5zY3JpcHQsIG5ldHdvcmspO1xuICAgIGNvbnN0IGN1cnJlbnRBbW91bnQgPSBCaWdJbnQoY3VycmVudE91dHB1dC52YWx1ZSk7XG5cbiAgICBpZiAoY2hhbmdlQWRkcmVzc2VzLmluY2x1ZGVzKGN1cnJlbnRBZGRyZXNzKSkge1xuICAgICAgLy8gdGhpcyBpcyBjaGFuZ2VcbiAgICAgIGNoYW5nZUFtb3VudCArPSBjdXJyZW50QW1vdW50O1xuICAgICAgY29uc3QgY2hhbmdlID0gY2hhbmdlSW5mbz8uZmluZCgoY2hhbmdlKSA9PiBjaGFuZ2UuYWRkcmVzcyA9PT0gY3VycmVudEFkZHJlc3MpO1xuXG4gICAgICBpZiAoIWNoYW5nZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NoYW5nZUluZm8gbXVzdCBoYXZlIGNoYW5nZSBpbmZvcm1hdGlvbiBmb3IgYWxsIGNoYW5nZSBvdXRwdXRzJyk7XG4gICAgICB9XG4gICAgICBjaGFuZ2VPdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBjdXJyZW50QWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiBjdXJyZW50QW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAgIGNoYWluOiBjaGFuZ2UuY2hhaW4sXG4gICAgICAgIGluZGV4OiBjaGFuZ2UuaW5kZXgsXG4gICAgICAgIGV4dGVybmFsOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNwZW5kQW1vdW50ICs9IGN1cnJlbnRBbW91bnQ7XG4gICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IGN1cnJlbnRBZGRyZXNzLFxuICAgICAgYW1vdW50OiBjdXJyZW50QW1vdW50LnRvU3RyaW5nKCksXG4gICAgICAvLyBJZiBjaGFuZ2VJbmZvIGhhcyBhIGxlbmd0aCBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gemVybywgaXQgbWVhbnMgdGhhdCB0aGUgY2hhbmdlIGluZm9ybWF0aW9uXG4gICAgICAvLyB3YXMgcHJvdmlkZWQgdG8gdGhlIGZ1bmN0aW9uIGJ1dCB0aGUgb3V0cHV0IHdhcyBub3QgaWRlbnRpZmllZCBhcyBjaGFuZ2UuIEluIHRoaXMgY2FzZSxcbiAgICAgIC8vIHRoZSBvdXRwdXQgaXMgZXh0ZXJuYWwsIGFuZCB3ZSBjYW4gc2V0IGl0IGFzIHNvLiBJZiBjaGFuZ2VJbmZvIGlzIHVuZGVmaW5lZCwgaXQgbWVhbnMgd2Ugd2VyZVxuICAgICAgLy8gZ2l2ZW4gbm8gaW5mb3JtYXRpb24gYWJvdXQgY2hhbmdlIG91dHB1dHMsIHNvIHdlIGNhbid0IGRldGVybWluZSBhbnl0aGluZyBhYm91dCB0aGUgb3V0cHV0LFxuICAgICAgLy8gc28gd2UgbGVhdmUgaXQgdW5kZWZpbmVkLlxuICAgICAgZXh0ZXJuYWw6IGNoYW5nZUluZm8gPyB0cnVlIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9KTtcblxuICBjb25zdCBvdXRwdXREZXRhaWxzID0ge1xuICAgIG91dHB1dEFtb3VudDogc3BlbmRBbW91bnQudG9TdHJpbmcoKSxcbiAgICBjaGFuZ2VBbW91bnQ6IGNoYW5nZUFtb3VudC50b1N0cmluZygpLFxuICAgIG91dHB1dHMsXG4gICAgY2hhbmdlT3V0cHV0cyxcbiAgfTtcblxuICBsZXQgZmVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGxldCBsb2NrdGltZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIGlmIChwYXJhbXMuZmVlSW5mbykge1xuICAgIGRpc3BsYXlPcmRlci5wdXNoKCdmZWUnKTtcbiAgICBmZWUgPSBwYXJhbXMuZmVlSW5mbztcbiAgfVxuXG4gIGlmIChOdW1iZXIuaXNJbnRlZ2VyKHR4LmxvY2t0aW1lKSAmJiB0eC5sb2NrdGltZSA+IDApIHtcbiAgICBkaXNwbGF5T3JkZXIucHVzaCgnbG9ja3RpbWUnKTtcbiAgICBsb2NrdGltZSA9IHR4LmxvY2t0aW1lO1xuICB9XG5cbiAgcmV0dXJuIHsgZGlzcGxheU9yZGVyLCBpZDogdHguZ2V0SWQoKSwgLi4ub3V0cHV0RGV0YWlscywgZmVlLCBsb2NrdGltZSB9O1xufVxuXG5mdW5jdGlvbiBnZXRSb290V2FsbGV0S2V5cyhwYXJhbXM6IHsgcHVicz86IHN0cmluZ1tdIH0pIHtcbiAgY29uc3Qga2V5cyA9IHBhcmFtcy5wdWJzPy5tYXAoKHhwdWIpID0+IGJpcDMyLmZyb21CYXNlNTgoeHB1YikpO1xuICByZXR1cm4ga2V5cyAmJiBrZXlzLmxlbmd0aCA9PT0gMyA/IG5ldyBiaXRnby5Sb290V2FsbGV0S2V5cyhrZXlzIGFzIFRyaXBsZTxCSVAzMkludGVyZmFjZT4pIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXRQc2J0SW5wdXRTaWduYXR1cmVzQ291bnQoXG4gIHBzYnQ6IGJpdGdvLlV0eG9Qc2J0LFxuICBwYXJhbXM6IHtcbiAgICBwdWJzPzogc3RyaW5nW107XG4gIH1cbikge1xuICBjb25zdCByb290V2FsbGV0S2V5cyA9IGdldFJvb3RXYWxsZXRLZXlzKHBhcmFtcyk7XG4gIHJldHVybiByb290V2FsbGV0S2V5c1xuICAgID8gYml0Z28uZ2V0U2lnbmF0dXJlVmFsaWRhdGlvbkFycmF5UHNidChwc2J0LCByb290V2FsbGV0S2V5cykubWFwKChzdikgPT4gc3ZbMV0uZmlsdGVyKCh2KSA9PiB2KS5sZW5ndGgpXG4gICAgOiAoQXJyYXkocHNidC5kYXRhLmlucHV0cy5sZW5ndGgpIGFzIG51bWJlcltdKS5maWxsKDApO1xufVxuXG5mdW5jdGlvbiBnZXRUeElucHV0U2lnbmF0dXJlc0NvdW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eDogYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBwYXJhbXM6IHtcbiAgICB0eEluZm8/OiB7IHVuc3BlbnRzPzogYml0Z28uVW5zcGVudDxUTnVtYmVyPltdIH07XG4gICAgcHVicz86IHN0cmluZ1tdO1xuICB9LFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbikge1xuICBjb25zdCBwcmV2T3V0cHV0cyA9IHBhcmFtcy50eEluZm8/LnVuc3BlbnRzPy5tYXAoKHUpID0+IGJpdGdvLnRvT3V0cHV0PFROdW1iZXI+KHUsIG5ldHdvcmspKTtcbiAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSBnZXRSb290V2FsbGV0S2V5cyhwYXJhbXMpO1xuICBjb25zdCB7IHVuc3BlbnRzID0gW10gfSA9IHBhcmFtcy50eEluZm8gPz8ge307XG5cbiAgLy8gZ2V0IHRoZSBudW1iZXIgb2Ygc2lnbmF0dXJlcyBwZXIgaW5wdXRcbiAgcmV0dXJuIHR4Lmlucy5tYXAoKGlucHV0LCBpZHgpOiBudW1iZXIgPT4ge1xuICAgIGlmICh1bnNwZW50cy5sZW5ndGggIT09IHR4Lmlucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBpZiAoIXByZXZPdXRwdXRzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgc3RhdGVgKTtcbiAgICB9XG4gICAgaWYgKCFyb290V2FsbGV0S2V5cykge1xuICAgICAgLy8gbm8gcHViIGtleXMgb3IgaW5jb3JyZWN0IG51bWJlciBvZiBwdWIga2V5c1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYml0Z28udmVyaWZ5U2lnbmF0dXJlV2l0aFVuc3BlbnQ8VE51bWJlcj4odHgsIGlkeCwgdW5zcGVudHMsIHJvb3RXYWxsZXRLZXlzKS5maWx0ZXIoKHYpID0+IHYpLmxlbmd0aDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBzb21lIG90aGVyIGVycm9yIG9jY3VycmVkIGFuZCB3ZSBjYW4ndCB2YWxpZGF0ZSB0aGUgc2lnbmF0dXJlc1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBEZWNvbXBvc2UgYSByYXcgcHNidCBpbnRvIHVzZWZ1bCBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgdG90YWwgYW1vdW50cyxcbiAqIGNoYW5nZSBhbW91bnRzLCBhbmQgdHJhbnNhY3Rpb24gb3V0cHV0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5Qc2J0PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQsIFR4IGV4dGVuZHMgYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4+KFxuICBwc2J0OiBiaXRnby5VdHhvUHNidDxUeD4sXG4gIHBhcmFtczoge1xuICAgIHB1YnM/OiBzdHJpbmdbXTtcbiAgICB0eEluZm8/OiB7IHVuc3BlbnRzPzogYml0Z28uVW5zcGVudDxUTnVtYmVyPltdIH07XG4gIH0sXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgeyBzdHJpY3QgPSBmYWxzZSB9OiB7IHN0cmljdD86IGJvb2xlYW4gfSA9IHt9XG4pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgY29uc3QgdHhPdXRwdXRzID0gcHNidC50eE91dHB1dHM7XG4gIGNvbnN0IHR4SW5wdXRzID0gcHNidC50eElucHV0cztcblxuICBmdW5jdGlvbiBnZXRDaGFpbkFuZEluZGV4RnJvbUJpcDMyRGVyaXZhdGlvbnMob3V0cHV0OiBiaXRnby5Qc2J0T3V0cHV0KSB7XG4gICAgY29uc3QgZGVyaXZhdGlvbnMgPSBvdXRwdXQuYmlwMzJEZXJpdmF0aW9uID8/IG91dHB1dC50YXBCaXAzMkRlcml2YXRpb24gPz8gdW5kZWZpbmVkO1xuICAgIGlmICghZGVyaXZhdGlvbnMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHBhdGhzID0gZGVyaXZhdGlvbnMubWFwKChkKSA9PiBkLnBhdGgpO1xuICAgIGlmICghcGF0aHMgfHwgcGF0aHMubGVuZ3RoICE9PSAzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIDMgcGF0aHMgaW4gYmlwMzJEZXJpdmF0aW9uIG9yIHRhcEJpcDMyRGVyaXZhdGlvbicpO1xuICAgIH1cbiAgICBpZiAoIXBhdGhzLmV2ZXJ5KChwKSA9PiBwYXRoc1swXSA9PT0gcCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgYWxsIHBhdGhzIHRvIGJlIHRoZSBzYW1lJyk7XG4gICAgfVxuXG4gICAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgaWYgKHBhdGhzWzBdICE9PSBwYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnVW5hYmxlIHRvIGdldCBhIHNpbmdsZSBjaGFpbiBhbmQgaW5kZXggb24gdGhlIG91dHB1dCBiZWNhdXNlIHRoZXJlIGFyZSBkaWZmZXJlbnQgcGF0aHMgZm9yIGRpZmZlcmVudCBrZXlzJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB1dHhvbGliLmJpdGdvLmdldENoYWluQW5kSW5kZXhGcm9tUGF0aChwYXRoc1swXSk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRDaGFuZ2VJbmZvKCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdXR4b2xpYi5iaXRnby5maW5kSW50ZXJuYWxPdXRwdXRJbmRpY2VzKHBzYnQpLm1hcCgoaSkgPT4ge1xuICAgICAgICBjb25zdCBkZXJpdmF0aW9uSW5mb3JtYXRpb24gPSBnZXRDaGFpbkFuZEluZGV4RnJvbUJpcDMyRGVyaXZhdGlvbnMocHNidC5kYXRhLm91dHB1dHNbaV0pO1xuICAgICAgICBpZiAoIWRlcml2YXRpb25JbmZvcm1hdGlvbikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZpbmQgZGVyaXZhdGlvbiBpbmZvcm1hdGlvbiBvbiBiaXAzMkRlcml2YXRpb24gb3IgdGFwQmlwMzJEZXJpdmF0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhZGRyZXNzOiB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdCh0eE91dHB1dHNbaV0uc2NyaXB0LCBuZXR3b3JrKSxcbiAgICAgICAgICBleHRlcm5hbDogZmFsc2UsXG4gICAgICAgICAgLi4uZGVyaXZhdGlvbkluZm9ybWF0aW9uLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLkVycm9yTm9NdWx0aVNpZ0lucHV0Rm91bmQpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgUGF5R28gYWRkcmVzcyBwcm9vZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBQU0JUIGlmIHByZXNlbnRcbiAgICogQHJldHVybnMgSW5mb3JtYXRpb24gYWJvdXQgdGhlIFBheUdvIHByb29mLCBpbmNsdWRpbmcgdGhlIG91dHB1dCBpbmRleCBhbmQgYWRkcmVzc1xuICAgKi9cbiAgZnVuY3Rpb24gZ2V0UGF5R29WZXJpZmljYXRpb25JbmZvKCk6IHsgb3V0cHV0SW5kZXg6IG51bWJlcjsgdmVyaWZpY2F0aW9uUHVia2V5OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IG91dHB1dEluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgbGV0IGFkZHJlc3M6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvLyBDaGVjayBpZiB0aGlzIFBTQlQgaGFzIGFueSBQYXlHbyBhZGRyZXNzIHByb29mc1xuICAgIGlmICghdXR4b2NvcmUucGF5Z28ucHNidE91dHB1dEluY2x1ZGVzUGF5Z29BZGRyZXNzUHJvb2YocHNidCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBwdWxscyB0aGUgcHVia2V5IGRlcGVuZGluZyBvbiBnaXZlbiBuZXR3b3JrXG4gICAgY29uc3QgdmVyaWZpY2F0aW9uUHVia2V5ID0gZ2V0UGF5R29WZXJpZmljYXRpb25QdWJrZXkobmV0d29yayk7XG4gICAgLy8gZmluZCB3aGljaCBvdXRwdXQgaW5kZXggdGhhdCBjb250YWlucyB0aGUgUGF5R28gcHJvb2ZcbiAgICBvdXRwdXRJbmRleCA9IHV0eG9jb3JlLnBheWdvLmdldFBheUdvQWRkcmVzc1Byb29mT3V0cHV0SW5kZXgocHNidCk7XG4gICAgaWYgKG91dHB1dEluZGV4ID09PSB1bmRlZmluZWQgfHwgIXZlcmlmaWNhdGlvblB1YmtleSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0ID0gdHhPdXRwdXRzW291dHB1dEluZGV4XTtcbiAgICBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQob3V0cHV0LnNjcmlwdCwgbmV0d29yayk7XG4gICAgaWYgKCFhZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbiBub3QgZGVyaXZlIGFkZHJlc3MgJHthZGRyZXNzfSBQYXkgR28gQXR0ZXN0YXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgb3V0cHV0SW5kZXgsIHZlcmlmaWNhdGlvblB1YmtleSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgdGhlIEJJUDMyMiBtZXNzYWdlcyBhbmQgYWRkcmVzc2VzIGZyb20gdGhlIFBTQlQgaW5wdXRzIGFuZCBwZXJmb3JtXG4gICAqIHZlcmlmaWNhdGlvbiBvbiB0aGUgdHJhbnNhY3Rpb24gdG8gZW5zdXJlIHRoYXQgaXQgbWVldHMgdGhlIEJJUDMyMiByZXF1aXJlbWVudHMuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyB0aGUgbWVzc2FnZSBhbmQgYWRkcmVzcyBmb3IgZWFjaCBpbnB1dCxcbiAgICogICAgICAgICAgb3IgdW5kZWZpbmVkIGlmIG5vIEJJUDMyMiBtZXNzYWdlcyBhcmUgZm91bmQuXG4gICAqL1xuICBmdW5jdGlvbiBnZXRCaXAzMjJNZXNzYWdlSW5mb0FuZFZlcmlmeSgpOiBCaXAzMjJNZXNzYWdlW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGJpcDMyMk1lc3NhZ2VzOiB7IG1lc3NhZ2U6IHN0cmluZzsgYWRkcmVzczogc3RyaW5nIH1bXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHNidC5kYXRhLmlucHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGJpcDMyMi5nZXRCaXAzMjJQcm9vZk1lc3NhZ2VBdEluZGV4KHBzYnQsIGkpO1xuICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBwc2J0LmRhdGEuaW5wdXRzW2ldO1xuICAgICAgICBpZiAoIWlucHV0LndpdG5lc3NVdHhvKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHdpdG5lc3NVdHhvIGZvciBpbnB1dCBpbmRleCAke2l9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpbnB1dC5ub25XaXRuZXNzVXR4bykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBub25XaXRuZXNzVXR4byBmb3IgaW5wdXQgaW5kZXggJHtpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjcmlwdFB1YktleSA9IGlucHV0LndpdG5lc3NVdHhvLnNjcmlwdDtcblxuICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgdG9TcGVuZCB0cmFuc2FjdGlvbiBjYW4gYmUgcmVjcmVhdGVkIGluIHRoZSBQU0JUIGFuZCBpcyBlbmNvZGVkIGNvcnJlY3RseSBpbiB0aGUgbm9uV2l0bmVzc1V0eG9cbiAgICAgICAgY29uc3QgdG9TcGVuZCA9IGJpcDMyMi5idWlsZFRvU3BlbmRUcmFuc2FjdGlvbihzY3JpcHRQdWJLZXksIG1lc3NhZ2UpO1xuICAgICAgICBjb25zdCB0b1NwZW5kQjY0ID0gdG9TcGVuZC50b0J1ZmZlcigpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgaWYgKGlucHV0Lm5vbldpdG5lc3NVdHhvLnRvU3RyaW5nKCdiYXNlNjQnKSAhPT0gdG9TcGVuZEI2NCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm9uLXdpdG5lc3MgVVRYTyBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgdG9TcGVuZCB0cmFuc2FjdGlvbiBhdCBpbnB1dCBpbmRleCAke2l9YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgdG9TcGVuZCB0cmFuc2FjdGlvbiBJRCBtYXRjaGVzIHRoZSBpbnB1dCdzIHJlZmVyZW5jZWQgdHJhbnNhY3Rpb24gSURcbiAgICAgICAgaWYgKHRvU3BlbmQuZ2V0SWQoKSAhPT0gdXR4b2xpYi5iaXRnby5nZXRPdXRwdXRJZEZvcklucHV0KHR4SW5wdXRzW2ldKS50eGlkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUb1NwZW5kIHRyYW5zYWN0aW9uIElEIGRvZXMgbm90IG1hdGNoIHRoZSBpbnB1dCBhdCBpbmRleCAke2l9YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWZXJpZnkgdGhlIGlucHV0IHNwZWNpZmljc1xuICAgICAgICBpZiAodHhJbnB1dHNbaV0uc2VxdWVuY2UgIT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgc2VxdWVuY2UgbnVtYmVyIGF0IGlucHV0IGluZGV4ICR7aX06ICR7dHhJbnB1dHNbaV0uc2VxdWVuY2V9LiBFeHBlY3RlZCAwLmApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eElucHV0c1tpXS5pbmRleCAhPT0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBpbnB1dCBpbmRleCBhdCBwb3NpdGlvbiAke2l9OiAke3R4SW5wdXRzW2ldLmluZGV4fS4gRXhwZWN0ZWQgMC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJpcDMyMk1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UudG9TdHJpbmcoJ3V0ZjgnKSxcbiAgICAgICAgICBhZGRyZXNzOiB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChzY3JpcHRQdWJLZXksIG5ldHdvcmspLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYmlwMzIyTWVzc2FnZXMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgYSBCSVAzMjIgbWVzc2FnZSBpbiBhbnkgaW5wdXQsIGFsbCBpbnB1dHMgbXVzdCBoYXZlIG9uZS5cbiAgICAgIGlmIChiaXAzMjJNZXNzYWdlcy5sZW5ndGggIT09IHBzYnQuZGF0YS5pbnB1dHMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb25zaXN0ZW50IEJJUDMyMiBtZXNzYWdlcyBhY3Jvc3MgaW5wdXRzLicpO1xuICAgICAgfVxuXG4gICAgICAvLyBWZXJpZnkgdGhlIHRyYW5zYWN0aW9uIHNwZWNpZmljcyBmb3IgQklQMzIyXG4gICAgICBpZiAocHNidC52ZXJzaW9uICE9PSAwICYmIHBzYnQudmVyc2lvbiAhPT0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIFBTQlQgdmVyc2lvbiBmb3IgQklQMzIyOiAke3BzYnQudmVyc2lvbn0uIEV4cGVjdGVkIDAgYCk7XG4gICAgICB9XG4gICAgICBpZiAocHNidC5kYXRhLm91dHB1dHMubGVuZ3RoICE9PSAxIHx8IHR4T3V0cHV0c1swXS5zY3JpcHQudG9TdHJpbmcoJ2hleCcpICE9PSAnNmEnIHx8IHR4T3V0cHV0c1swXS52YWx1ZSAhPT0gMG4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFBTQlQgb3V0cHV0cyBmb3IgQklQMzIyLiBFeHBlY3RlZCBleGFjdGx5IG9uZSBPUF9SRVRVUk4gb3V0cHV0IHdpdGggemVybyB2YWx1ZS5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJpcDMyMk1lc3NhZ2VzO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBwYXlHb1ZlcmlmaWNhdGlvbkluZm8gPSBnZXRQYXlHb1ZlcmlmaWNhdGlvbkluZm8oKTtcbiAgaWYgKHBheUdvVmVyaWZpY2F0aW9uSW5mbykge1xuICAgIHRyeSB7XG4gICAgICB1dHhvY29yZS5wYXlnby52ZXJpZnlQYXlHb0FkZHJlc3NQcm9vZihcbiAgICAgICAgcHNidCxcbiAgICAgICAgcGF5R29WZXJpZmljYXRpb25JbmZvLm91dHB1dEluZGV4LFxuICAgICAgICBiaXAzMi5mcm9tQmFzZTU4KHBheUdvVmVyaWZpY2F0aW9uSW5mby52ZXJpZmljYXRpb25QdWJrZXksIHV0eG9saWIubmV0d29ya3MuYml0Y29pbikucHVibGljS2V5XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbWVzc2FnZXMgPSBnZXRCaXAzMjJNZXNzYWdlSW5mb0FuZFZlcmlmeSgpO1xuICBjb25zdCBjaGFuZ2VJbmZvID0gZ2V0Q2hhbmdlSW5mbygpO1xuICBjb25zdCB0eCA9IHBzYnQuZ2V0VW5zaWduZWRUeCgpIGFzIGJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPjtcbiAgY29uc3QgY29tbW9uID0gZXhwbGFpbkNvbW1vbih0eCwgeyAuLi5wYXJhbXMsIGNoYW5nZUluZm8gfSwgbmV0d29yayk7XG4gIGNvbnN0IGlucHV0U2lnbmF0dXJlc0NvdW50ID0gZ2V0UHNidElucHV0U2lnbmF0dXJlc0NvdW50KHBzYnQsIHBhcmFtcyk7XG5cbiAgLy8gU2V0IGZlZSBmcm9tIHN1YnRyYWN0aW5nIGlucHV0cyBmcm9tIG91dHB1dHNcbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gdHhPdXRwdXRzLnJlZHVjZSgoY3VtdWxhdGl2ZSwgY3VycikgPT4gY3VtdWxhdGl2ZSArIEJpZ0ludChjdXJyLnZhbHVlKSwgQmlnSW50KDApKTtcbiAgY29uc3QgaW5wdXRBbW91bnQgPSBwc2J0LnR4SW5wdXRzLnJlZHVjZSgoY3VtdWxhdGl2ZSwgdHhJbnB1dCwgaSkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBwc2J0LmRhdGEuaW5wdXRzW2ldO1xuICAgIGlmIChkYXRhLndpdG5lc3NVdHhvKSB7XG4gICAgICByZXR1cm4gY3VtdWxhdGl2ZSArIEJpZ0ludChkYXRhLndpdG5lc3NVdHhvLnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKGRhdGEubm9uV2l0bmVzc1V0eG8pIHtcbiAgICAgIGNvbnN0IHR4ID0gYml0Z28uY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyPGJpZ2ludD4oZGF0YS5ub25XaXRuZXNzVXR4bywgbmV0d29yaywgeyBhbW91bnRUeXBlOiAnYmlnaW50JyB9KTtcbiAgICAgIHJldHVybiBjdW11bGF0aXZlICsgQmlnSW50KHR4Lm91dHNbdHhJbnB1dC5pbmRleF0udmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvdWxkIG5vdCBmaW5kIHZhbHVlIG9uIGlucHV0Jyk7XG4gICAgfVxuICB9LCBCaWdJbnQoMCkpO1xuXG4gIHJldHVybiB7XG4gICAgLi4uY29tbW9uLFxuICAgIGZlZTogKGlucHV0QW1vdW50IC0gb3V0cHV0QW1vdW50KS50b1N0cmluZygpLFxuICAgIGlucHV0U2lnbmF0dXJlczogaW5wdXRTaWduYXR1cmVzQ291bnQsXG4gICAgc2lnbmF0dXJlczogaW5wdXRTaWduYXR1cmVzQ291bnQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAoY3VyciA+IHByZXYgPyBjdXJyIDogcHJldiksIDApLFxuICAgIG1lc3NhZ2VzLFxuICB9IGFzIFRyYW5zYWN0aW9uRXhwbGFuYXRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluTGVnYWN5VHg8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4OiBiaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIHBhcmFtczoge1xuICAgIHB1YnM/OiBzdHJpbmdbXTtcbiAgICB0eEluZm8/OiB7IHVuc3BlbnRzPzogYml0Z28uVW5zcGVudDxUTnVtYmVyPltdIH07XG4gICAgY2hhbmdlSW5mbz86IHsgYWRkcmVzczogc3RyaW5nOyBjaGFpbjogbnVtYmVyOyBpbmRleDogbnVtYmVyIH1bXTtcbiAgfSxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgY29uc3QgY29tbW9uID0gZXhwbGFpbkNvbW1vbih0eCwgcGFyYW1zLCBuZXR3b3JrKTtcbiAgY29uc3QgaW5wdXRTaWduYXR1cmVzQ291bnQgPSBnZXRUeElucHV0U2lnbmF0dXJlc0NvdW50KHR4LCBwYXJhbXMsIG5ldHdvcmspO1xuICByZXR1cm4ge1xuICAgIC4uLmNvbW1vbixcbiAgICBpbnB1dFNpZ25hdHVyZXM6IGlucHV0U2lnbmF0dXJlc0NvdW50LFxuICAgIHNpZ25hdHVyZXM6IGlucHV0U2lnbmF0dXJlc0NvdW50LnJlZHVjZSgocHJldiwgY3VycikgPT4gKGN1cnIgPiBwcmV2ID8gY3VyciA6IHByZXYpLCAwKSxcbiAgfSBhcyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { BIP32Interface } from '@bitgo-beta/utxo-lib';
1
+ import { BIP32Interface } from '@bitgo-beta/secp256k1';
2
2
  import * as utxolib from '@bitgo-beta/utxo-lib';
3
3
  import { AbstractUtxoCoin, DecodedTransaction } from '../../abstractUtxoCoin';
4
4
  export declare function signTransaction<TNumber extends number | bigint>(coin: AbstractUtxoCoin, tx: DecodedTransaction<TNumber>, signerKeychain: BIP32Interface | undefined, params: {
@@ -1 +1 @@
1
- {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,cAAc,EAAS,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAIhD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAkB,MAAM,wBAAwB,CAAC;AAY9F,wBAAsB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACnE,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAC/B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IACpE,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,iBAAiB;IACjB,kCAAkC,EAAE,OAAO,CAAC;IAC5C,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,GACA,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAuF5B"}
1
+ {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAS,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAIhD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAkB,MAAM,wBAAwB,CAAC;AAY9F,wBAAsB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACnE,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAC/B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IACpE,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,iBAAiB;IACjB,kCAAkC,EAAE,OAAO,CAAC;IAC5C,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,GACA,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAuF5B"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.signTransaction = signTransaction;
7
7
  const assert_1 = __importDefault(require("assert"));
8
8
  const lodash_1 = __importDefault(require("lodash"));
9
+ const secp256k1_1 = require("@bitgo-beta/secp256k1");
9
10
  const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
10
11
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
11
12
  const sign_1 = require("../../sign");
@@ -84,9 +85,9 @@ async function signTransaction(coin, tx, signerKeychain, params) {
84
85
  if (!params.pubs || !(0, sdk_core_1.isTriple)(params.pubs)) {
85
86
  throw new Error(`must provide xpub array`);
86
87
  }
87
- const keychains = params.pubs.map((pub) => utxo_lib_1.bip32.fromBase58(pub));
88
+ const keychains = params.pubs.map((pub) => secp256k1_1.bip32.fromBase58(pub));
88
89
  const cosignerPub = params.cosignerPub ?? params.pubs[2];
89
- const cosignerKeychain = utxo_lib_1.bip32.fromBase58(cosignerPub);
90
+ const cosignerKeychain = secp256k1_1.bip32.fromBase58(cosignerPub);
90
91
  (0, assert_1.default)(signerKeychain);
91
92
  const walletSigner = new utxo_lib_1.bitgo.WalletUnspentSigner(keychains, signerKeychain, cosignerKeychain);
92
93
  signedTransaction = (0, sign_1.signAndVerifyWalletTransaction)(tx, params.txInfo.unspents, walletSigner, {
@@ -97,4 +98,4 @@ async function signTransaction(coin, tx, signerKeychain, params) {
97
98
  txHex: signedTransaction.toBuffer().toString('hex'),
98
99
  };
99
100
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW9CQSwwQ0FxR0M7QUF6SEQsb0RBQTRCO0FBRTVCLG9EQUF1QjtBQUN2QixtREFBb0U7QUFFcEUsbURBQXdEO0FBRXhELHFDQUErRTtBQUcvRTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQWtDLENBQUM7QUFFdEQsS0FBSyxVQUFVLGVBQWUsQ0FDbkMsSUFBc0IsRUFDdEIsRUFBK0IsRUFDL0IsY0FBMEMsRUFDMUMsTUFTQztJQUVELE1BQU0seUJBQXlCLEdBQUcsRUFBRSxZQUFZLGdCQUFLLENBQUMsUUFBUSxJQUFJLGdCQUFLLENBQUMsa0NBQWtDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFL0csSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLElBQUksZ0JBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDeEMsaUdBQWlHO1FBQ2pHLG1HQUFtRztRQUNuRywyQkFBMkI7UUFDM0IsSUFBSSxNQUFNLENBQUMsZUFBZSxJQUFJLHlCQUF5QixFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO1FBQzFGLENBQUM7UUFFRCxzR0FBc0c7UUFDdEcsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksRUFBRSxZQUFZLGdCQUFLLENBQUMsUUFBUSxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDOUQsUUFBUSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IsS0FBSyxhQUFhO2dCQUNoQixJQUFBLGdCQUFNLEVBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZC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R0FBRyxFQUFFLEVBQUUsQ0FBQyxnQkFBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBMkIsQ0FBQztRQUM1RixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV2RCxJQUFBLGdCQUFNLEVBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxnQkFBSyxDQUFDLG1CQUFtQixDQUFpQixTQUFTLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDaEgsaUJBQWlCLEdBQUcsSUFBQSxxQ0FBOEIsRUFBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFO1lBQzNGLGVBQWU7U0FDaEIsQ0FBa0MsQ0FBQztJQUN0QyxDQUFDO0lBRUQsT0FBTztRQUNMLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0tBQ3BELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgYmlwMzIsIEJJUDMySW50ZXJmYWNlLCBiaXRnbyB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgaXNUcmlwbGUsIFRyaXBsZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgc2lnbkFuZFZlcmlmeVBzYnQsIHNpZ25BbmRWZXJpZnlXYWxsZXRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3NpZ24nO1xuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgRGVjb2RlZFRyYW5zYWN0aW9uLCBSb290V2FsbGV0S2V5cyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuXG4vKipcbiAqIEtleSBWYWx1ZTogVW5zaWduZWQgdHggaWQgPT4gUFNCVFxuICogSXQgaXMgdXNlZCB0byBjYWNoZSBQU0JUcyB3aXRoIHRhcHJvb3Qga2V5IHBhdGggKE11U2lnMikgaW5wdXRzIGR1cmluZyBleHRlcm5hbCBleHByZXNzIHNpZ25lciBpcyBhY3RpdmF0ZWQuXG4gKiBSZWFzb246IE11U2lnMiBzaWduZXIgc2VjdXJlIG5vbmNlIGlzIGNhY2hlZCBpbiB0aGUgVXR4b1BzYnQgb2JqZWN0LiBJdCB3aWxsIGJlIHJlcXVpcmVkIGR1cmluZyB0aGUgc2lnbmluZyBzdGVwLlxuICogRm9yIG1vcmUgaW5mbywgY2hlY2sgU2lnblRyYW5zYWN0aW9uT3B0aW9ucy5zaWduaW5nU3RlcFxuICpcbiAqIFRPRE8gQlRDLTI3NjogVGhpcyBjYWNoZSBtYXkgbmVlZCB0byBiZSBkb25lIHdpdGggTFJVIGxpa2UgbWVtb3J5IHNhZmUgY2FjaGluZyBpZiBtZW1vcnkgaXNzdWVzIGNvbWVzIHVwLlxuICovXG5jb25zdCBQU0JUX0NBQ0hFID0gbmV3IE1hcDxzdHJpbmcsIHV0eG9saWIuYml0Z28uVXR4b1BzYnQ+KCk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHR4OiBEZWNvZGVkVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIHNpZ25lcktleWNoYWluOiBCSVAzMkludGVyZmFjZSB8IHVuZGVmaW5lZCxcbiAgcGFyYW1zOiB7XG4gICAgd2FsbGV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB0eEluZm86IHsgdW5zcGVudHM/OiB1dHhvbGliLmJpdGdvLlVuc3BlbnQ8VE51bWJlcj5bXSB9IHwgdW5kZWZpbmVkO1xuICAgIGlzTGFzdFNpZ25hdHVyZTogYm9vbGVhbjtcbiAgICBzaWduaW5nU3RlcDogJ3NpZ25lck5vbmNlJyB8ICdjb3NpZ25lck5vbmNlJyB8ICdzaWduZXJTaWduYXR1cmUnIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBkZXByZWNhdGVkICovXG4gICAgYWxsb3dOb25TZWd3aXRTaWduaW5nV2l0aG91dFByZXZUeDogYm9vbGVhbjtcbiAgICBwdWJzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICBjb3NpZ25lclB1Yjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG4pOiBQcm9taXNlPHsgdHhIZXg6IHN0cmluZyB9PiB7XG4gIGNvbnN0IGlzVHhXaXRoS2V5UGF0aFNwZW5kSW5wdXQgPSB0eCBpbnN0YW5jZW9mIGJpdGdvLlV0eG9Qc2J0ICYmIGJpdGdvLmlzVHJhbnNhY3Rpb25XaXRoS2V5UGF0aFNwZW5kSW5wdXQodHgpO1xuXG4gIGxldCBpc0xhc3RTaWduYXR1cmUgPSBmYWxzZTtcbiAgaWYgKF8uaXNCb29sZWFuKHBhcmFtcy5pc0xhc3RTaWduYXR1cmUpKSB7XG4gICAgLy8gV2UgY2FuIG9ubHkgYmUgdGhlIGZpcnN0IHNpZ25hdHVyZSBvbiBhIHRyYW5zYWN0aW9uIHdpdGggdGFwcm9vdCBrZXkgcGF0aCBzcGVuZCBpbnB1dHMgYmVjYXVzZVxuICAgIC8vIHdlIHJlcXVpcmUgdGhlIHNlY3JldCBub25jZSBpbiB0aGUgY2FjaGUgb2YgdGhlIGZpcnN0IHNpZ25lciwgd2hpY2ggaXMgaW1wb3NzaWJsZSB0byByZXRyaWV2ZSBpZlxuICAgIC8vIGRlc2VyaWFsaXplZCBmcm9tIGEgaGV4LlxuICAgIGlmIChwYXJhbXMuaXNMYXN0U2lnbmF0dXJlICYmIGlzVHhXaXRoS2V5UGF0aFNwZW5kSW5wdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGJlIGxhc3Qgc2lnbmF0dXJlIG9uIGEgdHJhbnNhY3Rpb24gd2l0aCBrZXkgcGF0aCBzcGVuZCBpbnB1dHMnKTtcbiAgICB9XG5cbiAgICAvLyBpZiBidWlsZCBpcyBjYWxsZWQgaW5zdGVhZCBvZiBidWlsZEluY29tcGxldGUsIG5vIHNpZ25hdHVyZSBwbGFjZWhvbGRlcnMgYXJlIGxlZnQgaW4gdGhlIHNpZyBzY3JpcHRcbiAgICBpc0xhc3RTaWduYXR1cmUgPSBwYXJhbXMuaXNMYXN0U2lnbmF0dXJlO1xuICB9XG5cbiAgaWYgKHR4IGluc3RhbmNlb2YgYml0Z28uVXR4b1BzYnQgJiYgaXNUeFdpdGhLZXlQYXRoU3BlbmRJbnB1dCkge1xuICAgIHN3aXRjaCAocGFyYW1zLnNpZ25pbmdTdGVwKSB7XG4gICAgICBjYXNlICdzaWduZXJOb25jZSc6XG4gICAgICAgIGFzc2VydChzaWduZXJLZXljaGFpbik7XG4gICAgICAgIHR4LnNldEFsbElucHV0c011c2lnMk5vbmNlSEQoc2lnbmVyS2V5Y2hhaW4pO1xuICAgICAgICBQU0JUX0NBQ0hFLnNldCh0eC5nZXRVbnNpZ25lZFR4KCkuZ2V0SWQoKSwgdHgpO1xuICAgICAgICByZXR1cm4geyB0eEhleDogdHgudG9IZXgoKSB9O1xuICAgICAgY2FzZSAnY29zaWduZXJOb25jZSc6XG4gICAgICAgIGFzc2VydChwYXJhbXMud2FsbGV0SWQsICd3YWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgTXVTaWcyIGJpdGdvIG5vbmNlJyk7XG4gICAgICAgIHJldHVybiB7IHR4SGV4OiAoYXdhaXQgY29pbi5zaWduUHNidCh0eC50b0hleCgpLCBwYXJhbXMud2FsbGV0SWQpKS5wc2J0IH07XG4gICAgICBjYXNlICdzaWduZXJTaWduYXR1cmUnOlxuICAgICAgICBjb25zdCB0eElkID0gdHguZ2V0VW5zaWduZWRUeCgpLmdldElkKCk7XG4gICAgICAgIGNvbnN0IHBzYnQgPSBQU0JUX0NBQ0hFLmdldCh0eElkKTtcbiAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgIHBzYnQsXG4gICAgICAgICAgYFBzYnQgaXMgbWlzc2luZyBmcm9tIHR4Q2FjaGUgKGNhY2hlIHNpemUgJHtQU0JUX0NBQ0hFLnNpemV9KS5cbiAgICAgICAgICAgIFRoaXMgbWF5IGJlIGR1ZSB0byB0aGUgcmVxdWVzdCBiZWluZyByb3V0ZWQgdG8gYSBkaWZmZXJlbnQgQml0R28tRXhwcmVzcyBpbnN0YW5jZSB0aGF0IGZvciBzaWduaW5nIHN0ZXAgJ3NpZ25lck5vbmNlJy5gXG4gICAgICAgICk7XG4gICAgICAgIFBTQlRfQ0FDSEUuZGVsZXRlKHR4SWQpO1xuICAgICAgICB0eCA9IHBzYnQuY29tYmluZSh0eCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gdGhpcyBpbnN0YW5jZSBpcyBub3QgYW4gZXh0ZXJuYWwgc2lnbmVyXG4gICAgICAgIGFzc2VydChwYXJhbXMud2FsbGV0SWQsICd3YWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgTXVTaWcyIGJpdGdvIG5vbmNlJyk7XG4gICAgICAgIGFzc2VydChzaWduZXJLZXljaGFpbik7XG4gICAgICAgIHR4LnNldEFsbElucHV0c011c2lnMk5vbmNlSEQoc2lnbmVyS2V5Y2hhaW4pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNvaW4uc2lnblBzYnQodHgudG9IZXgoKSwgcGFyYW1zLndhbGxldElkKTtcbiAgICAgICAgdHguY29tYmluZShiaXRnby5jcmVhdGVQc2J0RnJvbUhleChyZXNwb25zZS5wc2J0LCBjb2luLm5ldHdvcmspKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN3aXRjaCAocGFyYW1zLnNpZ25pbmdTdGVwKSB7XG4gICAgICBjYXNlICdzaWduZXJOb25jZSc6XG4gICAgICBjYXNlICdjb3NpZ25lck5vbmNlJzpcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluIGNlcnRhaW4gY2FzZXMsIHRoZSBjYWxsZXIgb2YgdGhpcyBtZXRob2QgbWF5IG5vdCBrbm93IHdoZXRoZXIgdGhlIHR4SGV4IGNvbnRhaW5zIGEgcHNidCB3aXRoIHRhcHJvb3Qga2V5IHBhdGggc3BlbmQgaW5wdXQocykuXG4gICAgICAgICAqIEluc3RlYWQgb2YgdGhyb3dpbmcgZXJyb3IsIG5vLW9wIGFuZCByZXR1cm4gdGhlIHR4SGV4LiBTbyB0aGF0IHRoZSBjYWxsZXIgY2FuIGNhbGwgdGhpcyBtZXRob2QgaW4gdGhlIHNhbWUgc2VxdWVuY2UuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4geyB0eEhleDogdHgudG9IZXgoKSB9O1xuICAgIH1cbiAgfVxuXG4gIGxldCBzaWduZWRUcmFuc2FjdGlvbjogYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4gfCBiaXRnby5VdHhvUHNidDtcbiAgaWYgKHR4IGluc3RhbmNlb2YgYml0Z28uVXR4b1BzYnQpIHtcbiAgICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4pO1xuICAgIHNpZ25lZFRyYW5zYWN0aW9uID0gc2lnbkFuZFZlcmlmeVBzYnQodHgsIHNpZ25lcktleWNoYWluLCB7XG4gICAgICBpc0xhc3RTaWduYXR1cmUsXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR4Lmlucy5sZW5ndGggIT09IHBhcmFtcy50eEluZm8/LnVuc3BlbnRzPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbGVuZ3RoIG9mIHVuc3BlbnRzIGFycmF5IHNob3VsZCBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIHRyYW5zYWN0aW9uIGlucHV0cycpO1xuICAgIH1cblxuICAgIGlmICghcGFyYW1zLnB1YnMgfHwgIWlzVHJpcGxlKHBhcmFtcy5wdWJzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgeHB1YiBhcnJheWApO1xuICAgIH1cblxuICAgIGNvbnN0IGtleWNoYWlucyA9IHBhcmFtcy5wdWJzLm1hcCgocHViKSA9PiBiaXAzMi5mcm9tQmFzZTU4KHB1YikpIGFzIFRyaXBsZTxCSVAzMkludGVyZmFjZT47XG4gICAgY29uc3QgY29zaWduZXJQdWIgPSBwYXJhbXMuY29zaWduZXJQdWIgPz8gcGFyYW1zLnB1YnNbMl07XG4gICAgY29uc3QgY29zaWduZXJLZXljaGFpbiA9IGJpcDMyLmZyb21CYXNlNTgoY29zaWduZXJQdWIpO1xuXG4gICAgYXNzZXJ0KHNpZ25lcktleWNoYWluKTtcbiAgICBjb25zdCB3YWxsZXRTaWduZXIgPSBuZXcgYml0Z28uV2FsbGV0VW5zcGVudFNpZ25lcjxSb290V2FsbGV0S2V5cz4oa2V5Y2hhaW5zLCBzaWduZXJLZXljaGFpbiwgY29zaWduZXJLZXljaGFpbik7XG4gICAgc2lnbmVkVHJhbnNhY3Rpb24gPSBzaWduQW5kVmVyaWZ5V2FsbGV0VHJhbnNhY3Rpb24odHgsIHBhcmFtcy50eEluZm8udW5zcGVudHMsIHdhbGxldFNpZ25lciwge1xuICAgICAgaXNMYXN0U2lnbmF0dXJlLFxuICAgIH0pIGFzIGJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eEhleDogc2lnbmVkVHJhbnNhY3Rpb24udG9CdWZmZXIoKS50b1N0cmluZygnaGV4JyksXG4gIH07XG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXFCQSwwQ0FxR0M7QUExSEQsb0RBQTRCO0FBRTVCLG9EQUF1QjtBQUN2QixxREFBOEQ7QUFDOUQsbURBQTZDO0FBRTdDLG1EQUF3RDtBQUV4RCxxQ0FBK0U7QUFHL0U7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFrQyxDQUFDO0FBRXRELEtBQUssVUFBVSxlQUFlLENBQ25DLElBQXNCLEVBQ3RCLEVBQStCLEVBQy9CLGNBQTBDLEVBQzFDLE1BU0M7SUFFRCxNQUFNLHlCQUF5QixHQUFHLEVBQUUsWUFBWSxnQkFBSyxDQUFDLFFBQVEsSUFBSSxnQkFBSyxDQUFDLGtDQUFrQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRS9HLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztJQUM1QixJQUFJLGdCQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3hDLGlHQUFpRztRQUNqRyxtR0FBbUc7UUFDbkcsMkJBQTJCO1FBQzNCLElBQUksTUFBTSxDQUFDLGVBQWUsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1lBQ3hELE1BQU0sSUFBSSxLQUFLLENBQUMsc0VBQXNFLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBRUQsc0dBQXNHO1FBQ3RHLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLEVBQUUsWUFBWSxnQkFBSyxDQUFDLFFBQVEsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBQzlELFFBQVEsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLEtBQUssYUFBYTtnQkFDaEIsSUFBQSxnQkFBTSxFQUFDLGNBQWMsQ0FB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QUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsaUJBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQTJCLENBQUM7UUFDNUYsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sZ0JBQWdCLEdBQUcsaUJBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkQsSUFBQSxnQkFBTSxFQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksZ0JBQUssQ0FBQyxtQkFBbUIsQ0FBaUIsU0FBUyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hILGlCQUFpQixHQUFHLElBQUEscUNBQThCLEVBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRTtZQUMzRixlQUFlO1NBQ2hCLENBQWtDLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU87UUFDTCxLQUFLLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztLQUNwRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJJUDMySW50ZXJmYWNlLCBiaXAzMiB9IGZyb20gJ0BiaXRnby1iZXRhL3NlY3AyNTZrMSc7XG5pbXBvcnQgeyBiaXRnbyB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgaXNUcmlwbGUsIFRyaXBsZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgc2lnbkFuZFZlcmlmeVBzYnQsIHNpZ25BbmRWZXJpZnlXYWxsZXRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3NpZ24nO1xuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgRGVjb2RlZFRyYW5zYWN0aW9uLCBSb290V2FsbGV0S2V5cyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuXG4vKipcbiAqIEtleSBWYWx1ZTogVW5zaWduZWQgdHggaWQgPT4gUFNCVFxuICogSXQgaXMgdXNlZCB0byBjYWNoZSBQU0JUcyB3aXRoIHRhcHJvb3Qga2V5IHBhdGggKE11U2lnMikgaW5wdXRzIGR1cmluZyBleHRlcm5hbCBleHByZXNzIHNpZ25lciBpcyBhY3RpdmF0ZWQuXG4gKiBSZWFzb246IE11U2lnMiBzaWduZXIgc2VjdXJlIG5vbmNlIGlzIGNhY2hlZCBpbiB0aGUgVXR4b1BzYnQgb2JqZWN0LiBJdCB3aWxsIGJlIHJlcXVpcmVkIGR1cmluZyB0aGUgc2lnbmluZyBzdGVwLlxuICogRm9yIG1vcmUgaW5mbywgY2hlY2sgU2lnblRyYW5zYWN0aW9uT3B0aW9ucy5zaWduaW5nU3RlcFxuICpcbiAqIFRPRE8gQlRDLTI3NjogVGhpcyBjYWNoZSBtYXkgbmVlZCB0byBiZSBkb25lIHdpdGggTFJVIGxpa2UgbWVtb3J5IHNhZmUgY2FjaGluZyBpZiBtZW1vcnkgaXNzdWVzIGNvbWVzIHVwLlxuICovXG5jb25zdCBQU0JUX0NBQ0hFID0gbmV3IE1hcDxzdHJpbmcsIHV0eG9saWIuYml0Z28uVXR4b1BzYnQ+KCk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHR4OiBEZWNvZGVkVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIHNpZ25lcktleWNoYWluOiBCSVAzMkludGVyZmFjZSB8IHVuZGVmaW5lZCxcbiAgcGFyYW1zOiB7XG4gICAgd2FsbGV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB0eEluZm86IHsgdW5zcGVudHM/OiB1dHhvbGliLmJpdGdvLlVuc3BlbnQ8VE51bWJlcj5bXSB9IHwgdW5kZWZpbmVkO1xuICAgIGlzTGFzdFNpZ25hdHVyZTogYm9vbGVhbjtcbiAgICBzaWduaW5nU3RlcDogJ3NpZ25lck5vbmNlJyB8ICdjb3NpZ25lck5vbmNlJyB8ICdzaWduZXJTaWduYXR1cmUnIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBkZXByZWNhdGVkICovXG4gICAgYWxsb3dOb25TZWd3aXRTaWduaW5nV2l0aG91dFByZXZUeDogYm9vbGVhbjtcbiAgICBwdWJzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICBjb3NpZ25lclB1Yjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG4pOiBQcm9taXNlPHsgdHhIZXg6IHN0cmluZyB9PiB7XG4gIGNvbnN0IGlzVHhXaXRoS2V5UGF0aFNwZW5kSW5wdXQgPSB0eCBpbnN0YW5jZW9mIGJpdGdvLlV0eG9Qc2J0ICYmIGJpdGdvLmlzVHJhbnNhY3Rpb25XaXRoS2V5UGF0aFNwZW5kSW5wdXQodHgpO1xuXG4gIGxldCBpc0xhc3RTaWduYXR1cmUgPSBmYWxzZTtcbiAgaWYgKF8uaXNCb29sZWFuKHBhcmFtcy5pc0xhc3RTaWduYXR1cmUpKSB7XG4gICAgLy8gV2UgY2FuIG9ubHkgYmUgdGhlIGZpcnN0IHNpZ25hdHVyZSBvbiBhIHRyYW5zYWN0aW9uIHdpdGggdGFwcm9vdCBrZXkgcGF0aCBzcGVuZCBpbnB1dHMgYmVjYXVzZVxuICAgIC8vIHdlIHJlcXVpcmUgdGhlIHNlY3JldCBub25jZSBpbiB0aGUgY2FjaGUgb2YgdGhlIGZpcnN0IHNpZ25lciwgd2hpY2ggaXMgaW1wb3NzaWJsZSB0byByZXRyaWV2ZSBpZlxuICAgIC8vIGRlc2VyaWFsaXplZCBmcm9tIGEgaGV4LlxuICAgIGlmIChwYXJhbXMuaXNMYXN0U2lnbmF0dXJlICYmIGlzVHhXaXRoS2V5UGF0aFNwZW5kSW5wdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGJlIGxhc3Qgc2lnbmF0dXJlIG9uIGEgdHJhbnNhY3Rpb24gd2l0aCBrZXkgcGF0aCBzcGVuZCBpbnB1dHMnKTtcbiAgICB9XG5cbiAgICAvLyBpZiBidWlsZCBpcyBjYWxsZWQgaW5zdGVhZCBvZiBidWlsZEluY29tcGxldGUsIG5vIHNpZ25hdHVyZSBwbGFjZWhvbGRlcnMgYXJlIGxlZnQgaW4gdGhlIHNpZyBzY3JpcHRcbiAgICBpc0xhc3RTaWduYXR1cmUgPSBwYXJhbXMuaXNMYXN0U2lnbmF0dXJlO1xuICB9XG5cbiAgaWYgKHR4IGluc3RhbmNlb2YgYml0Z28uVXR4b1BzYnQgJiYgaXNUeFdpdGhLZXlQYXRoU3BlbmRJbnB1dCkge1xuICAgIHN3aXRjaCAocGFyYW1zLnNpZ25pbmdTdGVwKSB7XG4gICAgICBjYXNlICdzaWduZXJOb25jZSc6XG4gICAgICAgIGFzc2VydChzaWduZXJLZXljaGFpbik7XG4gICAgICAgIHR4LnNldEFsbElucHV0c011c2lnMk5vbmNlSEQoc2lnbmVyS2V5Y2hhaW4pO1xuICAgICAgICBQU0JUX0NBQ0hFLnNldCh0eC5nZXRVbnNpZ25lZFR4KCkuZ2V0SWQoKSwgdHgpO1xuICAgICAgICByZXR1cm4geyB0eEhleDogdHgudG9IZXgoKSB9O1xuICAgICAgY2FzZSAnY29zaWduZXJOb25jZSc6XG4gICAgICAgIGFzc2VydChwYXJhbXMud2FsbGV0SWQsICd3YWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgTXVTaWcyIGJpdGdvIG5vbmNlJyk7XG4gICAgICAgIHJldHVybiB7IHR4SGV4OiAoYXdhaXQgY29pbi5zaWduUHNidCh0eC50b0hleCgpLCBwYXJhbXMud2FsbGV0SWQpKS5wc2J0IH07XG4gICAgICBjYXNlICdzaWduZXJTaWduYXR1cmUnOlxuICAgICAgICBjb25zdCB0eElkID0gdHguZ2V0VW5zaWduZWRUeCgpLmdldElkKCk7XG4gICAgICAgIGNvbnN0IHBzYnQgPSBQU0JUX0NBQ0hFLmdldCh0eElkKTtcbiAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgIHBzYnQsXG4gICAgICAgICAgYFBzYnQgaXMgbWlzc2luZyBmcm9tIHR4Q2FjaGUgKGNhY2hlIHNpemUgJHtQU0JUX0NBQ0hFLnNpemV9KS5cbiAgICAgICAgICAgIFRoaXMgbWF5IGJlIGR1ZSB0byB0aGUgcmVxdWVzdCBiZWluZyByb3V0ZWQgdG8gYSBkaWZmZXJlbnQgQml0R28tRXhwcmVzcyBpbnN0YW5jZSB0aGF0IGZvciBzaWduaW5nIHN0ZXAgJ3NpZ25lck5vbmNlJy5gXG4gICAgICAgICk7XG4gICAgICAgIFBTQlRfQ0FDSEUuZGVsZXRlKHR4SWQpO1xuICAgICAgICB0eCA9IHBzYnQuY29tYmluZSh0eCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gdGhpcyBpbnN0YW5jZSBpcyBub3QgYW4gZXh0ZXJuYWwgc2lnbmVyXG4gICAgICAgIGFzc2VydChwYXJhbXMud2FsbGV0SWQsICd3YWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgTXVTaWcyIGJpdGdvIG5vbmNlJyk7XG4gICAgICAgIGFzc2VydChzaWduZXJLZXljaGFpbik7XG4gICAgICAgIHR4LnNldEFsbElucHV0c011c2lnMk5vbmNlSEQoc2lnbmVyS2V5Y2hhaW4pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNvaW4uc2lnblBzYnQodHgudG9IZXgoKSwgcGFyYW1zLndhbGxldElkKTtcbiAgICAgICAgdHguY29tYmluZShiaXRnby5jcmVhdGVQc2J0RnJvbUhleChyZXNwb25zZS5wc2J0LCBjb2luLm5ldHdvcmspKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN3aXRjaCAocGFyYW1zLnNpZ25pbmdTdGVwKSB7XG4gICAgICBjYXNlICdzaWduZXJOb25jZSc6XG4gICAgICBjYXNlICdjb3NpZ25lck5vbmNlJzpcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluIGNlcnRhaW4gY2FzZXMsIHRoZSBjYWxsZXIgb2YgdGhpcyBtZXRob2QgbWF5IG5vdCBrbm93IHdoZXRoZXIgdGhlIHR4SGV4IGNvbnRhaW5zIGEgcHNidCB3aXRoIHRhcHJvb3Qga2V5IHBhdGggc3BlbmQgaW5wdXQocykuXG4gICAgICAgICAqIEluc3RlYWQgb2YgdGhyb3dpbmcgZXJyb3IsIG5vLW9wIGFuZCByZXR1cm4gdGhlIHR4SGV4LiBTbyB0aGF0IHRoZSBjYWxsZXIgY2FuIGNhbGwgdGhpcyBtZXRob2QgaW4gdGhlIHNhbWUgc2VxdWVuY2UuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4geyB0eEhleDogdHgudG9IZXgoKSB9O1xuICAgIH1cbiAgfVxuXG4gIGxldCBzaWduZWRUcmFuc2FjdGlvbjogYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4gfCBiaXRnby5VdHhvUHNidDtcbiAgaWYgKHR4IGluc3RhbmNlb2YgYml0Z28uVXR4b1BzYnQpIHtcbiAgICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4pO1xuICAgIHNpZ25lZFRyYW5zYWN0aW9uID0gc2lnbkFuZFZlcmlmeVBzYnQodHgsIHNpZ25lcktleWNoYWluLCB7XG4gICAgICBpc0xhc3RTaWduYXR1cmUsXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR4Lmlucy5sZW5ndGggIT09IHBhcmFtcy50eEluZm8/LnVuc3BlbnRzPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbGVuZ3RoIG9mIHVuc3BlbnRzIGFycmF5IHNob3VsZCBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIHRyYW5zYWN0aW9uIGlucHV0cycpO1xuICAgIH1cblxuICAgIGlmICghcGFyYW1zLnB1YnMgfHwgIWlzVHJpcGxlKHBhcmFtcy5wdWJzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgeHB1YiBhcnJheWApO1xuICAgIH1cblxuICAgIGNvbnN0IGtleWNoYWlucyA9IHBhcmFtcy5wdWJzLm1hcCgocHViKSA9PiBiaXAzMi5mcm9tQmFzZTU4KHB1YikpIGFzIFRyaXBsZTxCSVAzMkludGVyZmFjZT47XG4gICAgY29uc3QgY29zaWduZXJQdWIgPSBwYXJhbXMuY29zaWduZXJQdWIgPz8gcGFyYW1zLnB1YnNbMl07XG4gICAgY29uc3QgY29zaWduZXJLZXljaGFpbiA9IGJpcDMyLmZyb21CYXNlNTgoY29zaWduZXJQdWIpO1xuXG4gICAgYXNzZXJ0KHNpZ25lcktleWNoYWluKTtcbiAgICBjb25zdCB3YWxsZXRTaWduZXIgPSBuZXcgYml0Z28uV2FsbGV0VW5zcGVudFNpZ25lcjxSb290V2FsbGV0S2V5cz4oa2V5Y2hhaW5zLCBzaWduZXJLZXljaGFpbiwgY29zaWduZXJLZXljaGFpbik7XG4gICAgc2lnbmVkVHJhbnNhY3Rpb24gPSBzaWduQW5kVmVyaWZ5V2FsbGV0VHJhbnNhY3Rpb24odHgsIHBhcmFtcy50eEluZm8udW5zcGVudHMsIHdhbGxldFNpZ25lciwge1xuICAgICAgaXNMYXN0U2lnbmF0dXJlLFxuICAgIH0pIGFzIGJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eEhleDogc2lnbmVkVHJhbnNhY3Rpb24udG9CdWZmZXIoKS50b1N0cmluZygnaGV4JyksXG4gIH07XG59XG4iXX0=
@@ -39,7 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.signTransaction = signTransaction;
40
40
  const lodash_1 = __importDefault(require("lodash"));
41
41
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
42
- const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
42
+ const secp256k1_1 = require("@bitgo-beta/secp256k1");
43
43
  const debug_1 = __importDefault(require("debug"));
44
44
  const descriptor_1 = require("../descriptor");
45
45
  const keychains_1 = require("../keychains");
@@ -53,7 +53,7 @@ function getSignerKeychain(userPrv) {
53
53
  if (typeof userPrv !== 'string') {
54
54
  throw new Error('expected user private key to be a string');
55
55
  }
56
- const signerKeychain = utxo_lib_1.bip32.fromBase58(userPrv, utxolib.networks.bitcoin);
56
+ const signerKeychain = secp256k1_1.bip32.fromBase58(userPrv, utxolib.networks.bitcoin);
57
57
  if (signerKeychain.isNeutered()) {
58
58
  throw new Error('expected user private key but received public key');
59
59
  }
@@ -99,4 +99,4 @@ async function signTransaction(coin, bitgo, params) {
99
99
  });
100
100
  }
101
101
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSwwQ0E2Q0M7QUEzRUQsb0RBQXVCO0FBRXZCLDhEQUFnRDtBQUNoRCxtREFBNkM7QUFDN0Msa0RBQStCO0FBRy9CLDhDQUFnRztBQUNoRyw0Q0FBNkQ7QUFFN0QsMkRBQTZDO0FBQzdDLHlEQUEyQztBQUUzQyxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVUsRUFBQyxpREFBaUQsQ0FBQyxDQUFDO0FBRTVFLFNBQVMsaUJBQWlCLENBQUMsT0FBZ0I7SUFDekMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxnQkFBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRSxJQUFJLGNBQWMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLHdEQUF3RCxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUNuQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF1QztJQUV2QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBRXJDLElBQUksZ0JBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsT0FBTyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFakUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXJELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFMUIsSUFBSSxNQUFNLElBQUksSUFBQSwrQkFBa0IsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWEsRUFBQyxNQUFNLElBQUEsMEJBQWMsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLGFBQWEsR0FBRyxJQUFBLHVDQUEwQixFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBQSw0QkFBZSxFQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksRUFBRSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRTtnQkFDckQsY0FBYyxFQUFFLE9BQU87YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUTtZQUNwQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1lBQ2hDLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLEtBQUs7WUFDaEQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLGtDQUFrQyxFQUFFLE1BQU0sQ0FBQyxrQ0FBa0MsSUFBSSxLQUFLO1lBQ3RGLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBiaXAzMiB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQsIGdldFBvbGljeUZvckVudiwgaXNEZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnLi4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBmZXRjaEtleWNoYWlucywgdG9CaXAzMlRyaXBsZSB9IGZyb20gJy4uL2tleWNoYWlucyc7XG5cbmltcG9ydCAqIGFzIGZpeGVkU2NyaXB0IGZyb20gJy4vZml4ZWRTY3JpcHQnO1xuaW1wb3J0ICogYXMgZGVzY3JpcHRvciBmcm9tICcuL2Rlc2NyaXB0b3InO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ2JpdGdvOmFic3RyYWN0LXV0eG86dHJhbnNhY3Rpb246c2lnblRyYW5zYWN0aW9uJyk7XG5cbmZ1bmN0aW9uIGdldFNpZ25lcktleWNoYWluKHVzZXJQcnY6IHVua25vd24pOiB1dHhvbGliLkJJUDMySW50ZXJmYWNlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHVzZXJQcnYgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiB1c2VyUHJ2ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgdXNlciBwcml2YXRlIGtleSB0byBiZSBhIHN0cmluZycpO1xuICB9XG4gIGNvbnN0IHNpZ25lcktleWNoYWluID0gYmlwMzIuZnJvbUJhc2U1OCh1c2VyUHJ2LCB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pO1xuICBpZiAoc2lnbmVyS2V5Y2hhaW4uaXNOZXV0ZXJlZCgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCB1c2VyIHByaXZhdGUga2V5IGJ1dCByZWNlaXZlZCBwdWJsaWMga2V5Jyk7XG4gIH1cbiAgZGVidWcoYEhlcmUgaXMgdGhlIHB1YmxpYyBrZXkgb2YgdGhlIHhwcnYgeW91IHVzZWQgdG8gc2lnbjogJHtzaWduZXJLZXljaGFpbi5uZXV0ZXJlZCgpLnRvQmFzZTU4KCl9YCk7XG4gIHJldHVybiBzaWduZXJLZXljaGFpbjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25UcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgcGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4pOiBQcm9taXNlPHsgdHhIZXg6IHN0cmluZyB9PiB7XG4gIGNvbnN0IHR4UHJlYnVpbGQgPSBwYXJhbXMudHhQcmVidWlsZDtcblxuICBpZiAoXy5pc1VuZGVmaW5lZCh0eFByZWJ1aWxkKSB8fCAhXy5pc09iamVjdCh0eFByZWJ1aWxkKSkge1xuICAgIGlmICghXy5pc1VuZGVmaW5lZCh0eFByZWJ1aWxkKSAmJiAhXy5pc09iamVjdCh0eFByZWJ1aWxkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB0eFByZWJ1aWxkIG11c3QgYmUgYW4gb2JqZWN0LCBnb3QgdHlwZSAke3R5cGVvZiB0eFByZWJ1aWxkfWApO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgdHhQcmVidWlsZCBwYXJhbWV0ZXInKTtcbiAgfVxuXG4gIGNvbnN0IHR4ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG5cbiAgY29uc3Qgc2lnbmVyS2V5Y2hhaW4gPSBnZXRTaWduZXJLZXljaGFpbihwYXJhbXMucHJ2KTtcblxuICBjb25zdCB7IHdhbGxldCB9ID0gcGFyYW1zO1xuXG4gIGlmICh3YWxsZXQgJiYgaXNEZXNjcmlwdG9yV2FsbGV0KHdhbGxldCkpIHtcbiAgICBpZiAoIXNpZ25lcktleWNoYWluKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3Npbmcgc2lnbmVyJyk7XG4gICAgfVxuICAgIGNvbnN0IHdhbGxldEtleXMgPSB0b0JpcDMyVHJpcGxlKGF3YWl0IGZldGNoS2V5Y2hhaW5zKGNvaW4sIHdhbGxldCkpO1xuICAgIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCh3YWxsZXQsIHdhbGxldEtleXMsIGdldFBvbGljeUZvckVudihiaXRnby5lbnYpKTtcbiAgICBpZiAodHggaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgICBkZXNjcmlwdG9yLnNpZ25Qc2J0KHR4LCBkZXNjcmlwdG9yTWFwLCBzaWduZXJLZXljaGFpbiwge1xuICAgICAgICBvblVua25vd25JbnB1dDogJ3Rocm93JyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHsgdHhIZXg6IHR4LnRvSGV4KCkgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCBhIFV0eG9Qc2J0IG9iamVjdCcpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZml4ZWRTY3JpcHQuc2lnblRyYW5zYWN0aW9uKGNvaW4sIHR4LCBnZXRTaWduZXJLZXljaGFpbihwYXJhbXMucHJ2KSwge1xuICAgICAgd2FsbGV0SWQ6IHBhcmFtcy50eFByZWJ1aWxkLndhbGxldElkLFxuICAgICAgdHhJbmZvOiBwYXJhbXMudHhQcmVidWlsZC50eEluZm8sXG4gICAgICBpc0xhc3RTaWduYXR1cmU6IHBhcmFtcy5pc0xhc3RTaWduYXR1cmUgPz8gZmFsc2UsXG4gICAgICBzaWduaW5nU3RlcDogcGFyYW1zLnNpZ25pbmdTdGVwLFxuICAgICAgYWxsb3dOb25TZWd3aXRTaWduaW5nV2l0aG91dFByZXZUeDogcGFyYW1zLmFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHggPz8gZmFsc2UsXG4gICAgICBwdWJzOiBwYXJhbXMucHVicyxcbiAgICAgIGNvc2lnbmVyUHViOiBwYXJhbXMuY29zaWduZXJQdWIsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSwwQ0E2Q0M7QUEzRUQsb0RBQXVCO0FBRXZCLDhEQUFnRDtBQUNoRCxxREFBOEM7QUFDOUMsa0RBQStCO0FBRy9CLDhDQUFnRztBQUNoRyw0Q0FBNkQ7QUFFN0QsMkRBQTZDO0FBQzdDLHlEQUEyQztBQUUzQyxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVUsRUFBQyxpREFBaUQsQ0FBQyxDQUFDO0FBRTVFLFNBQVMsaUJBQWlCLENBQUMsT0FBZ0I7SUFDekMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxpQkFBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRSxJQUFJLGNBQWMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLHdEQUF3RCxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUNuQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF1QztJQUV2QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBRXJDLElBQUksZ0JBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsT0FBTyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFakUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXJELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFMUIsSUFBSSxNQUFNLElBQUksSUFBQSwrQkFBa0IsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWEsRUFBQyxNQUFNLElBQUEsMEJBQWMsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLGFBQWEsR0FBRyxJQUFBLHVDQUEwQixFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBQSw0QkFBZSxFQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksRUFBRSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRTtnQkFDckQsY0FBYyxFQUFFLE9BQU87YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUTtZQUNwQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1lBQ2hDLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLEtBQUs7WUFDaEQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLGtDQUFrQyxFQUFFLE1BQU0sQ0FBQyxrQ0FBa0MsSUFBSSxLQUFLO1lBQ3RGLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBiaXAzMiB9IGZyb20gJ0BiaXRnby1iZXRhL3NlY3AyNTZrMSc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMgfSBmcm9tICcuLi9hYnN0cmFjdFV0eG9Db2luJztcbmltcG9ydCB7IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0LCBnZXRQb2xpY3lGb3JFbnYsIGlzRGVzY3JpcHRvcldhbGxldCB9IGZyb20gJy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgZmV0Y2hLZXljaGFpbnMsIHRvQmlwMzJUcmlwbGUgfSBmcm9tICcuLi9rZXljaGFpbnMnO1xuXG5pbXBvcnQgKiBhcyBmaXhlZFNjcmlwdCBmcm9tICcuL2ZpeGVkU2NyaXB0JztcbmltcG9ydCAqIGFzIGRlc2NyaXB0b3IgZnJvbSAnLi9kZXNjcmlwdG9yJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCdiaXRnbzphYnN0cmFjdC11dHhvOnRyYW5zYWN0aW9uOnNpZ25UcmFuc2FjdGlvbicpO1xuXG5mdW5jdGlvbiBnZXRTaWduZXJLZXljaGFpbih1c2VyUHJ2OiB1bmtub3duKTogdXR4b2xpYi5CSVAzMkludGVyZmFjZSB8IHVuZGVmaW5lZCB7XG4gIGlmICh1c2VyUHJ2ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmICh0eXBlb2YgdXNlclBydiAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIHVzZXIgcHJpdmF0ZSBrZXkgdG8gYmUgYSBzdHJpbmcnKTtcbiAgfVxuICBjb25zdCBzaWduZXJLZXljaGFpbiA9IGJpcDMyLmZyb21CYXNlNTgodXNlclBydiwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgaWYgKHNpZ25lcktleWNoYWluLmlzTmV1dGVyZWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgdXNlciBwcml2YXRlIGtleSBidXQgcmVjZWl2ZWQgcHVibGljIGtleScpO1xuICB9XG4gIGRlYnVnKGBIZXJlIGlzIHRoZSBwdWJsaWMga2V5IG9mIHRoZSB4cHJ2IHlvdSB1c2VkIHRvIHNpZ246ICR7c2lnbmVyS2V5Y2hhaW4ubmV1dGVyZWQoKS50b0Jhc2U1OCgpfWApO1xuICByZXR1cm4gc2lnbmVyS2V5Y2hhaW47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPlxuKTogUHJvbWlzZTx7IHR4SGV4OiBzdHJpbmcgfT4ge1xuICBjb25zdCB0eFByZWJ1aWxkID0gcGFyYW1zLnR4UHJlYnVpbGQ7XG5cbiAgaWYgKF8uaXNVbmRlZmluZWQodHhQcmVidWlsZCkgfHwgIV8uaXNPYmplY3QodHhQcmVidWlsZCkpIHtcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQodHhQcmVidWlsZCkgJiYgIV8uaXNPYmplY3QodHhQcmVidWlsZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdHhQcmVidWlsZCBtdXN0IGJlIGFuIG9iamVjdCwgZ290IHR5cGUgJHt0eXBlb2YgdHhQcmVidWlsZH1gKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHR4UHJlYnVpbGQgcGFyYW1ldGVyJyk7XG4gIH1cblxuICBjb25zdCB0eCA9IGNvaW4uZGVjb2RlVHJhbnNhY3Rpb25Gcm9tUHJlYnVpbGQocGFyYW1zLnR4UHJlYnVpbGQpO1xuXG4gIGNvbnN0IHNpZ25lcktleWNoYWluID0gZ2V0U2lnbmVyS2V5Y2hhaW4ocGFyYW1zLnBydik7XG5cbiAgY29uc3QgeyB3YWxsZXQgfSA9IHBhcmFtcztcblxuICBpZiAod2FsbGV0ICYmIGlzRGVzY3JpcHRvcldhbGxldCh3YWxsZXQpKSB7XG4gICAgaWYgKCFzaWduZXJLZXljaGFpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHNpZ25lcicpO1xuICAgIH1cbiAgICBjb25zdCB3YWxsZXRLZXlzID0gdG9CaXAzMlRyaXBsZShhd2FpdCBmZXRjaEtleWNoYWlucyhjb2luLCB3YWxsZXQpKTtcbiAgICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQod2FsbGV0LCB3YWxsZXRLZXlzLCBnZXRQb2xpY3lGb3JFbnYoYml0Z28uZW52KSk7XG4gICAgaWYgKHR4IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkge1xuICAgICAgZGVzY3JpcHRvci5zaWduUHNidCh0eCwgZGVzY3JpcHRvck1hcCwgc2lnbmVyS2V5Y2hhaW4sIHtcbiAgICAgICAgb25Vbmtub3duSW5wdXQ6ICd0aHJvdycsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7IHR4SGV4OiB0eC50b0hleCgpIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgYSBVdHhvUHNidCBvYmplY3QnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0LnNpZ25UcmFuc2FjdGlvbihjb2luLCB0eCwgZ2V0U2lnbmVyS2V5Y2hhaW4ocGFyYW1zLnBydiksIHtcbiAgICAgIHdhbGxldElkOiBwYXJhbXMudHhQcmVidWlsZC53YWxsZXRJZCxcbiAgICAgIHR4SW5mbzogcGFyYW1zLnR4UHJlYnVpbGQudHhJbmZvLFxuICAgICAgaXNMYXN0U2lnbmF0dXJlOiBwYXJhbXMuaXNMYXN0U2lnbmF0dXJlID8/IGZhbHNlLFxuICAgICAgc2lnbmluZ1N0ZXA6IHBhcmFtcy5zaWduaW5nU3RlcCxcbiAgICAgIGFsbG93Tm9uU2Vnd2l0U2lnbmluZ1dpdGhvdXRQcmV2VHg6IHBhcmFtcy5hbGxvd05vblNlZ3dpdFNpZ25pbmdXaXRob3V0UHJldlR4ID8/IGZhbHNlLFxuICAgICAgcHViczogcGFyYW1zLnB1YnMsXG4gICAgICBjb3NpZ25lclB1YjogcGFyYW1zLmNvc2lnbmVyUHViLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -47,7 +47,7 @@ These are actually not utxo-specific and belong in a more general module.
47
47
  const assert_1 = __importDefault(require("assert"));
48
48
  const debug_1 = __importDefault(require("debug"));
49
49
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
50
- const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
50
+ const secp256k1_1 = require("@bitgo-beta/secp256k1");
51
51
  const bitcoinMessage = __importStar(require("bitcoinjs-message"));
52
52
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
53
53
  const debug = (0, debug_1.default)('bitgo:abstract-utxo:verifyKey');
@@ -72,7 +72,7 @@ function verifyKeySignature(params) {
72
72
  }
73
73
  // verify the signature against the user public key
74
74
  (0, assert_1.default)(userKeychain.pub);
75
- const publicKey = utxo_lib_1.bip32.fromBase58(userKeychain.pub).publicKey;
75
+ const publicKey = secp256k1_1.bip32.fromBase58(userKeychain.pub).publicKey;
76
76
  // Due to interface of `bitcoinMessage`, we need to convert the public key to an address.
77
77
  // Note that this address has no relationship to on-chain transactions. We are
78
78
  // only interested in the address as a representation of the public key.
@@ -151,7 +151,7 @@ function verifyUserPublicKey(bitgo, params) {
151
151
  }
152
152
  }
153
153
  else {
154
- const userPrivateKey = utxo_lib_1.bip32.fromBase58(userPrv);
154
+ const userPrivateKey = secp256k1_1.bip32.fromBase58(userPrv);
155
155
  if (userPrivateKey.toBase58() === userPrivateKey.neutered().toBase58()) {
156
156
  throw new Error('user private key is only public');
157
157
  }
@@ -161,4 +161,4 @@ function verifyUserPublicKey(bitgo, params) {
161
161
  }
162
162
  return true;
163
163
  }
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5S2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZlcmlmeUtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQSxnREF1Q0M7QUFTRCwwRUE0QkM7QUFTRCxrREFpQ0M7QUEvSUQ7Ozs7R0FJRztBQUNILG9EQUE0QjtBQUU1QixrREFBK0I7QUFDL0IsOERBQWdEO0FBQ2hELG1EQUE2QztBQUM3QyxrRUFBb0Q7QUFDcEQsbURBQXdGO0FBS3hGLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBVSxFQUFDLCtCQUErQixDQUFDLENBQUM7QUFFMUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsTUFBa0M7SUFDbkUsMkdBQTJHO0lBQzNHLE1BQU0sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2hFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELElBQUEsZ0JBQU0sRUFBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsTUFBTSxTQUFTLEdBQUcsZ0JBQUssQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMvRCx5RkFBeUY7SUFDekYsOEVBQThFO0lBQzlFLHdFQUF3RTtJQUN4RSxNQUFNLGNBQWMsR0FB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QVksQ0FBQyxHQUFHLENBQUM7SUFFakMsd0ZBQXdGO0lBQ3hGLElBQUksT0FBTyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUM7SUFDL0IsSUFBSSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQyxPQUFPLEdBQUcsSUFBQSxvQ0FBeUIsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLFlBQVksR0FBRywrQ0FBK0MsQ0FBQztRQUNyRSxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLGNBQWMsR0FBRyxnQkFBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN2RSxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3JELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5cblRoZXNlIGFyZSBhY3R1YWxseSBub3QgdXR4by1zcGVjaWZpYyBhbmQgYmVsb25nIGluIGEgbW9yZSBnZW5lcmFsIG1vZHVsZS5cblxuICovXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgYmlwMzIgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgKiBhcyBiaXRjb2luTWVzc2FnZSBmcm9tICdiaXRjb2luanMtbWVzc2FnZSc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UsIGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXksIEtleUluZGljZXMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmltcG9ydCB7IFBhcnNlZFRyYW5zYWN0aW9uLCBWZXJpZnlLZXlTaWduYXR1cmVzT3B0aW9ucywgVmVyaWZ5VXNlclB1YmxpY0tleU9wdGlvbnMgfSBmcm9tICcuL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgVXR4b0tleWNoYWluIH0gZnJvbSAnLi9rZXljaGFpbnMnO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ2JpdGdvOmFic3RyYWN0LXV0eG86dmVyaWZ5S2V5Jyk7XG5cbi8qKlxuICogVmVyaWZ5IHNpZ25hdHVyZXMgcHJvZHVjZWQgYnkgdGhlIHVzZXIga2V5IG92ZXIgdGhlIGJhY2t1cCBhbmQgYml0Z28ga2V5cy5cbiAqXG4gKiBJZiBzZXQsIHRoZXNlIHNpZ25hdHVyZXMgZW5zdXJlIHRoYXQgdGhlIHdhbGxldCBrZXlzIGNhbm5vdCBiZSBjaGFuZ2VkIGFmdGVyIHRoZSB3YWxsZXQgaGFzIGJlZW4gY3JlYXRlZC5cbiAqIEBwYXJhbSB7VmVyaWZ5S2V5U2lnbmF0dXJlc09wdGlvbnN9IHBhcmFtc1xuICogQHJldHVybiB7e2JhY2t1cDogYm9vbGVhbiwgYml0Z286IGJvb2xlYW59fVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5S2V5U2lnbmF0dXJlKHBhcmFtczogVmVyaWZ5S2V5U2lnbmF0dXJlc09wdGlvbnMpOiBib29sZWFuIHtcbiAgLy8gZmlyc3QsIGxldCdzIHZlcmlmeSB0aGUgaW50ZWdyaXR5IG9mIHRoZSB1c2VyIGtleSwgd2hvc2UgcHVibGljIGtleSBpcyB1c2VkIGZvciBzdWJzZXF1ZW50IHZlcmlmaWNhdGlvbnNcbiAgY29uc3QgeyB1c2VyS2V5Y2hhaW4sIGtleWNoYWluVG9WZXJpZnksIGtleVNpZ25hdHVyZSB9ID0gcGFyYW1zO1xuICBpZiAoIXVzZXJLZXljaGFpbikge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlciBrZXljaGFpbiBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgaWYgKCFrZXljaGFpblRvVmVyaWZ5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdrZXljaGFpbiB0byB2ZXJpZnkgaXMgcmVxdWlyZWQnKTtcbiAgfVxuXG4gIGlmICgha2V5U2lnbmF0dXJlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdrZXkgc2lnbmF0dXJlIGlzIHJlcXVpcmVkJyk7XG4gIH1cblxuICAvLyB2ZXJpZnkgdGhlIHNpZ25hdHVyZSBhZ2FpbnN0IHRoZSB1c2VyIHB1YmxpYyBrZXlcbiAgYXNzZXJ0KHVzZXJLZXljaGFpbi5wdWIpO1xuICBjb25zdCBwdWJsaWNLZXkgPSBiaXAzMi5mcm9tQmFzZTU4KHVzZXJLZXljaGFpbi5wdWIpLnB1YmxpY0tleTtcbiAgLy8gRHVlIHRvIGludGVyZmFjZSBvZiBgYml0Y29pbk1lc3NhZ2VgLCB3ZSBuZWVkIHRvIGNvbnZlcnQgdGhlIHB1YmxpYyBrZXkgdG8gYW4gYWRkcmVzcy5cbiAgLy8gTm90ZSB0aGF0IHRoaXMgYWRkcmVzcyBoYXMgbm8gcmVsYXRpb25zaGlwIHRvIG9uLWNoYWluIHRyYW5zYWN0aW9ucy4gV2UgYXJlXG4gIC8vIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgYWRkcmVzcyBhcyBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwdWJsaWMga2V5LlxuICBjb25zdCBzaWduaW5nQWRkcmVzcyA9IHV0eG9saWIuYWRkcmVzcy50b0Jhc2U1OENoZWNrKFxuICAgIHV0eG9saWIuY3J5cHRvLmhhc2gxNjAocHVibGljS2V5KSxcbiAgICB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4ucHViS2V5SGFzaCxcbiAgICAvLyB3ZSBkbyBub3QgcGFzcyBgdGhpcy5uZXR3b3JrYCBoZXJlIGJlY2F1c2UgaXQgd291bGQgZmFpbCBmb3IgemNhc2hcbiAgICAvLyB0aGUgYml0Y29pbk1lc3NhZ2UgbGlicmFyeSBkZWNvZGVzIHRoZSBhZGRyZXNzIGFuZCB0aHJvd3MgYXdheSB0aGUgZmlyc3QgYnl0ZVxuICAgIC8vIGJlY2F1c2UgemNhc2ggaGFzIGEgdHdvLWJ5dGUgcHJlZml4LCB2ZXJpZnkoKSBkZWNvZGVzIHpjYXNoIGFkZHJlc3NlcyB0byBhbiBpbnZhbGlkIHB1YmtleSBoYXNoXG4gICAgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luXG4gICk7XG5cbiAgLy8gQkctNTcwMzogdXNlIEJUQyBtYWlubmV0IHByZWZpeCBmb3IgYWxsIGtleSBzaWduYXR1cmUgb3BlcmF0aW9uc1xuICAvLyAodGhpcyBtZWFucyBkbyBub3QgcGFzcyBhIHByZWZpeCBwYXJhbWV0ZXIsIGFuZCBsZXQgaXQgdXNlIHRoZSBkZWZhdWx0IHByZWZpeCBpbnN0ZWFkKVxuICBhc3NlcnQoa2V5Y2hhaW5Ub1ZlcmlmeS5wdWIpO1xuICB0cnkge1xuICAgIHJldHVybiBiaXRjb2luTWVzc2FnZS52ZXJpZnkoa2V5Y2hhaW5Ub1ZlcmlmeS5wdWIsIHNpZ25pbmdBZGRyZXNzLCBCdWZmZXIuZnJvbShrZXlTaWduYXR1cmUsICdoZXgnKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkZWJ1ZygnZXJyb3IgdGhyb3duIGZyb20gYml0Y29pbm1lc3NhZ2Ugd2hpbGUgdmVyaWZ5aW5nIGtleSBzaWduYXR1cmUnLCBlKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBWZXJpZnkgc2lnbmF0dXJlcyBhZ2FpbnN0IHRoZSB1c2VyIHByaXZhdGUga2V5IG92ZXIgdGhlIGNoYW5nZSB3YWxsZXQgZXh0ZW5kZWQga2V5c1xuICogQHBhcmFtIHtQYXJzZWRUcmFuc2FjdGlvbn0gdHhcbiAqIEBwYXJhbSB7S2V5Y2hhaW59IHVzZXJLZXljaGFpblxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqIEBwcm90ZWN0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4OiBQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgdXNlcktleWNoYWluOiBVdHhvS2V5Y2hhaW5cbik6IGJvb2xlYW4ge1xuICBpZiAoIXR4LmN1c3RvbUNoYW5nZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncGFyc2VkIHRyYW5zYWN0aW9uIGlzIG1pc3NpbmcgcmVxdWlyZWQgY3VzdG9tIGNoYW5nZSB2ZXJpZmljYXRpb24gZGF0YScpO1xuICB9XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KHR4LmN1c3RvbUNoYW5nZS5rZXlzKSB8fCAhQXJyYXkuaXNBcnJheSh0eC5jdXN0b21DaGFuZ2Uuc2lnbmF0dXJlcykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2N1c3RvbUNoYW5nZSBwcm9wZXJ0eSBpcyBtaXNzaW5nIGtleXMgb3Igc2lnbmF0dXJlcycpO1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXlJbmRleCBvZiBbS2V5SW5kaWNlcy5VU0VSLCBLZXlJbmRpY2VzLkJBQ0tVUCwgS2V5SW5kaWNlcy5CSVRHT10pIHtcbiAgICBjb25zdCBrZXljaGFpblRvVmVyaWZ5ID0gdHguY3VzdG9tQ2hhbmdlLmtleXNba2V5SW5kZXhdO1xuICAgIGNvbnN0IGtleVNpZ25hdHVyZSA9IHR4LmN1c3RvbUNoYW5nZS5zaWduYXR1cmVzW2tleUluZGV4XTtcbiAgICBpZiAoIWtleWNoYWluVG9WZXJpZnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyByZXF1aXJlZCBjdXN0b20gY2hhbmdlICR7S2V5SW5kaWNlc1trZXlJbmRleF0udG9Mb3dlckNhc2UoKX0ga2V5Y2hhaW4gcHVibGljIGtleWApO1xuICAgIH1cbiAgICBpZiAoIWtleVNpZ25hdHVyZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtaXNzaW5nIHJlcXVpcmVkIGN1c3RvbSBjaGFuZ2UgJHtLZXlJbmRpY2VzW2tleUluZGV4XS50b0xvd2VyQ2FzZSgpfSBrZXljaGFpbiBzaWduYXR1cmVgKTtcbiAgICB9XG4gICAgaWYgKCF2ZXJpZnlLZXlTaWduYXR1cmUoeyB1c2VyS2V5Y2hhaW4sIGtleWNoYWluVG9WZXJpZnksIGtleVNpZ25hdHVyZSB9KSkge1xuICAgICAgZGVidWcoJ2ZhaWxlZCB0byB2ZXJpZnkgY3VzdG9tIGNoYW5nZSAlcyBrZXkgc2lnbmF0dXJlIScsIEtleUluZGljZXNba2V5SW5kZXhdLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIERlY3J5cHQgdGhlIHdhbGxldCdzIHVzZXIgcHJpdmF0ZSBrZXkgYW5kIHZlcmlmeSB0aGF0IHRoZSBjbGFpbWVkIHB1YmxpYyBrZXkgbWF0Y2hlc1xuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvXG4gKiBAcGFyYW0ge1ZlcmlmeVVzZXJQdWJsaWNLZXlPcHRpb25zfSBwYXJhbXNcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKiBAcHJvdGVjdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlVc2VyUHVibGljS2V5KGJpdGdvOiBCaXRHb0Jhc2UsIHBhcmFtczogVmVyaWZ5VXNlclB1YmxpY0tleU9wdGlvbnMpOiBib29sZWFuIHtcbiAgY29uc3QgeyB1c2VyS2V5Y2hhaW4sIHR4UGFyYW1zLCBkaXNhYmxlTmV0d29ya2luZyB9ID0gcGFyYW1zO1xuICBpZiAoIXVzZXJLZXljaGFpbikge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlciBrZXljaGFpbiBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgY29uc3QgdXNlclB1YiA9IHVzZXJLZXljaGFpbi5wdWI7XG5cbiAgLy8gZGVjcnlwdCB0aGUgdXNlciBwcml2YXRlIGtleSwgc28gd2UgY2FuIHZlcmlmeSB0aGF0IHRoZSBjbGFpbWVkIHB1YmxpYyBrZXkgaXMgYSBtYXRjaFxuICBsZXQgdXNlclBydiA9IHVzZXJLZXljaGFpbi5wcnY7XG4gIGlmICghdXNlclBydiAmJiB0eFBhcmFtcy53YWxsZXRQYXNzcGhyYXNlKSB7XG4gICAgdXNlclBydiA9IGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXkoYml0Z28sIHVzZXJLZXljaGFpbiwgdHhQYXJhbXMud2FsbGV0UGFzc3BocmFzZSk7XG4gIH1cblxuICBpZiAoIXVzZXJQcnYpIHtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSAndXNlciBwcml2YXRlIGtleSB1bmF2YWlsYWJsZSBmb3IgdmVyaWZpY2F0aW9uJztcbiAgICBpZiAoZGlzYWJsZU5ldHdvcmtpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yTWVzc2FnZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB1c2VyUHJpdmF0ZUtleSA9IGJpcDMyLmZyb21CYXNlNTgodXNlclBydik7XG4gICAgaWYgKHVzZXJQcml2YXRlS2V5LnRvQmFzZTU4KCkgPT09IHVzZXJQcml2YXRlS2V5Lm5ldXRlcmVkKCkudG9CYXNlNTgoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1c2VyIHByaXZhdGUga2V5IGlzIG9ubHkgcHVibGljJyk7XG4gICAgfVxuICAgIGlmICh1c2VyUHJpdmF0ZUtleS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkgIT09IHVzZXJQdWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndXNlciBwcml2YXRlIGtleSBkb2VzIG5vdCBtYXRjaCBwdWJsaWMga2V5Jyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5S2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZlcmlmeUtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQSxnREF1Q0M7QUFTRCwwRUE0QkM7QUFTRCxrREFpQ0M7QUEvSUQ7Ozs7R0FJRztBQUNILG9EQUE0QjtBQUU1QixrREFBK0I7QUFDL0IsOERBQWdEO0FBQ2hELHFEQUE4QztBQUM5QyxrRUFBb0Q7QUFDcEQsbURBQXdGO0FBS3hGLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBVSxFQUFDLCtCQUErQixDQUFDLENBQUM7QUFFMUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsTUFBa0M7SUFDbkUsMkdBQTJHO0lBQzNHLE1BQU0sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2hFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELElBQUEsZ0JBQU0sRUFBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsTUFBTSxTQUFTLEdBQUcsaUJBQUssQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMvRCx5RkFBeUY7SUFDekYsOEVBQThFO0lBQzlFLHdFQUF3RTtJQUN4RSxNQUFNLGNBQWMsR0FB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QVksQ0FBQyxHQUFHLENBQUM7SUFFakMsd0ZBQXdGO0lBQ3hGLElBQUksT0FBTyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUM7SUFDL0IsSUFBSSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQyxPQUFPLEdBQUcsSUFBQSxvQ0FBeUIsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLFlBQVksR0FBRywrQ0FBK0MsQ0FBQztRQUNyRSxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLGNBQWMsR0FBRyxpQkFBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN2RSxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3JELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5cblRoZXNlIGFyZSBhY3R1YWxseSBub3QgdXR4by1zcGVjaWZpYyBhbmQgYmVsb25nIGluIGEgbW9yZSBnZW5lcmFsIG1vZHVsZS5cblxuICovXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgYmlwMzIgfSBmcm9tICdAYml0Z28tYmV0YS9zZWNwMjU2azEnO1xuaW1wb3J0ICogYXMgYml0Y29pbk1lc3NhZ2UgZnJvbSAnYml0Y29pbmpzLW1lc3NhZ2UnO1xuaW1wb3J0IHsgQml0R29CYXNlLCBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5LCBLZXlJbmRpY2VzIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBQYXJzZWRUcmFuc2FjdGlvbiwgVmVyaWZ5S2V5U2lnbmF0dXJlc09wdGlvbnMsIFZlcmlmeVVzZXJQdWJsaWNLZXlPcHRpb25zIH0gZnJvbSAnLi9hYnN0cmFjdFV0eG9Db2luJztcbmltcG9ydCB7IFV0eG9LZXljaGFpbiB9IGZyb20gJy4va2V5Y2hhaW5zJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCdiaXRnbzphYnN0cmFjdC11dHhvOnZlcmlmeUtleScpO1xuXG4vKipcbiAqIFZlcmlmeSBzaWduYXR1cmVzIHByb2R1Y2VkIGJ5IHRoZSB1c2VyIGtleSBvdmVyIHRoZSBiYWNrdXAgYW5kIGJpdGdvIGtleXMuXG4gKlxuICogSWYgc2V0LCB0aGVzZSBzaWduYXR1cmVzIGVuc3VyZSB0aGF0IHRoZSB3YWxsZXQga2V5cyBjYW5ub3QgYmUgY2hhbmdlZCBhZnRlciB0aGUgd2FsbGV0IGhhcyBiZWVuIGNyZWF0ZWQuXG4gKiBAcGFyYW0ge1ZlcmlmeUtleVNpZ25hdHVyZXNPcHRpb25zfSBwYXJhbXNcbiAqIEByZXR1cm4ge3tiYWNrdXA6IGJvb2xlYW4sIGJpdGdvOiBib29sZWFufX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUtleVNpZ25hdHVyZShwYXJhbXM6IFZlcmlmeUtleVNpZ25hdHVyZXNPcHRpb25zKTogYm9vbGVhbiB7XG4gIC8vIGZpcnN0LCBsZXQncyB2ZXJpZnkgdGhlIGludGVncml0eSBvZiB0aGUgdXNlciBrZXksIHdob3NlIHB1YmxpYyBrZXkgaXMgdXNlZCBmb3Igc3Vic2VxdWVudCB2ZXJpZmljYXRpb25zXG4gIGNvbnN0IHsgdXNlcktleWNoYWluLCBrZXljaGFpblRvVmVyaWZ5LCBrZXlTaWduYXR1cmUgfSA9IHBhcmFtcztcbiAgaWYgKCF1c2VyS2V5Y2hhaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZXIga2V5Y2hhaW4gaXMgcmVxdWlyZWQnKTtcbiAgfVxuXG4gIGlmICgha2V5Y2hhaW5Ub1ZlcmlmeSkge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5Y2hhaW4gdG8gdmVyaWZ5IGlzIHJlcXVpcmVkJyk7XG4gIH1cblxuICBpZiAoIWtleVNpZ25hdHVyZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5IHNpZ25hdHVyZSBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgLy8gdmVyaWZ5IHRoZSBzaWduYXR1cmUgYWdhaW5zdCB0aGUgdXNlciBwdWJsaWMga2V5XG4gIGFzc2VydCh1c2VyS2V5Y2hhaW4ucHViKTtcbiAgY29uc3QgcHVibGljS2V5ID0gYmlwMzIuZnJvbUJhc2U1OCh1c2VyS2V5Y2hhaW4ucHViKS5wdWJsaWNLZXk7XG4gIC8vIER1ZSB0byBpbnRlcmZhY2Ugb2YgYGJpdGNvaW5NZXNzYWdlYCwgd2UgbmVlZCB0byBjb252ZXJ0IHRoZSBwdWJsaWMga2V5IHRvIGFuIGFkZHJlc3MuXG4gIC8vIE5vdGUgdGhhdCB0aGlzIGFkZHJlc3MgaGFzIG5vIHJlbGF0aW9uc2hpcCB0byBvbi1jaGFpbiB0cmFuc2FjdGlvbnMuIFdlIGFyZVxuICAvLyBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIGFkZHJlc3MgYXMgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgcHVibGljIGtleS5cbiAgY29uc3Qgc2lnbmluZ0FkZHJlc3MgPSB1dHhvbGliLmFkZHJlc3MudG9CYXNlNThDaGVjayhcbiAgICB1dHhvbGliLmNyeXB0by5oYXNoMTYwKHB1YmxpY0tleSksXG4gICAgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luLnB1YktleUhhc2gsXG4gICAgLy8gd2UgZG8gbm90IHBhc3MgYHRoaXMubmV0d29ya2AgaGVyZSBiZWNhdXNlIGl0IHdvdWxkIGZhaWwgZm9yIHpjYXNoXG4gICAgLy8gdGhlIGJpdGNvaW5NZXNzYWdlIGxpYnJhcnkgZGVjb2RlcyB0aGUgYWRkcmVzcyBhbmQgdGhyb3dzIGF3YXkgdGhlIGZpcnN0IGJ5dGVcbiAgICAvLyBiZWNhdXNlIHpjYXNoIGhhcyBhIHR3by1ieXRlIHByZWZpeCwgdmVyaWZ5KCkgZGVjb2RlcyB6Y2FzaCBhZGRyZXNzZXMgdG8gYW4gaW52YWxpZCBwdWJrZXkgaGFzaFxuICAgIHV0eG9saWIubmV0d29ya3MuYml0Y29pblxuICApO1xuXG4gIC8vIEJHLTU3MDM6IHVzZSBCVEMgbWFpbm5ldCBwcmVmaXggZm9yIGFsbCBrZXkgc2lnbmF0dXJlIG9wZXJhdGlvbnNcbiAgLy8gKHRoaXMgbWVhbnMgZG8gbm90IHBhc3MgYSBwcmVmaXggcGFyYW1ldGVyLCBhbmQgbGV0IGl0IHVzZSB0aGUgZGVmYXVsdCBwcmVmaXggaW5zdGVhZClcbiAgYXNzZXJ0KGtleWNoYWluVG9WZXJpZnkucHViKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYml0Y29pbk1lc3NhZ2UudmVyaWZ5KGtleWNoYWluVG9WZXJpZnkucHViLCBzaWduaW5nQWRkcmVzcywgQnVmZmVyLmZyb20oa2V5U2lnbmF0dXJlLCAnaGV4JykpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZGVidWcoJ2Vycm9yIHRocm93biBmcm9tIGJpdGNvaW5tZXNzYWdlIHdoaWxlIHZlcmlmeWluZyBrZXkgc2lnbmF0dXJlJywgZSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogVmVyaWZ5IHNpZ25hdHVyZXMgYWdhaW5zdCB0aGUgdXNlciBwcml2YXRlIGtleSBvdmVyIHRoZSBjaGFuZ2Ugd2FsbGV0IGV4dGVuZGVkIGtleXNcbiAqIEBwYXJhbSB7UGFyc2VkVHJhbnNhY3Rpb259IHR4XG4gKiBAcGFyYW0ge0tleWNoYWlufSB1c2VyS2V5Y2hhaW5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKiBAcHJvdGVjdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eDogUGFyc2VkVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIHVzZXJLZXljaGFpbjogVXR4b0tleWNoYWluXG4pOiBib29sZWFuIHtcbiAgaWYgKCF0eC5jdXN0b21DaGFuZ2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcnNlZCB0cmFuc2FjdGlvbiBpcyBtaXNzaW5nIHJlcXVpcmVkIGN1c3RvbSBjaGFuZ2UgdmVyaWZpY2F0aW9uIGRhdGEnKTtcbiAgfVxuXG4gIGlmICghQXJyYXkuaXNBcnJheSh0eC5jdXN0b21DaGFuZ2Uua2V5cykgfHwgIUFycmF5LmlzQXJyYXkodHguY3VzdG9tQ2hhbmdlLnNpZ25hdHVyZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjdXN0b21DaGFuZ2UgcHJvcGVydHkgaXMgbWlzc2luZyBrZXlzIG9yIHNpZ25hdHVyZXMnKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5SW5kZXggb2YgW0tleUluZGljZXMuVVNFUiwgS2V5SW5kaWNlcy5CQUNLVVAsIEtleUluZGljZXMuQklUR09dKSB7XG4gICAgY29uc3Qga2V5Y2hhaW5Ub1ZlcmlmeSA9IHR4LmN1c3RvbUNoYW5nZS5rZXlzW2tleUluZGV4XTtcbiAgICBjb25zdCBrZXlTaWduYXR1cmUgPSB0eC5jdXN0b21DaGFuZ2Uuc2lnbmF0dXJlc1trZXlJbmRleF07XG4gICAgaWYgKCFrZXljaGFpblRvVmVyaWZ5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG1pc3NpbmcgcmVxdWlyZWQgY3VzdG9tIGNoYW5nZSAke0tleUluZGljZXNba2V5SW5kZXhdLnRvTG93ZXJDYXNlKCl9IGtleWNoYWluIHB1YmxpYyBrZXlgKTtcbiAgICB9XG4gICAgaWYgKCFrZXlTaWduYXR1cmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyByZXF1aXJlZCBjdXN0b20gY2hhbmdlICR7S2V5SW5kaWNlc1trZXlJbmRleF0udG9Mb3dlckNhc2UoKX0ga2V5Y2hhaW4gc2lnbmF0dXJlYCk7XG4gICAgfVxuICAgIGlmICghdmVyaWZ5S2V5U2lnbmF0dXJlKHsgdXNlcktleWNoYWluLCBrZXljaGFpblRvVmVyaWZ5LCBrZXlTaWduYXR1cmUgfSkpIHtcbiAgICAgIGRlYnVnKCdmYWlsZWQgdG8gdmVyaWZ5IGN1c3RvbSBjaGFuZ2UgJXMga2V5IHNpZ25hdHVyZSEnLCBLZXlJbmRpY2VzW2tleUluZGV4XS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBEZWNyeXB0IHRoZSB3YWxsZXQncyB1c2VyIHByaXZhdGUga2V5IGFuZCB2ZXJpZnkgdGhhdCB0aGUgY2xhaW1lZCBwdWJsaWMga2V5IG1hdGNoZXNcbiAqIEBwYXJhbSB7Qml0R29CYXNlfSBiaXRnb1xuICogQHBhcmFtIHtWZXJpZnlVc2VyUHVibGljS2V5T3B0aW9uc30gcGFyYW1zXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICogQHByb3RlY3RlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5VXNlclB1YmxpY0tleShiaXRnbzogQml0R29CYXNlLCBwYXJhbXM6IFZlcmlmeVVzZXJQdWJsaWNLZXlPcHRpb25zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgdXNlcktleWNoYWluLCB0eFBhcmFtcywgZGlzYWJsZU5ldHdvcmtpbmcgfSA9IHBhcmFtcztcbiAgaWYgKCF1c2VyS2V5Y2hhaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZXIga2V5Y2hhaW4gaXMgcmVxdWlyZWQnKTtcbiAgfVxuXG4gIGNvbnN0IHVzZXJQdWIgPSB1c2VyS2V5Y2hhaW4ucHViO1xuXG4gIC8vIGRlY3J5cHQgdGhlIHVzZXIgcHJpdmF0ZSBrZXksIHNvIHdlIGNhbiB2ZXJpZnkgdGhhdCB0aGUgY2xhaW1lZCBwdWJsaWMga2V5IGlzIGEgbWF0Y2hcbiAgbGV0IHVzZXJQcnYgPSB1c2VyS2V5Y2hhaW4ucHJ2O1xuICBpZiAoIXVzZXJQcnYgJiYgdHhQYXJhbXMud2FsbGV0UGFzc3BocmFzZSkge1xuICAgIHVzZXJQcnYgPSBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5KGJpdGdvLCB1c2VyS2V5Y2hhaW4sIHR4UGFyYW1zLndhbGxldFBhc3NwaHJhc2UpO1xuICB9XG5cbiAgaWYgKCF1c2VyUHJ2KSB7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gJ3VzZXIgcHJpdmF0ZSBrZXkgdW5hdmFpbGFibGUgZm9yIHZlcmlmaWNhdGlvbic7XG4gICAgaWYgKGRpc2FibGVOZXR3b3JraW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvck1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdXNlclByaXZhdGVLZXkgPSBiaXAzMi5mcm9tQmFzZTU4KHVzZXJQcnYpO1xuICAgIGlmICh1c2VyUHJpdmF0ZUtleS50b0Jhc2U1OCgpID09PSB1c2VyUHJpdmF0ZUtleS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndXNlciBwcml2YXRlIGtleSBpcyBvbmx5IHB1YmxpYycpO1xuICAgIH1cbiAgICBpZiAodXNlclByaXZhdGVLZXkubmV1dGVyZWQoKS50b0Jhc2U1OCgpICE9PSB1c2VyUHViKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZXIgcHJpdmF0ZSBrZXkgZG9lcyBub3QgbWF0Y2ggcHVibGljIGtleScpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/abstract-utxo",
3
- "version": "1.6.1-alpha.410",
3
+ "version": "1.6.1-alpha.412",
4
4
  "description": "BitGo SDK coin library for UTXO base implementation",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -42,12 +42,13 @@
42
42
  ]
43
43
  },
44
44
  "dependencies": {
45
- "@bitgo-beta/blockapis": "1.3.3-alpha.411",
46
- "@bitgo-beta/sdk-api": "1.6.1-alpha.410",
47
- "@bitgo-beta/sdk-core": "2.4.1-alpha.410",
48
- "@bitgo-beta/unspents": "0.11.3-alpha.411",
49
- "@bitgo-beta/utxo-core": "1.0.1-alpha.141",
50
- "@bitgo-beta/utxo-lib": "4.0.1-alpha.411",
45
+ "@bitgo-beta/blockapis": "1.3.3-alpha.413",
46
+ "@bitgo-beta/sdk-api": "1.6.1-alpha.412",
47
+ "@bitgo-beta/sdk-core": "2.4.1-alpha.412",
48
+ "@bitgo-beta/secp256k1": "1.0.1-alpha.370",
49
+ "@bitgo-beta/unspents": "0.11.3-alpha.413",
50
+ "@bitgo-beta/utxo-core": "1.0.1-alpha.143",
51
+ "@bitgo-beta/utxo-lib": "4.0.1-alpha.413",
51
52
  "@bitgo/wasm-miniscript": "2.0.0-beta.7",
52
53
  "@types/lodash": "^4.14.121",
53
54
  "@types/superagent": "4.1.15",
@@ -58,5 +59,5 @@
58
59
  "lodash": "^4.17.14",
59
60
  "superagent": "^9.0.1"
60
61
  },
61
- "gitHead": "48ea45ce85ea71632465f1a8f195311bb7e88732"
62
+ "gitHead": "465387a3c335b3c124fc193a4727347d8842f8f9"
62
63
  }