@bitgo-beta/unspents 0.13.2-beta.94 → 0.13.2-beta.941

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/.mocharc.js +1 -1
  2. package/CHANGELOG.md +491 -0
  3. package/dist/bin/generate_tables.js +25 -12
  4. package/dist/src/codes.d.ts +10 -10
  5. package/dist/src/codes.d.ts.map +1 -1
  6. package/dist/src/codes.js +27 -13
  7. package/dist/src/dimensions.d.ts +4 -4
  8. package/dist/src/dimensions.d.ts.map +1 -1
  9. package/dist/src/dimensions.js +34 -19
  10. package/dist/src/index.js +23 -9
  11. package/dist/src/inputWeights.d.ts +3 -3
  12. package/dist/src/inputWeights.d.ts.map +1 -1
  13. package/dist/src/inputWeights.js +7 -7
  14. package/dist/src/scriptSizes.js +3 -4
  15. package/dist/src/types.js +23 -9
  16. package/dist/src/virtualSizes.d.ts +12 -12
  17. package/dist/src/virtualSizes.js +2 -2
  18. package/dist/src/zcash.d.ts +9 -0
  19. package/dist/src/zcash.d.ts.map +1 -0
  20. package/dist/src/zcash.js +22 -0
  21. package/dist/test/dimensions.js +39 -15
  22. package/dist/test/signedTx/inputWeights.js +27 -13
  23. package/dist/test/signedTx/txCombinations.d.ts +1 -1
  24. package/dist/test/signedTx/txCombinations.d.ts.map +1 -1
  25. package/dist/test/signedTx/txCombinations.js +29 -15
  26. package/dist/test/signedTx/txGen.d.ts +2 -3
  27. package/dist/test/signedTx/txGen.d.ts.map +1 -1
  28. package/dist/test/signedTx/txGen.js +25 -11
  29. package/dist/test/testutils.d.ts +2 -2
  30. package/dist/test/testutils.d.ts.map +1 -1
  31. package/dist/test/testutils.js +28 -14
  32. package/dist/test/zcash.d.ts +2 -0
  33. package/dist/test/zcash.d.ts.map +1 -0
  34. package/dist/test/zcash.js +60 -0
  35. package/dist/tsconfig.build.tsbuildinfo +1 -1
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/docs/input-costs.md +10 -9
  38. package/package.json +5 -5
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
11
15
  }) : function(o, v) {
12
16
  o["default"] = v;
13
17
  });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
21
35
  Object.defineProperty(exports, "__esModule", { value: true });
22
36
  const assert = __importStar(require("assert"));
23
37
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
@@ -33,7 +47,7 @@ describe('Input Script Sizes (Worst-Case)', function () {
33
47
  const cosignerName = signKeys.length > 1 ? signKeys[1] : signerName;
34
48
  const inputScriptTypes = Array.from({ length: inputCount }).fill(inputType);
35
49
  const outputScriptTypes = [testutils_1.UnspentTypeScript2of3.p2sh];
36
- return testutils_1.getSignedTransaction(rootWalletKeys, signerName, cosignerName, inputScriptTypes, outputScriptTypes).ins.reduce((a, b) => (inputWeights_1.getInputWeight(a) > inputWeights_1.getInputWeight(b) ? a : b));
50
+ return (0, testutils_1.getSignedTransaction)(rootWalletKeys, signerName, cosignerName, inputScriptTypes, outputScriptTypes).ins.reduce((a, b) => ((0, inputWeights_1.getInputWeight)(a) > (0, inputWeights_1.getInputWeight)(b) ? a : b));
37
51
  }
38
52
  function getInputComponents(input) {
39
53
  const decompiled = utxolib.script.decompile(input.script);
@@ -44,7 +58,7 @@ describe('Input Script Sizes (Worst-Case)', function () {
44
58
  if (!Buffer.isBuffer(v)) {
45
59
  return { length: 1 };
46
60
  }
47
- return { length: v.length + scriptSizes_1.pushdataEncodingLength(v.length) };
61
+ return { length: v.length + (0, scriptSizes_1.pushdataEncodingLength)(v.length) };
48
62
  });
49
63
  const witness = (input.witness || []).map((v) => ({ length: v.length }));
50
64
  const scriptSize = script.reduce((a, b) => a + b.length, 0);
@@ -97,11 +111,11 @@ describe('Input Script Sizes (Worst-Case)', function () {
97
111
  const input = getLargestInputWithType(inputType, signKeys, inputType === 'p2tr' || inputType === 'p2trMusig2' || inputType === 'taprootKeyPathSpend' ? 10 : 100);
98
112
  const components = getInputComponents(input);
99
113
  assert.deepStrictEqual(components, expectedComponents);
100
- assert.strictEqual(inputWeights_1.getInputComponentsWeight(components), inputWeights_1.getInputWeight(input));
114
+ assert.strictEqual((0, inputWeights_1.getInputComponentsWeight)(components), (0, inputWeights_1.getInputWeight)(input));
101
115
  });
102
116
  });
103
117
  }
104
- testutils_1.getInputScriptTypes().forEach((inputType) => {
118
+ (0, testutils_1.getInputScriptTypes)().forEach((inputType) => {
105
119
  if (inputType !== 'p2trMusig2') {
106
120
  runTestComponentSizes(inputType, inputType === 'p2shP2pk' ? ['user'] : ['user', 'bitgo']);
107
121
  }
@@ -110,4 +124,4 @@ describe('Input Script Sizes (Worst-Case)', function () {
110
124
  }
111
125
  });
112
126
  });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRXZWlnaHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9zaWduZWRUeC9pbnB1dFdlaWdodHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBR2pDLDhEQUFnRDtBQUNoRCxtREFBNkQ7QUFDN0QseURBV2dDO0FBQ2hDLHVEQUErRDtBQUMvRCw0Q0FNc0I7QUFFdEIsUUFBUSxDQUFDLGlDQUFpQyxFQUFFO0lBQzFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFxQixDQUFDO0lBQ3JHLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckYsU0FBUyx1QkFBdUIsQ0FDOUIsU0FBaUIsRUFDakIsUUFBaUMsRUFDakMsVUFBVSxHQUFHLEdBQUc7UUFFaEIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNwRSxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFzQixD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QUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7UUFDbEQsSUFBSSxTQUFTLEtBQUssWUFBWSxFQUFFO1lBQzlCLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxTQUFTLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzNGO1FBQ0QsSUFBSSxTQUFTLEtBQUssVUFBVSxJQUFJLFNBQVMsS0FBSyxxQkFBcUIsRUFBRTtZQUNuRSxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgbW9jaGEgZnJvbSAnbW9jaGEnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBiaXAzMiwgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQge1xuICBnZXRJbnB1dENvbXBvbmVudHNXZWlnaHQsXG4gIGdldElucHV0V2VpZ2h0LFxuICBJbnB1dENvbXBvbmVudHMsXG4gIGlucHV0Q29tcG9uZW50c1Ayc2gsXG4gIGlucHV0Q29tcG9uZW50c1Ayc2hQMnBrLFxuICBpbnB1dENvbXBvbmVudHNQMnNoUDJ3c2gsXG4gIGlucHV0Q29tcG9uZW50c1AydHJLZXlTcGVuZCxcbiAgaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwxLFxuICBpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDIsXG4gIGlucHV0Q29tcG9uZW50c1Ayd3NoLFxufSBmcm9tICcuLi8uLi9zcmMvaW5wdXRXZWlnaHRzJztcbmltcG9ydCB7IHB1c2hkYXRhRW5jb2RpbmdMZW5ndGggfSBmcm9tICcuLi8uLi9zcmMvc2NyaXB0U2l6ZXMnO1xuaW1wb3J0IHtcbiAgZ2V0SW5wdXRTY3JpcHRUeXBlcyxcbiAgZ2V0U2lnbmVkVHJhbnNhY3Rpb24sXG4gIElucHV0U2NyaXB0VHlwZSxcbiAgVGVzdFVuc3BlbnRUeXBlLFxuICBVbnNwZW50VHlwZVNjcmlwdDJvZjMsXG59IGZyb20gJy4uL3Rlc3R1dGlscyc7XG5cbmRlc2NyaWJlKCdJbnB1dCBTY3JpcHQgU2l6ZXMgKFdvcnN0LUNhc2UpJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBrZXlzID0gWzEsIDIsIDNdLm1hcCgodikgPT4gYmlwMzIuZnJvbVNlZWQoQnVmZmVyLmFsbG9jKDE2LCBgdGVzdC8ke3Z9YCkpKSBhcyBCSVAzMkludGVyZmFjZVtdO1xuICBjb25zdCByb290V2FsbGV0S2V5cyA9IG5ldyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKFtrZXlzWzBdLCBrZXlzWzFdLCBrZXlzWzJdXSk7XG5cbiAgZnVuY3Rpb24gZ2V0TGFyZ2VzdElucHV0V2l0aFR5cGUoXG4gICAgaW5wdXRUeXBlOiBzdHJpbmcsXG4gICAgc2lnbktleXM6IHV0eG9saWIuYml0Z28uS2V5TmFtZVtdLFxuICAgIGlucHV0Q291bnQgPSAxMDBcbiAgKTogdXR4b2xpYi5UeElucHV0IHtcbiAgICBjb25zdCBzaWduZXJOYW1lID0gc2lnbktleXNbMF07XG4gICAgY29uc3QgY29zaWduZXJOYW1lID0gc2lnbktleXMubGVuZ3RoID4gMSA/IHNpZ25LZXlzWzFdIDogc2lnbmVyTmFtZTtcbiAgICBjb25zdCBpbnB1dFNjcmlwdFR5cGVzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogaW5wdXRDb3VudCB9KS5maWxsKGlucHV0VHlwZSkgYXMgSW5wdXRTY3JpcHRUeXBlW107XG4gICAgY29uc3Qgb3V0cHV0U2NyaXB0VHlwZXMgPSBbVW5zcGVudFR5cGVTY3JpcHQyb2YzLnAyc2hdIGFzIFRlc3RVbnNwZW50VHlwZVtdO1xuICAgIHJldHVybiBnZXRTaWduZWRUcmFuc2FjdGlvbihcbiAgICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgICAgc2lnbmVyTmFtZSxcbiAgICAgIGNvc2lnbmVyTmFtZSxcbiAgICAgIGlucHV0U2NyaXB0VHlwZXMsXG4gICAgICBvdXRwdXRTY3JpcHRUeXBlc1xuICAgICkuaW5zLnJlZHVjZSgoYSwgYikgPT4gKGdldElucHV0V2VpZ2h0KGEpID4gZ2V0SW5wdXRXZWlnaHQoYikgPyBhIDogYikpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0SW5wdXRDb21wb25lbnRzKGlucHV0OiB1dHhvbGliLlR4SW5wdXQpOiBJbnB1dENvbXBvbmVudHMge1xuICAgIGNvbnN0IGRlY29tcGlsZWQgPSB1dHhvbGliLnNjcmlwdC5kZWNvbXBpbGUoaW5wdXQuc2NyaXB0KTtcbiAgICBpZiAoIWRlY29tcGlsZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgIH1cblxuICAgIGNvbnN0IHNjcmlwdCA9IGRlY29tcGlsZWQubWFwKCh2KSA9PiB7XG4gICAgICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcih2KSkge1xuICAgICAgICByZXR1cm4geyBsZW5ndGg6IDEgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGxlbmd0aDogdi5sZW5ndGggKyBwdXNoZGF0YUVuY29kaW5nTGVuZ3RoKHYubGVuZ3RoKSB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHdpdG5lc3MgPSAoaW5wdXQud2l0bmVzcyB8fCBbXSkubWFwKCh2KSA9PiAoeyBsZW5ndGg6IHYubGVuZ3RoIH0pKTtcblxuICAgIGNvbnN0IHNjcmlwdFNpemUgPSBzY3JpcHQucmVkdWNlKChhLCBiKSA9PiBhICsgYi5sZW5ndGgsIDApO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChzY3JpcHRTaXplLCBpbnB1dC5zY3JpcHQubGVuZ3RoLCB1dHhvbGliLnNjcmlwdC50b0FTTShkZWNvbXBpbGVkKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2NyaXB0OiBzY3JpcHQubWFwKCh2KSA9PiB2Lmxlbmd0aCksXG4gICAgICB3aXRuZXNzOiB3aXRuZXNzLm1hcCgodikgPT4gdi5sZW5ndGgpLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBydW5UZXN0Q29tcG9uZW50U2l6ZXMoaW5wdXRUeXBlOiBzdHJpbmcsIHNpZ25LZXlzOiB1dHhvbGliLmJpdGdvLktleU5hbWVbXSkge1xuICAgIGNvbnN0IHNpZ25LZXlzU3RyID0gc2lnbktleXMuam9pbignLCcpO1xuXG4gICAgZGVzY3JpYmUoYGlucHV0VHlwZT0ke2lucHV0VHlwZX0gc2lnbktleXM9JHtzaWduS2V5c1N0cn1gLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdChgY29tcG9uZW50IHNpemVzYCwgZnVuY3Rpb24gKHRoaXM6IG1vY2hhLkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy50aW1lb3V0KDEwXzAwMCk7XG4gICAgICAgIGxldCBleHBlY3RlZENvbXBvbmVudHM7XG4gICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKSB7XG4gICAgICAgICAgY2FzZSAncDJzaCc6XG4gICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnNoO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncDJzaFAyd3NoJzpcbiAgICAgICAgICAgIGV4cGVjdGVkQ29tcG9uZW50cyA9IGlucHV0Q29tcG9uZW50c1Ayc2hQMndzaDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICAgICAgICAgIGV4cGVjdGVkQ29tcG9uZW50cyA9IGlucHV0Q29tcG9uZW50c1Ayd3NoO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncDJzaFAycGsnOlxuICAgICAgICAgICAgZXhwZWN0ZWRDb21wb25lbnRzID0gaW5wdXRDb21wb25lbnRzUDJzaFAycGs7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdwMnRyJzpcbiAgICAgICAgICAgIGlmIChzaWduS2V5c1sxXSA9PT0gJ2JpdGdvJykge1xuICAgICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNpZ25LZXlzWzFdID09PSAnYmFja3VwJykge1xuICAgICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgY29zaWduZXJgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3AydHJNdXNpZzInOlxuICAgICAgICAgICAgLy8gYXNzdW1lcyBvbmx5IHNjcmlwdCBwYXRoXG4gICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICd0YXByb290S2V5UGF0aFNwZW5kJzpcbiAgICAgICAgICAgIGV4cGVjdGVkQ29tcG9uZW50cyA9IGlucHV0Q29tcG9uZW50c1AydHJLZXlTcGVuZDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgaW5wdXRUeXBlICR7aW5wdXRUeXBlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5wdXQgPSBnZXRMYXJnZXN0SW5wdXRXaXRoVHlwZShcbiAgICAgICAgICBpbnB1dFR5cGUsXG4gICAgICAgICAgc2lnbktleXMsXG4gICAgICAgICAgaW5wdXRUeXBlID09PSAncDJ0cicgfHwgaW5wdXRUeXBlID09PSAncDJ0ck11c2lnMicgfHwgaW5wdXRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcgPyAxMCA6IDEwMFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBjb21wb25lbnRzID0gZ2V0SW5wdXRDb21wb25lbnRzKGlucHV0KTtcbiAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb21wb25lbnRzLCBleHBlY3RlZENvbXBvbmVudHMpO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0SW5wdXRDb21wb25lbnRzV2VpZ2h0KGNvbXBvbmVudHMpLCBnZXRJbnB1dFdlaWdodChpbnB1dCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRJbnB1dFNjcmlwdFR5cGVzKCkuZm9yRWFjaCgoaW5wdXRUeXBlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaW5wdXRUeXBlICE9PSAncDJ0ck11c2lnMicpIHtcbiAgICAgIHJ1blRlc3RDb21wb25lbnRTaXplcyhpbnB1dFR5cGUsIGlucHV0VHlwZSA9PT0gJ3Ayc2hQMnBrJyA/IFsndXNlciddIDogWyd1c2VyJywgJ2JpdGdvJ10pO1xuICAgIH1cbiAgICBpZiAoaW5wdXRUeXBlICE9PSAncDJzaFAycGsnICYmIGlucHV0VHlwZSAhPT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnKSB7XG4gICAgICBydW5UZXN0Q29tcG9uZW50U2l6ZXMoaW5wdXRUeXBlLCBbJ3VzZXInLCAnYmFja3VwJ10pO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRXZWlnaHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9zaWduZWRUeC9pbnB1dFdlaWdodHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFHakMsOERBQWdEO0FBQ2hELG1EQUE2RDtBQUM3RCx5REFXZ0M7QUFDaEMsdURBQStEO0FBQy9ELDRDQU1zQjtBQUV0QixRQUFRLENBQUMsaUNBQWlDLEVBQUU7SUFDMUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsZ0JBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQXFCLENBQUM7SUFDckcsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVyRixTQUFTLHVCQUF1QixDQUM5QixTQUFpQixFQUNqQixRQUFpQyxFQUNqQyxVQUFVLEdBQUcsR0FBRztRQUVoQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3BFLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FB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RUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBQSwrQkFBbUIsR0FBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtRQUNsRCxJQUFJLFNBQVMsS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUMvQixxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsSUFBSSxTQUFTLEtBQUssVUFBVSxJQUFJLFNBQVMsS0FBSyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3BFLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIG1vY2hhIGZyb20gJ21vY2hhJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgYmlwMzIsIEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHtcbiAgZ2V0SW5wdXRDb21wb25lbnRzV2VpZ2h0LFxuICBnZXRJbnB1dFdlaWdodCxcbiAgSW5wdXRDb21wb25lbnRzLFxuICBpbnB1dENvbXBvbmVudHNQMnNoLFxuICBpbnB1dENvbXBvbmVudHNQMnNoUDJwayxcbiAgaW5wdXRDb21wb25lbnRzUDJzaFAyd3NoLFxuICBpbnB1dENvbXBvbmVudHNQMnRyS2V5U3BlbmQsXG4gIGlucHV0Q29tcG9uZW50c1AydHJTY3JpcHRTcGVuZExldmVsMSxcbiAgaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwyLFxuICBpbnB1dENvbXBvbmVudHNQMndzaCxcbn0gZnJvbSAnLi4vLi4vc3JjL2lucHV0V2VpZ2h0cyc7XG5pbXBvcnQgeyBwdXNoZGF0YUVuY29kaW5nTGVuZ3RoIH0gZnJvbSAnLi4vLi4vc3JjL3NjcmlwdFNpemVzJztcbmltcG9ydCB7XG4gIGdldElucHV0U2NyaXB0VHlwZXMsXG4gIGdldFNpZ25lZFRyYW5zYWN0aW9uLFxuICBJbnB1dFNjcmlwdFR5cGUsXG4gIFRlc3RVbnNwZW50VHlwZSxcbiAgVW5zcGVudFR5cGVTY3JpcHQyb2YzLFxufSBmcm9tICcuLi90ZXN0dXRpbHMnO1xuXG5kZXNjcmliZSgnSW5wdXQgU2NyaXB0IFNpemVzIChXb3JzdC1DYXNlKScsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3Qga2V5cyA9IFsxLCAyLCAzXS5tYXAoKHYpID0+IGJpcDMyLmZyb21TZWVkKEJ1ZmZlci5hbGxvYygxNiwgYHRlc3QvJHt2fWApKSkgYXMgQklQMzJJbnRlcmZhY2VbXTtcbiAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSBuZXcgdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyhba2V5c1swXSwga2V5c1sxXSwga2V5c1syXV0pO1xuXG4gIGZ1bmN0aW9uIGdldExhcmdlc3RJbnB1dFdpdGhUeXBlKFxuICAgIGlucHV0VHlwZTogc3RyaW5nLFxuICAgIHNpZ25LZXlzOiB1dHhvbGliLmJpdGdvLktleU5hbWVbXSxcbiAgICBpbnB1dENvdW50ID0gMTAwXG4gICk6IHV0eG9saWIuVHhJbnB1dCB7XG4gICAgY29uc3Qgc2lnbmVyTmFtZSA9IHNpZ25LZXlzWzBdO1xuICAgIGNvbnN0IGNvc2lnbmVyTmFtZSA9IHNpZ25LZXlzLmxlbmd0aCA+IDEgPyBzaWduS2V5c1sxXSA6IHNpZ25lck5hbWU7XG4gICAgY29uc3QgaW5wdXRTY3JpcHRUeXBlcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IGlucHV0Q291bnQgfSkuZmlsbChpbnB1dFR5cGUpIGFzIElucHV0U2NyaXB0VHlwZVtdO1xuICAgIGNvbnN0IG91dHB1dFNjcmlwdFR5cGVzID0gW1Vuc3BlbnRUeXBlU2NyaXB0Mm9mMy5wMnNoXSBhcyBUZXN0VW5zcGVudFR5cGVbXTtcbiAgICByZXR1cm4gZ2V0U2lnbmVkVHJhbnNhY3Rpb24oXG4gICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgIHNpZ25lck5hbWUsXG4gICAgICBjb3NpZ25lck5hbWUsXG4gICAgICBpbnB1dFNjcmlwdFR5cGVzLFxuICAgICAgb3V0cHV0U2NyaXB0VHlwZXNcbiAgICApLmlucy5yZWR1Y2UoKGEsIGIpID0+IChnZXRJbnB1dFdlaWdodChhKSA+IGdldElucHV0V2VpZ2h0KGIpID8gYSA6IGIpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldElucHV0Q29tcG9uZW50cyhpbnB1dDogdXR4b2xpYi5UeElucHV0KTogSW5wdXRDb21wb25lbnRzIHtcbiAgICBjb25zdCBkZWNvbXBpbGVkID0gdXR4b2xpYi5zY3JpcHQuZGVjb21waWxlKGlucHV0LnNjcmlwdCk7XG4gICAgaWYgKCFkZWNvbXBpbGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY3JpcHQgPSBkZWNvbXBpbGVkLm1hcCgodikgPT4ge1xuICAgICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodikpIHtcbiAgICAgICAgcmV0dXJuIHsgbGVuZ3RoOiAxIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyBsZW5ndGg6IHYubGVuZ3RoICsgcHVzaGRhdGFFbmNvZGluZ0xlbmd0aCh2Lmxlbmd0aCkgfTtcbiAgICB9KTtcbiAgICBjb25zdCB3aXRuZXNzID0gKGlucHV0LndpdG5lc3MgfHwgW10pLm1hcCgodikgPT4gKHsgbGVuZ3RoOiB2Lmxlbmd0aCB9KSk7XG5cbiAgICBjb25zdCBzY3JpcHRTaXplID0gc2NyaXB0LnJlZHVjZSgoYSwgYikgPT4gYSArIGIubGVuZ3RoLCAwKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2NyaXB0U2l6ZSwgaW5wdXQuc2NyaXB0Lmxlbmd0aCwgdXR4b2xpYi5zY3JpcHQudG9BU00oZGVjb21waWxlZCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNjcmlwdDogc2NyaXB0Lm1hcCgodikgPT4gdi5sZW5ndGgpLFxuICAgICAgd2l0bmVzczogd2l0bmVzcy5tYXAoKHYpID0+IHYubGVuZ3RoKSxcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcnVuVGVzdENvbXBvbmVudFNpemVzKGlucHV0VHlwZTogc3RyaW5nLCBzaWduS2V5czogdXR4b2xpYi5iaXRnby5LZXlOYW1lW10pIHtcbiAgICBjb25zdCBzaWduS2V5c1N0ciA9IHNpZ25LZXlzLmpvaW4oJywnKTtcblxuICAgIGRlc2NyaWJlKGBpbnB1dFR5cGU9JHtpbnB1dFR5cGV9IHNpZ25LZXlzPSR7c2lnbktleXNTdHJ9YCwgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoYGNvbXBvbmVudCBzaXplc2AsIGZ1bmN0aW9uICh0aGlzOiBtb2NoYS5Db250ZXh0KSB7XG4gICAgICAgIHRoaXMudGltZW91dCgxMF8wMDApO1xuICAgICAgICBsZXQgZXhwZWN0ZWRDb21wb25lbnRzO1xuICAgICAgICBzd2l0Y2ggKGlucHV0VHlwZSkge1xuICAgICAgICAgIGNhc2UgJ3Ayc2gnOlxuICAgICAgICAgICAgZXhwZWN0ZWRDb21wb25lbnRzID0gaW5wdXRDb21wb25lbnRzUDJzaDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Ayc2hQMndzaCc6XG4gICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnNoUDJ3c2g7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdwMndzaCc6XG4gICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMndzaDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Ayc2hQMnBrJzpcbiAgICAgICAgICAgIGV4cGVjdGVkQ29tcG9uZW50cyA9IGlucHV0Q29tcG9uZW50c1Ayc2hQMnBrO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncDJ0cic6XG4gICAgICAgICAgICBpZiAoc2lnbktleXNbMV0gPT09ICdiaXRnbycpIHtcbiAgICAgICAgICAgICAgZXhwZWN0ZWRDb21wb25lbnRzID0gaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwxO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzaWduS2V5c1sxXSA9PT0gJ2JhY2t1cCcpIHtcbiAgICAgICAgICAgICAgZXhwZWN0ZWRDb21wb25lbnRzID0gaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIGNvc2lnbmVyYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdwMnRyTXVzaWcyJzpcbiAgICAgICAgICAgIC8vIGFzc3VtZXMgb25seSBzY3JpcHQgcGF0aFxuICAgICAgICAgICAgZXhwZWN0ZWRDb21wb25lbnRzID0gaW5wdXRDb21wb25lbnRzUDJ0clNjcmlwdFNwZW5kTGV2ZWwxO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndGFwcm9vdEtleVBhdGhTcGVuZCc6XG4gICAgICAgICAgICBleHBlY3RlZENvbXBvbmVudHMgPSBpbnB1dENvbXBvbmVudHNQMnRyS2V5U3BlbmQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGlucHV0VHlwZSAke2lucHV0VHlwZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlucHV0ID0gZ2V0TGFyZ2VzdElucHV0V2l0aFR5cGUoXG4gICAgICAgICAgaW5wdXRUeXBlLFxuICAgICAgICAgIHNpZ25LZXlzLFxuICAgICAgICAgIGlucHV0VHlwZSA9PT0gJ3AydHInIHx8IGlucHV0VHlwZSA9PT0gJ3AydHJNdXNpZzInIHx8IGlucHV0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnID8gMTAgOiAxMDBcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IGdldElucHV0Q29tcG9uZW50cyhpbnB1dCk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29tcG9uZW50cywgZXhwZWN0ZWRDb21wb25lbnRzKTtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldElucHV0Q29tcG9uZW50c1dlaWdodChjb21wb25lbnRzKSwgZ2V0SW5wdXRXZWlnaHQoaW5wdXQpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0SW5wdXRTY3JpcHRUeXBlcygpLmZvckVhY2goKGlucHV0VHlwZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGlucHV0VHlwZSAhPT0gJ3AydHJNdXNpZzInKSB7XG4gICAgICBydW5UZXN0Q29tcG9uZW50U2l6ZXMoaW5wdXRUeXBlLCBpbnB1dFR5cGUgPT09ICdwMnNoUDJwaycgPyBbJ3VzZXInXSA6IFsndXNlcicsICdiaXRnbyddKTtcbiAgICB9XG4gICAgaWYgKGlucHV0VHlwZSAhPT0gJ3Ayc2hQMnBrJyAmJiBpbnB1dFR5cGUgIT09ICd0YXByb290S2V5UGF0aFNwZW5kJykge1xuICAgICAgcnVuVGVzdENvbXBvbmVudFNpemVzKGlucHV0VHlwZSwgWyd1c2VyJywgJ2JhY2t1cCddKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  import * as utxolib from '@bitgo-beta/utxo-lib';
2
- export declare type InputScriptType = utxolib.bitgo.outputScripts.ScriptType | 'taprootKeyPathSpend';
2
+ export type InputScriptType = utxolib.bitgo.outputScripts.ScriptType | 'taprootKeyPathSpend';
3
3
  //# sourceMappingURL=txCombinations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"txCombinations.d.ts","sourceRoot":"","sources":["../../../test/signedTx/txCombinations.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,oBAAY,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"txCombinations.d.ts","sourceRoot":"","sources":["../../../test/signedTx/txCombinations.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,qBAAqB,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -11,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
11
15
  }) : function(o, v) {
12
16
  o["default"] = v;
13
17
  });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
21
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
22
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
37
  };
@@ -50,7 +64,7 @@ const testDimensionsFromTx = (txCombo) => {
50
64
  it(`calculates dimensions for signed input of transaction`, function () {
51
65
  const signedTx = txCombo.getSignedTx();
52
66
  // test Dimensions.fromInput()
53
- inputTypes.forEach((input, i) => src_1.Dimensions.fromInput(signedTx.ins[i]).should.eql(src_1.Dimensions.sum(testutils_1.getInputDimensionsForUnspentType(input))));
67
+ inputTypes.forEach((input, i) => src_1.Dimensions.fromInput(signedTx.ins[i]).should.eql(src_1.Dimensions.sum((0, testutils_1.getInputDimensionsForUnspentType)(input))));
54
68
  });
55
69
  });
56
70
  };
@@ -58,13 +72,13 @@ const testDimensionsFromPsbt = (keys, inputTypes, outputTypes, expectedDims) =>
58
72
  describe(`Psbt Combination inputs=${inputTypes}; outputs=${outputTypes}`, function () {
59
73
  ['unsigned', 'halfsigned', 'fullysigned'].forEach((s) => {
60
74
  it(`calculates dimensions from ${s} psbt`, function () {
61
- const dimensions = src_1.Dimensions.fromPsbt(testutils_1.constructPsbt(keys, inputTypes, outputTypes, s));
75
+ const dimensions = src_1.Dimensions.fromPsbt((0, testutils_1.constructPsbt)(keys, inputTypes, outputTypes, s));
62
76
  dimensions.should.eql(expectedDims);
63
77
  });
64
78
  });
65
79
  it(`calculates dimensions for signed input of psbt`, function () {
66
- const signedPsbt = testutils_1.constructPsbt(keys, inputTypes, outputTypes, 'fullysigned');
67
- inputTypes.forEach((input, i) => src_1.Dimensions.fromPsbtInput(signedPsbt.data.inputs[i]).should.eql(src_1.Dimensions.sum(testutils_1.getInputDimensionsForUnspentType(input))));
80
+ const signedPsbt = (0, testutils_1.constructPsbt)(keys, inputTypes, outputTypes, 'fullysigned');
81
+ inputTypes.forEach((input, i) => src_1.Dimensions.fromPsbtInput(signedPsbt.data.inputs[i]).should.eql(src_1.Dimensions.sum((0, testutils_1.getInputDimensionsForUnspentType)(input))));
68
82
  });
69
83
  });
70
84
  };
@@ -77,7 +91,7 @@ describe(`Dimensions for transaction combinations`, function () {
77
91
  outputTypes: [...scriptTypes, ...Object.keys(testutils_1.UnspentTypePubKeyHash)],
78
92
  maxNOutputs: 2,
79
93
  };
80
- txGen_1.runCombinations(params, (inputTypeCombo, outputTypeCombo) => {
94
+ (0, txGen_1.runCombinations)(params, (inputTypeCombo, outputTypeCombo) => {
81
95
  const expectedInputDims = src_1.Dimensions.sum(...inputTypeCombo.map(testutils_1.getInputDimensionsForUnspentType));
82
96
  const expectedOutputDims = src_1.Dimensions.sum(...outputTypeCombo.map(testutils_1.getOutputDimensionsForUnspentType));
83
97
  testDimensionsFromTx(new txGen_1.TxCombo(keys, inputTypeCombo, outputTypeCombo, expectedInputDims.plus(expectedOutputDims)));
@@ -103,7 +117,7 @@ describe(`Dimensions for PSBT combinations`, function () {
103
117
  psbt.addInput({ hash: Buffer.alloc(32), index: 0 });
104
118
  should_1.default.throws(() => src_1.Dimensions.fromPsbt(psbt));
105
119
  });
106
- txGen_1.runCombinations(params, (inputTypeCombo, outputTypeCombo) => {
120
+ (0, txGen_1.runCombinations)(params, (inputTypeCombo, outputTypeCombo) => {
107
121
  const expectedInputDims = src_1.Dimensions.sum(...inputTypeCombo.map(testutils_1.getInputDimensionsForUnspentType));
108
122
  const expectedOutputDims = src_1.Dimensions.sum(...outputTypeCombo.map(testutils_1.getOutputDimensionsForUnspentType));
109
123
  testDimensionsFromPsbt(rootWalletKeys, inputTypeCombo, outputTypeCombo, expectedInputDims.plus(expectedOutputDims));
@@ -113,4 +127,4 @@ describe(`Dimensions for PSBT combinations`, function () {
113
127
  testDimensionsFromPsbt(rootWalletKeys, inputTypeCombo, [...outputTypeCombo, ...outputTypeCombo], expectedInputDims.plus(expectedOutputDims).plus(expectedOutputDims));
114
128
  });
115
129
  });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhDb21iaW5hdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3NpZ25lZFR4L3R4Q29tYmluYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixtQ0FBdUM7QUFFdkMsNENBUXNCO0FBRXRCLG1DQUFtRDtBQUNuRCw4REFBZ0Q7QUFJaEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUN0RCxDQUFDO0FBRTlCLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFckYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFO0lBQzVDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUUxRCxRQUFRLENBQUMsc0JBQXNCLFVBQVUsYUFBYSxXQUFXLEVBQUUsRUFBRTtRQUNuRSxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLGdCQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyw2Q0FBaUMsQ0FBQyxDQUFDLENBQUM7UUFFekYsRUFBRSxDQUFDLGlEQUFpRCxFQUFF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QUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmltcG9ydCB7XG4gIGNvbnN0cnVjdFBzYnQsXG4gIGdldElucHV0RGltZW5zaW9uc0ZvclVuc3BlbnRUeXBlLFxuICBnZXRPdXRwdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUsXG4gIFRlc3RVbnNwZW50VHlwZSxcbiAgVW5zcGVudFR5cGVQMnNoUDJwayxcbiAgVW5zcGVudFR5cGVQdWJLZXlIYXNoLFxuICBVbnNwZW50VHlwZVNjcmlwdDJvZjMsXG59IGZyb20gJy4uL3Rlc3R1dGlscyc7XG5cbmltcG9ydCB7IHJ1bkNvbWJpbmF0aW9ucywgVHhDb21ibyB9IGZyb20gJy4vdHhHZW4nO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmV4cG9ydCB0eXBlIElucHV0U2NyaXB0VHlwZSA9IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlIHwgJ3RhcHJvb3RLZXlQYXRoU3BlbmQnO1xuXG5jb25zdCBrZXlzID0gWzEsIDIsIDNdLm1hcCgodikgPT5cbiAgdXR4b2xpYi5iaXAzMi5mcm9tU2VlZChCdWZmZXIuYWxsb2MoMTYsIGB0ZXN0LzIvJHt2fWApLCB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pXG4pIGFzIHV0eG9saWIuQklQMzJJbnRlcmZhY2VbXTtcblxuY29uc3Qgcm9vdFdhbGxldEtleXMgPSBuZXcgdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyhba2V5c1swXSwga2V5c1sxXSwga2V5c1syXV0pO1xuXG5jb25zdCB0ZXN0RGltZW5zaW9uc0Zyb21UeCA9ICh0eENvbWJvOiBhbnkpID0+IHtcbiAgY29uc3QgeyBpbnB1dFR5cGVzLCBvdXRwdXRUeXBlcywgZXhwZWN0ZWREaW1zIH0gPSB0eENvbWJvO1xuXG4gIGRlc2NyaWJlKGBDb21iaW5hdGlvbiBpbnB1dHM9JHtpbnB1dFR5cGVzfTsgb3V0cHV0cz0ke291dHB1dFR5cGVzfWAsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBuSW5wdXRzID0gaW5wdXRUeXBlcy5sZW5ndGg7XG4gICAgY29uc3Qgb3V0cHV0RGltcyA9IERpbWVuc2lvbnMuc3VtKC4uLm91dHB1dFR5cGVzLm1hcChnZXRPdXRwdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUpKTtcblxuICAgIGl0KGBjYWxjdWxhdGVzIGRpbWVuc2lvbnMgZnJvbSB1bnNpZ25lZCB0cmFuc2FjdGlvbmAsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHVuc2lnbmVkVHggPSB0eENvbWJvLmdldFVuc2lnbmVkVHgoKTtcblxuICAgICAgLy8gZG9lcyBub3Qgd29yayBmb3IgdW5zaWduZWQgdHJhbnNhY3Rpb25zXG4gICAgICBzaG91bGQudGhyb3dzKCgpID0+IERpbWVuc2lvbnMuZnJvbVRyYW5zYWN0aW9uKHVuc2lnbmVkVHgpKTtcblxuICAgICAgLy8gdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZFxuICAgICAgRGltZW5zaW9ucy5mcm9tVHJhbnNhY3Rpb24odW5zaWduZWRUeCwgeyBhc3N1bWVVbnNpZ25lZDogRGltZW5zaW9ucy5BU1NVTUVfUDJTSCB9KS5zaG91bGQuZXFsKFxuICAgICAgICBEaW1lbnNpb25zLnN1bSh7IG5QMnNoSW5wdXRzOiBuSW5wdXRzIH0sIG91dHB1dERpbXMpXG4gICAgICApO1xuXG4gICAgICBEaW1lbnNpb25zLmZyb21UcmFuc2FjdGlvbih1bnNpZ25lZFR4LCB7IGFzc3VtZVVuc2lnbmVkOiBEaW1lbnNpb25zLkFTU1VNRV9QMlNIX1AyV1NIIH0pLnNob3VsZC5lcWwoXG4gICAgICAgIERpbWVuc2lvbnMuc3VtKHsgblAyc2hQMndzaElucHV0czogbklucHV0cyB9LCBvdXRwdXREaW1zKVxuICAgICAgKTtcblxuICAgICAgRGltZW5zaW9ucy5mcm9tVHJhbnNhY3Rpb24odW5zaWduZWRUeCwgeyBhc3N1bWVVbnNpZ25lZDogRGltZW5zaW9ucy5BU1NVTUVfUDJXU0ggfSkuc2hvdWxkLmVxbChcbiAgICAgICAgRGltZW5zaW9ucy5zdW0oeyBuUDJ3c2hJbnB1dHM6IG5JbnB1dHMgfSwgb3V0cHV0RGltcylcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChgY2FsY3VsYXRlcyBkaW1lbnNpb25zIGZvciBzaWduZWQgdHJhbnNhY3Rpb25gLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkaW1lbnNpb25zID0gRGltZW5zaW9ucy5mcm9tVHJhbnNhY3Rpb24odHhDb21iby5nZXRTaWduZWRUeCgpKTtcbiAgICAgIGRpbWVuc2lvbnMuc2hvdWxkLmVxbChleHBlY3RlZERpbXMpO1xuICAgIH0pO1xuXG4gICAgaXQoYGNhbGN1bGF0ZXMgZGltZW5zaW9ucyBmb3Igc2lnbmVkIGlucHV0IG9mIHRyYW5zYWN0aW9uYCwgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgc2lnbmVkVHggPSB0eENvbWJvLmdldFNpZ25lZFR4KCk7XG5cbiAgICAgIC8vIHRlc3QgRGltZW5zaW9ucy5mcm9tSW5wdXQoKVxuICAgICAgaW5wdXRUeXBlcy5mb3JFYWNoKChpbnB1dDogYW55LCBpOiBudW1iZXIpID0+XG4gICAgICAgIERpbWVuc2lvbnMuZnJvbUlucHV0KHNpZ25lZFR4Lmluc1tpXSkuc2hvdWxkLmVxbChEaW1lbnNpb25zLnN1bShnZXRJbnB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZShpbnB1dCkpKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5jb25zdCB0ZXN0RGltZW5zaW9uc0Zyb21Qc2J0ID0gKFxuICBrZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLFxuICBpbnB1dFR5cGVzOiBJbnB1dFNjcmlwdFR5cGVbXSxcbiAgb3V0cHV0VHlwZXM6IFRlc3RVbnNwZW50VHlwZVtdLFxuICBleHBlY3RlZERpbXM6IERpbWVuc2lvbnNcbikgPT4ge1xuICBkZXNjcmliZShgUHNidCBDb21iaW5hdGlvbiBpbnB1dHM9JHtpbnB1dFR5cGVzfTsgb3V0cHV0cz0ke291dHB1dFR5cGVzfWAsIGZ1bmN0aW9uICgpIHtcbiAgICAoWyd1bnNpZ25lZCcsICdoYWxmc2lnbmVkJywgJ2Z1bGx5c2lnbmVkJ10gYXMgY29uc3QpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIGl0KGBjYWxjdWxhdGVzIGRpbWVuc2lvbnMgZnJvbSAke3N9IHBzYnRgLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBEaW1lbnNpb25zLmZyb21Qc2J0KGNvbnN0cnVjdFBzYnQoa2V5cywgaW5wdXRUeXBlcywgb3V0cHV0VHlwZXMsIHMpKTtcbiAgICAgICAgZGltZW5zaW9ucy5zaG91bGQuZXFsKGV4cGVjdGVkRGltcyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KGBjYWxjdWxhdGVzIGRpbWVuc2lvbnMgZm9yIHNpZ25lZCBpbnB1dCBvZiBwc2J0YCwgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgc2lnbmVkUHNidCA9IGNvbnN0cnVjdFBzYnQoa2V5cywgaW5wdXRUeXBlcywgb3V0cHV0VHlwZXMsICdmdWxseXNpZ25lZCcpO1xuXG4gICAgICBpbnB1dFR5cGVzLmZvckVhY2goKGlucHV0OiBhbnksIGk6IG51bWJlcikgPT5cbiAgICAgICAgRGltZW5zaW9ucy5mcm9tUHNidElucHV0KHNpZ25lZFBzYnQuZGF0YS5pbnB1dHNbaV0pLnNob3VsZC5lcWwoXG4gICAgICAgICAgRGltZW5zaW9ucy5zdW0oZ2V0SW5wdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUoaW5wdXQpKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmRlc2NyaWJlKGBEaW1lbnNpb25zIGZvciB0cmFuc2FjdGlvbiBjb21iaW5hdGlvbnNgLCBmdW5jdGlvbiAoKSB7XG4gIC8vIHAydHJNdXNpZzIgaXMgc3VwcG9ydGVkIG9ubHkgd2l0aCBQU0JUXG4gIGNvbnN0IHNjcmlwdFR5cGVzID0gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVzMk9mMy5maWx0ZXIoKHQpID0+IHQgIT09ICdwMnRyTXVzaWcyJyk7XG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICBpbnB1dFR5cGVzOiBbLi4uc2NyaXB0VHlwZXMsIFVuc3BlbnRUeXBlUDJzaFAycGtdIGFzIElucHV0U2NyaXB0VHlwZVtdLFxuICAgIG1heE5JbnB1dHM6IDIsXG4gICAgb3V0cHV0VHlwZXM6IFsuLi5zY3JpcHRUeXBlcywgLi4uT2JqZWN0LmtleXMoVW5zcGVudFR5cGVQdWJLZXlIYXNoKV0gYXMgVGVzdFVuc3BlbnRUeXBlW10sXG4gICAgbWF4Tk91dHB1dHM6IDIsXG4gIH07XG5cbiAgcnVuQ29tYmluYXRpb25zKHBhcmFtcywgKGlucHV0VHlwZUNvbWJvOiBJbnB1dFNjcmlwdFR5cGVbXSwgb3V0cHV0VHlwZUNvbWJvOiBUZXN0VW5zcGVudFR5cGVbXSkgPT4ge1xuICAgIGNvbnN0IGV4cGVjdGVkSW5wdXREaW1zID0gRGltZW5zaW9ucy5zdW0oLi4uaW5wdXRUeXBlQ29tYm8ubWFwKGdldElucHV0RGltZW5zaW9uc0ZvclVuc3BlbnRUeXBlKSk7XG4gICAgY29uc3QgZXhwZWN0ZWRPdXRwdXREaW1zID0gRGltZW5zaW9ucy5zdW0oLi4ub3V0cHV0VHlwZUNvbWJvLm1hcChnZXRPdXRwdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUpKTtcblxuICAgIHRlc3REaW1lbnNpb25zRnJvbVR4KFxuICAgICAgbmV3IFR4Q29tYm8oa2V5cywgaW5wdXRUeXBlQ29tYm8sIG91dHB1dFR5cGVDb21ibywgZXhwZWN0ZWRJbnB1dERpbXMucGx1cyhleHBlY3RlZE91dHB1dERpbXMpKVxuICAgICk7XG5cbiAgICAvLyBEb3VibGluZyB0aGUgaW5wdXRzIHNob3VsZCB5aWVsZCB0d2ljZSB0aGUgaW5wdXQgZGltc1xuICAgIHRlc3REaW1lbnNpb25zRnJvbVR4KFxuICAgICAgbmV3IFR4Q29tYm8oXG4gICAgICAgIGtleXMsXG4gICAgICAgIFsuLi5pbnB1dFR5cGVDb21ibywgLi4uaW5wdXRUeXBlQ29tYm9dLFxuICAgICAgICBvdXRwdXRUeXBlQ29tYm8sXG4gICAgICAgIGV4cGVjdGVkSW5wdXREaW1zLnBsdXMoZXhwZWN0ZWRJbnB1dERpbXMpLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKVxuICAgICAgKVxuICAgICk7XG5cbiAgICAvLyBTYW1lIGZvciBvdXRwdXRzXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tVHgoXG4gICAgICBuZXcgVHhDb21ibyhcbiAgICAgICAga2V5cyxcbiAgICAgICAgaW5wdXRUeXBlQ29tYm8sXG4gICAgICAgIFsuLi5vdXRwdXRUeXBlQ29tYm8sIC4uLm91dHB1dFR5cGVDb21ib10sXG4gICAgICAgIGV4cGVjdGVkSW5wdXREaW1zLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKS5wbHVzKGV4cGVjdGVkT3V0cHV0RGltcylcbiAgICAgIClcbiAgICApO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShgRGltZW5zaW9ucyBmb3IgUFNCVCBjb21iaW5hdGlvbnNgLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICBpbnB1dFR5cGVzOiBbXG4gICAgICAuLi51dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZXMyT2YzLFxuICAgICAgdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVQMnNoUDJwayxcbiAgICAgICd0YXByb290S2V5UGF0aFNwZW5kJyxcbiAgICBdIGFzIElucHV0U2NyaXB0VHlwZVtdLFxuICAgIG1heE5JbnB1dHM6IDEsXG4gICAgb3V0cHV0VHlwZXM6IFsuLi5PYmplY3Qua2V5cyhVbnNwZW50VHlwZVNjcmlwdDJvZjMpLCAuLi5PYmplY3Qua2V5cyhVbnNwZW50VHlwZVB1YktleUhhc2gpXSxcbiAgICBtYXhOT3V0cHV0czogMSxcbiAgfTtcblxuICBpdChgZG9lcyBub3Qgd29yayBmb3IgdW5rbm93biBwc2J0IGlucHV0YCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yazogdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luIH0pO1xuICAgIHBzYnQuYWRkSW5wdXQoeyBoYXNoOiBCdWZmZXIuYWxsb2MoMzIpLCBpbmRleDogMCB9KTtcbiAgICBzaG91bGQudGhyb3dzKCgpID0+IERpbWVuc2lvbnMuZnJvbVBzYnQocHNidCkpO1xuICB9KTtcblxuICBydW5Db21iaW5hdGlvbnMocGFyYW1zLCAoaW5wdXRUeXBlQ29tYm86IElucHV0U2NyaXB0VHlwZVtdLCBvdXRwdXRUeXBlQ29tYm86IFRlc3RVbnNwZW50VHlwZVtdKSA9PiB7XG4gICAgY29uc3QgZXhwZWN0ZWRJbnB1dERpbXMgPSBEaW1lbnNpb25zLnN1bSguLi5pbnB1dFR5cGVDb21iby5tYXAoZ2V0SW5wdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUpKTtcbiAgICBjb25zdCBleHBlY3RlZE91dHB1dERpbXMgPSBEaW1lbnNpb25zLnN1bSguLi5vdXRwdXRUeXBlQ29tYm8ubWFwKGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSkpO1xuXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tUHNidChyb290V2FsbGV0S2V5cywgaW5wdXRUeXBlQ29tYm8sIG91dHB1dFR5cGVDb21ibywgZXhwZWN0ZWRJbnB1dERpbXMucGx1cyhleHBlY3RlZE91dHB1dERpbXMpKTtcblxuICAgIC8vIERvdWJsaW5nIHRoZSBpbnB1dHMgc2hvdWxkIHlpZWxkIHR3aWNlIHRoZSBpbnB1dCBkaW1zXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tUHNidChcbiAgICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgICAgWy4uLmlucHV0VHlwZUNvbWJvLCAuLi5pbnB1dFR5cGVDb21ib10sXG4gICAgICBvdXRwdXRUeXBlQ29tYm8sXG4gICAgICBleHBlY3RlZElucHV0RGltcy5wbHVzKGV4cGVjdGVkSW5wdXREaW1zKS5wbHVzKGV4cGVjdGVkT3V0cHV0RGltcylcbiAgICApO1xuXG4gICAgLy8gU2FtZSBmb3Igb3V0cHV0c1xuICAgIHRlc3REaW1lbnNpb25zRnJvbVBzYnQoXG4gICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgIGlucHV0VHlwZUNvbWJvLFxuICAgICAgWy4uLm91dHB1dFR5cGVDb21ibywgLi4ub3V0cHV0VHlwZUNvbWJvXSxcbiAgICAgIGV4cGVjdGVkSW5wdXREaW1zLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKS5wbHVzKGV4cGVjdGVkT3V0cHV0RGltcylcbiAgICApO1xuICB9KTtcbn0pO1xuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhDb21iaW5hdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3NpZ25lZFR4L3R4Q29tYmluYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1DQUF1QztBQUV2Qyw0Q0FRc0I7QUFFdEIsbUNBQW1EO0FBQ25ELDhEQUFnRDtBQUloRCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQ3RELENBQUM7QUFFOUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVyRixNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBWSxFQUFFLEVBQUU7SUFDNUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTFELFFBQVEsQ0FBQyxzQkFBc0IsVUFBVSxhQUFhLFdBQVcsRUFBRSxFQUFFO1FBQ25FLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDbEMsTUFBTSxVQUFVLEdBQUcsZ0JBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLDZDQUFpQyxDQUFDLENBQUMsQ0FBQztRQUV6RixFQUFFLENB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Q0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FDcEUsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBEaW1lbnNpb25zIH0gZnJvbSAnLi4vLi4vc3JjJztcblxuaW1wb3J0IHtcbiAgY29uc3RydWN0UHNidCxcbiAgZ2V0SW5wdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUsXG4gIGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSxcbiAgVGVzdFVuc3BlbnRUeXBlLFxuICBVbnNwZW50VHlwZVAyc2hQMnBrLFxuICBVbnNwZW50VHlwZVB1YktleUhhc2gsXG4gIFVuc3BlbnRUeXBlU2NyaXB0Mm9mMyxcbn0gZnJvbSAnLi4vdGVzdHV0aWxzJztcblxuaW1wb3J0IHsgcnVuQ29tYmluYXRpb25zLCBUeENvbWJvIH0gZnJvbSAnLi90eEdlbic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuZXhwb3J0IHR5cGUgSW5wdXRTY3JpcHRUeXBlID0gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUgfCAndGFwcm9vdEtleVBhdGhTcGVuZCc7XG5cbmNvbnN0IGtleXMgPSBbMSwgMiwgM10ubWFwKCh2KSA9PlxuICB1dHhvbGliLmJpcDMyLmZyb21TZWVkKEJ1ZmZlci5hbGxvYygxNiwgYHRlc3QvMi8ke3Z9YCksIHV0eG9saWIubmV0d29ya3MuYml0Y29pbilcbikgYXMgdXR4b2xpYi5CSVAzMkludGVyZmFjZVtdO1xuXG5jb25zdCByb290V2FsbGV0S2V5cyA9IG5ldyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKFtrZXlzWzBdLCBrZXlzWzFdLCBrZXlzWzJdXSk7XG5cbmNvbnN0IHRlc3REaW1lbnNpb25zRnJvbVR4ID0gKHR4Q29tYm86IGFueSkgPT4ge1xuICBjb25zdCB7IGlucHV0VHlwZXMsIG91dHB1dFR5cGVzLCBleHBlY3RlZERpbXMgfSA9IHR4Q29tYm87XG5cbiAgZGVzY3JpYmUoYENvbWJpbmF0aW9uIGlucHV0cz0ke2lucHV0VHlwZXN9OyBvdXRwdXRzPSR7b3V0cHV0VHlwZXN9YCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IG5JbnB1dHMgPSBpbnB1dFR5cGVzLmxlbmd0aDtcbiAgICBjb25zdCBvdXRwdXREaW1zID0gRGltZW5zaW9ucy5zdW0oLi4ub3V0cHV0VHlwZXMubWFwKGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSkpO1xuXG4gICAgaXQoYGNhbGN1bGF0ZXMgZGltZW5zaW9ucyBmcm9tIHVuc2lnbmVkIHRyYW5zYWN0aW9uYCwgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdW5zaWduZWRUeCA9IHR4Q29tYm8uZ2V0VW5zaWduZWRUeCgpO1xuXG4gICAgICAvLyBkb2VzIG5vdCB3b3JrIGZvciB1bnNpZ25lZCB0cmFuc2FjdGlvbnNcbiAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4gRGltZW5zaW9ucy5mcm9tVHJhbnNhY3Rpb24odW5zaWduZWRUeCkpO1xuXG4gICAgICAvLyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkXG4gICAgICBEaW1lbnNpb25zLmZyb21UcmFuc2FjdGlvbih1bnNpZ25lZFR4LCB7IGFzc3VtZVVuc2lnbmVkOiBEaW1lbnNpb25zLkFTU1VNRV9QMlNIIH0pLnNob3VsZC5lcWwoXG4gICAgICAgIERpbWVuc2lvbnMuc3VtKHsgblAyc2hJbnB1dHM6IG5JbnB1dHMgfSwgb3V0cHV0RGltcylcbiAgICAgICk7XG5cbiAgICAgIERpbWVuc2lvbnMuZnJvbVRyYW5zYWN0aW9uKHVuc2lnbmVkVHgsIHsgYXNzdW1lVW5zaWduZWQ6IERpbWVuc2lvbnMuQVNTVU1FX1AyU0hfUDJXU0ggfSkuc2hvdWxkLmVxbChcbiAgICAgICAgRGltZW5zaW9ucy5zdW0oeyBuUDJzaFAyd3NoSW5wdXRzOiBuSW5wdXRzIH0sIG91dHB1dERpbXMpXG4gICAgICApO1xuXG4gICAgICBEaW1lbnNpb25zLmZyb21UcmFuc2FjdGlvbih1bnNpZ25lZFR4LCB7IGFzc3VtZVVuc2lnbmVkOiBEaW1lbnNpb25zLkFTU1VNRV9QMldTSCB9KS5zaG91bGQuZXFsKFxuICAgICAgICBEaW1lbnNpb25zLnN1bSh7IG5QMndzaElucHV0czogbklucHV0cyB9LCBvdXRwdXREaW1zKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KGBjYWxjdWxhdGVzIGRpbWVuc2lvbnMgZm9yIHNpZ25lZCB0cmFuc2FjdGlvbmAsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBEaW1lbnNpb25zLmZyb21UcmFuc2FjdGlvbih0eENvbWJvLmdldFNpZ25lZFR4KCkpO1xuICAgICAgZGltZW5zaW9ucy5zaG91bGQuZXFsKGV4cGVjdGVkRGltcyk7XG4gICAgfSk7XG5cbiAgICBpdChgY2FsY3VsYXRlcyBkaW1lbnNpb25zIGZvciBzaWduZWQgaW5wdXQgb2YgdHJhbnNhY3Rpb25gLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBzaWduZWRUeCA9IHR4Q29tYm8uZ2V0U2lnbmVkVHgoKTtcblxuICAgICAgLy8gdGVzdCBEaW1lbnNpb25zLmZyb21JbnB1dCgpXG4gICAgICBpbnB1dFR5cGVzLmZvckVhY2goKGlucHV0OiBhbnksIGk6IG51bWJlcikgPT5cbiAgICAgICAgRGltZW5zaW9ucy5mcm9tSW5wdXQoc2lnbmVkVHguaW5zW2ldKS5zaG91bGQuZXFsKERpbWVuc2lvbnMuc3VtKGdldElucHV0RGltZW5zaW9uc0ZvclVuc3BlbnRUeXBlKGlucHV0KSkpXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmNvbnN0IHRlc3REaW1lbnNpb25zRnJvbVBzYnQgPSAoXG4gIGtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMsXG4gIGlucHV0VHlwZXM6IElucHV0U2NyaXB0VHlwZVtdLFxuICBvdXRwdXRUeXBlczogVGVzdFVuc3BlbnRUeXBlW10sXG4gIGV4cGVjdGVkRGltczogRGltZW5zaW9uc1xuKSA9PiB7XG4gIGRlc2NyaWJlKGBQc2J0IENvbWJpbmF0aW9uIGlucHV0cz0ke2lucHV0VHlwZXN9OyBvdXRwdXRzPSR7b3V0cHV0VHlwZXN9YCwgZnVuY3Rpb24gKCkge1xuICAgIChbJ3Vuc2lnbmVkJywgJ2hhbGZzaWduZWQnLCAnZnVsbHlzaWduZWQnXSBhcyBjb25zdCkuZm9yRWFjaCgocykgPT4ge1xuICAgICAgaXQoYGNhbGN1bGF0ZXMgZGltZW5zaW9ucyBmcm9tICR7c30gcHNidGAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgZGltZW5zaW9ucyA9IERpbWVuc2lvbnMuZnJvbVBzYnQoY29uc3RydWN0UHNidChrZXlzLCBpbnB1dFR5cGVzLCBvdXRwdXRUeXBlcywgcykpO1xuICAgICAgICBkaW1lbnNpb25zLnNob3VsZC5lcWwoZXhwZWN0ZWREaW1zKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoYGNhbGN1bGF0ZXMgZGltZW5zaW9ucyBmb3Igc2lnbmVkIGlucHV0IG9mIHBzYnRgLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBzaWduZWRQc2J0ID0gY29uc3RydWN0UHNidChrZXlzLCBpbnB1dFR5cGVzLCBvdXRwdXRUeXBlcywgJ2Z1bGx5c2lnbmVkJyk7XG5cbiAgICAgIGlucHV0VHlwZXMuZm9yRWFjaCgoaW5wdXQ6IGFueSwgaTogbnVtYmVyKSA9PlxuICAgICAgICBEaW1lbnNpb25zLmZyb21Qc2J0SW5wdXQoc2lnbmVkUHNidC5kYXRhLmlucHV0c1tpXSkuc2hvdWxkLmVxbChcbiAgICAgICAgICBEaW1lbnNpb25zLnN1bShnZXRJbnB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZShpbnB1dCkpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZGVzY3JpYmUoYERpbWVuc2lvbnMgZm9yIHRyYW5zYWN0aW9uIGNvbWJpbmF0aW9uc2AsIGZ1bmN0aW9uICgpIHtcbiAgLy8gcDJ0ck11c2lnMiBpcyBzdXBwb3J0ZWQgb25seSB3aXRoIFBTQlRcbiAgY29uc3Qgc2NyaXB0VHlwZXMgPSB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZXMyT2YzLmZpbHRlcigodCkgPT4gdCAhPT0gJ3AydHJNdXNpZzInKTtcbiAgY29uc3QgcGFyYW1zID0ge1xuICAgIGlucHV0VHlwZXM6IFsuLi5zY3JpcHRUeXBlcywgVW5zcGVudFR5cGVQMnNoUDJwa10gYXMgSW5wdXRTY3JpcHRUeXBlW10sXG4gICAgbWF4TklucHV0czogMixcbiAgICBvdXRwdXRUeXBlczogWy4uLnNjcmlwdFR5cGVzLCAuLi5PYmplY3Qua2V5cyhVbnNwZW50VHlwZVB1YktleUhhc2gpXSBhcyBUZXN0VW5zcGVudFR5cGVbXSxcbiAgICBtYXhOT3V0cHV0czogMixcbiAgfTtcblxuICBydW5Db21iaW5hdGlvbnMocGFyYW1zLCAoaW5wdXRUeXBlQ29tYm86IElucHV0U2NyaXB0VHlwZVtdLCBvdXRwdXRUeXBlQ29tYm86IFRlc3RVbnNwZW50VHlwZVtdKSA9PiB7XG4gICAgY29uc3QgZXhwZWN0ZWRJbnB1dERpbXMgPSBEaW1lbnNpb25zLnN1bSguLi5pbnB1dFR5cGVDb21iby5tYXAoZ2V0SW5wdXREaW1lbnNpb25zRm9yVW5zcGVudFR5cGUpKTtcbiAgICBjb25zdCBleHBlY3RlZE91dHB1dERpbXMgPSBEaW1lbnNpb25zLnN1bSguLi5vdXRwdXRUeXBlQ29tYm8ubWFwKGdldE91dHB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSkpO1xuXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tVHgoXG4gICAgICBuZXcgVHhDb21ibyhrZXlzLCBpbnB1dFR5cGVDb21ibywgb3V0cHV0VHlwZUNvbWJvLCBleHBlY3RlZElucHV0RGltcy5wbHVzKGV4cGVjdGVkT3V0cHV0RGltcykpXG4gICAgKTtcblxuICAgIC8vIERvdWJsaW5nIHRoZSBpbnB1dHMgc2hvdWxkIHlpZWxkIHR3aWNlIHRoZSBpbnB1dCBkaW1zXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tVHgoXG4gICAgICBuZXcgVHhDb21ibyhcbiAgICAgICAga2V5cyxcbiAgICAgICAgWy4uLmlucHV0VHlwZUNvbWJvLCAuLi5pbnB1dFR5cGVDb21ib10sXG4gICAgICAgIG91dHB1dFR5cGVDb21ibyxcbiAgICAgICAgZXhwZWN0ZWRJbnB1dERpbXMucGx1cyhleHBlY3RlZElucHV0RGltcykucGx1cyhleHBlY3RlZE91dHB1dERpbXMpXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIFNhbWUgZm9yIG91dHB1dHNcbiAgICB0ZXN0RGltZW5zaW9uc0Zyb21UeChcbiAgICAgIG5ldyBUeENvbWJvKFxuICAgICAgICBrZXlzLFxuICAgICAgICBpbnB1dFR5cGVDb21ibyxcbiAgICAgICAgWy4uLm91dHB1dFR5cGVDb21ibywgLi4ub3V0cHV0VHlwZUNvbWJvXSxcbiAgICAgICAgZXhwZWN0ZWRJbnB1dERpbXMucGx1cyhleHBlY3RlZE91dHB1dERpbXMpLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKGBEaW1lbnNpb25zIGZvciBQU0JUIGNvbWJpbmF0aW9uc2AsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgcGFyYW1zID0ge1xuICAgIGlucHV0VHlwZXM6IFtcbiAgICAgIC4uLnV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMsXG4gICAgICB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZVAyc2hQMnBrLFxuICAgICAgJ3RhcHJvb3RLZXlQYXRoU3BlbmQnLFxuICAgIF0gYXMgSW5wdXRTY3JpcHRUeXBlW10sXG4gICAgbWF4TklucHV0czogMSxcbiAgICBvdXRwdXRUeXBlczogWy4uLk9iamVjdC5rZXlzKFVuc3BlbnRUeXBlU2NyaXB0Mm9mMyksIC4uLk9iamVjdC5rZXlzKFVuc3BlbnRUeXBlUHViS2V5SGFzaCldLFxuICAgIG1heE5PdXRwdXRzOiAxLFxuICB9O1xuXG4gIGl0KGBkb2VzIG5vdCB3b3JrIGZvciB1bmtub3duIHBzYnQgaW5wdXRgLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcHNidCA9IHV0eG9saWIuYml0Z28uY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrOiB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4gfSk7XG4gICAgcHNidC5hZGRJbnB1dCh7IGhhc2g6IEJ1ZmZlci5hbGxvYygzMiksIGluZGV4OiAwIH0pO1xuICAgIHNob3VsZC50aHJvd3MoKCkgPT4gRGltZW5zaW9ucy5mcm9tUHNidChwc2J0KSk7XG4gIH0pO1xuXG4gIHJ1bkNvbWJpbmF0aW9ucyhwYXJhbXMsIChpbnB1dFR5cGVDb21ibzogSW5wdXRTY3JpcHRUeXBlW10sIG91dHB1dFR5cGVDb21ibzogVGVzdFVuc3BlbnRUeXBlW10pID0+IHtcbiAgICBjb25zdCBleHBlY3RlZElucHV0RGltcyA9IERpbWVuc2lvbnMuc3VtKC4uLmlucHV0VHlwZUNvbWJvLm1hcChnZXRJbnB1dERpbWVuc2lvbnNGb3JVbnNwZW50VHlwZSkpO1xuICAgIGNvbnN0IGV4cGVjdGVkT3V0cHV0RGltcyA9IERpbWVuc2lvbnMuc3VtKC4uLm91dHB1dFR5cGVDb21iby5tYXAoZ2V0T3V0cHV0RGltZW5zaW9uc0ZvclVuc3BlbnRUeXBlKSk7XG5cbiAgICB0ZXN0RGltZW5zaW9uc0Zyb21Qc2J0KHJvb3RXYWxsZXRLZXlzLCBpbnB1dFR5cGVDb21ibywgb3V0cHV0VHlwZUNvbWJvLCBleHBlY3RlZElucHV0RGltcy5wbHVzKGV4cGVjdGVkT3V0cHV0RGltcykpO1xuXG4gICAgLy8gRG91YmxpbmcgdGhlIGlucHV0cyBzaG91bGQgeWllbGQgdHdpY2UgdGhlIGlucHV0IGRpbXNcbiAgICB0ZXN0RGltZW5zaW9uc0Zyb21Qc2J0KFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICBbLi4uaW5wdXRUeXBlQ29tYm8sIC4uLmlucHV0VHlwZUNvbWJvXSxcbiAgICAgIG91dHB1dFR5cGVDb21ibyxcbiAgICAgIGV4cGVjdGVkSW5wdXREaW1zLnBsdXMoZXhwZWN0ZWRJbnB1dERpbXMpLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKVxuICAgICk7XG5cbiAgICAvLyBTYW1lIGZvciBvdXRwdXRzXG4gICAgdGVzdERpbWVuc2lvbnNGcm9tUHNidChcbiAgICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgICAgaW5wdXRUeXBlQ29tYm8sXG4gICAgICBbLi4ub3V0cHV0VHlwZUNvbWJvLCAuLi5vdXRwdXRUeXBlQ29tYm9dLFxuICAgICAgZXhwZWN0ZWRJbnB1dERpbXMucGx1cyhleHBlY3RlZE91dHB1dERpbXMpLnBsdXMoZXhwZWN0ZWRPdXRwdXREaW1zKVxuICAgICk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import * as utxolib from '@bitgo-beta/utxo-lib';
3
2
  import { BIP32Interface } from '@bitgo-beta/utxo-lib';
4
3
  import 'lodash.combinations';
@@ -24,11 +23,11 @@ declare class TxCombo {
24
23
  inputTypes: string[];
25
24
  outputTypes: TestUnspentType[];
26
25
  expectedDims: Readonly<Dimensions>;
27
- signKeys?: utxolib.BIP32Interface[] | undefined;
26
+ signKeys?: BIP32Interface[] | undefined;
28
27
  inputValue: number;
29
28
  unspents: IUnspent[];
30
29
  inputTx: any;
31
- constructor(walletKeys: BIP32Interface[], inputTypes: string[], outputTypes: TestUnspentType[], expectedDims?: Readonly<Dimensions>, signKeys?: utxolib.BIP32Interface[] | undefined, inputValue?: number);
30
+ constructor(walletKeys: BIP32Interface[], inputTypes: string[], outputTypes: TestUnspentType[], expectedDims?: Readonly<Dimensions>, signKeys?: BIP32Interface[] | undefined, inputValue?: number);
32
31
  getBuilderWithUnsignedTx(): utxolib.bitgo.UtxoTransactionBuilder;
33
32
  getUnsignedTx(): utxolib.bitgo.UtxoTransaction;
34
33
  getSignedTx(): utxolib.Transaction;
@@ -1 +1 @@
1
- {"version":3,"file":"txGen.d.ts","sourceRoot":"","sources":["../../../test/signedTx/txGen.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAS,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,eAAe,EACf,eAAe,EAKhB,MAAM,cAAc,CAAC;AAEtB,UAAU,QAAQ;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;CACnD;AAoBD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,SAAU,cAAc,EAAE,eAAe,eAAe,KAAG,MAoBzF,CAAC;AAqCF,cAAM,OAAO;IAKF,UAAU,EAAE,cAAc,EAAE;IAC5B,UAAU,EAAE,MAAM,EAAE;IACpB,WAAW,EAAE,eAAe,EAAE;IAC9B,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC;IAClC,QAAQ,CAAC;IACT,UAAU,EAAE,MAAM;IATpB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC;gBAGX,UAAU,EAAE,cAAc,EAAE,EAC5B,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,EAAE,eAAe,EAAE,EAC9B,YAAY,GAAE,QAAQ,CAAC,UAAU,CAAmB,EACpD,QAAQ,CAAC,sCAAkB,EAC3B,UAAU,GAAE,MAAW;IAYzB,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC,sBAAsB;IAShE,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe;IAI9C,WAAW,IAAI,OAAO,CAAC,WAAW;CAO1C;AAED,QAAA,MAAM,eAAe;gBAOL,eAAe,EAAE;gBACjB,MAAM;iBACL,eAAe,EAAE;iBACjB,MAAM;0BAEE,eAAe,EAAE,eAAe,eAAe,EAAE,KAAK,IAAI,KAChF,IAgBF,CAAC;AAEF,cAAM,SAAS;IAGM,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAFpC,KAAK,SAAK;gBAEE,GAAG,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa;IAEhD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKvB,aAAa,IAAI,MAAM,EAAE,EAAE;IAI3B,iBAAiB,IAAI,MAAM,EAAE,EAAE;IAI/B,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAgBhC,QAAQ,IAAI,MAAM;CAI1B;AAOD;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,qBAAqB;gBAOX,MAAM;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;uBACpC,MAAM;iBACZ,eAAe,EAAE;wBACV,MAAM;yBAEN,MAAM,cAAc,MAAM,cAAc,eAAe,OAAO,GAAG,KAAK,IAAI,KAC/F,IAyCF,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"txGen.d.ts","sourceRoot":"","sources":["../../../test/signedTx/txGen.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAS,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,eAAe,EACf,eAAe,EAKhB,MAAM,cAAc,CAAC;AAEtB,UAAU,QAAQ;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;CACnD;AAoBD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,SAAU,cAAc,EAAE,eAAe,eAAe,KAAG,MAoBzF,CAAC;AAqCF,cAAM,OAAO;IAKF,UAAU,EAAE,cAAc,EAAE;IAC5B,UAAU,EAAE,MAAM,EAAE;IACpB,WAAW,EAAE,eAAe,EAAE;IAC9B,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC;IAClC,QAAQ,CAAC,EAAE,cAAc,EAAE;IAC3B,UAAU,EAAE,MAAM;IATpB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,OAAO,EAAE,GAAG,CAAC;gBAGX,UAAU,EAAE,cAAc,EAAE,EAC5B,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,EAAE,eAAe,EAAE,EAC9B,YAAY,GAAE,QAAQ,CAAC,UAAU,CAAmB,EACpD,QAAQ,CAAC,EAAE,cAAc,EAAE,YAAA,EAC3B,UAAU,GAAE,MAAW;IAYzB,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC,sBAAsB;IAShE,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe;IAI9C,WAAW,IAAI,OAAO,CAAC,WAAW;CAO1C;AAED,QAAA,MAAM,eAAe,0DAMhB;IACD,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,YACS,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,IAAI,KAChF,IAgBF,CAAC;AAEF,cAAM,SAAS;IAGM,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAFpC,KAAK,SAAK;gBAEE,GAAG,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa;IAEhD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKvB,aAAa,IAAI,MAAM,EAAE,EAAE;IAI3B,iBAAiB,IAAI,MAAM,EAAE,EAAE;IAI/B,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAgBhC,QAAQ,IAAI,MAAM;CAI1B;AAOD;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,qBAAqB,wEAMtB;IACD,UAAU,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;CAC5B,YACS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,KAC/F,IAyCF,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC"}
@@ -2,7 +2,11 @@
2
2
  /* eslint-disable @typescript-eslint/ban-ts-comment */
3
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
4
  if (k2 === undefined) k2 = k;
5
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
6
10
  }) : (function(o, m, k, k2) {
7
11
  if (k2 === undefined) k2 = k;
8
12
  o[k2] = m[k];
@@ -12,13 +16,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
12
16
  }) : function(o, v) {
13
17
  o["default"] = v;
14
18
  });
15
- var __importStar = (this && this.__importStar) || function (mod) {
16
- if (mod && mod.__esModule) return mod;
17
- var result = {};
18
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
19
- __setModuleDefault(result, mod);
20
- return result;
21
- };
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
22
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
23
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
38
  };
@@ -108,7 +122,7 @@ class TxCombo {
108
122
  getBuilderWithUnsignedTx() {
109
123
  const txBuilder = utxolib.bitgo.createTransactionBuilderForNetwork(utxolib.networks.bitcoin);
110
124
  this.inputTx.outs.forEach(({}, i) => txBuilder.addInput(this.inputTx, i));
111
- this.outputTypes.forEach((unspentType) => txBuilder.addOutput(exports.createScriptPubKey(this.walletKeys, unspentType), this.inputValue));
125
+ this.outputTypes.forEach((unspentType) => txBuilder.addOutput((0, exports.createScriptPubKey)(this.walletKeys, unspentType), this.inputValue));
112
126
  return txBuilder;
113
127
  }
114
128
  getUnsignedTx() {
@@ -195,7 +209,7 @@ const runSignedTransactions = ({ inputTypes, nInputKeyTriplets, outputTypes, nOu
195
209
  return { inputKeys, unspents, inputTx };
196
210
  });
197
211
  outputTypes.forEach((outputType) => {
198
- const outputs = outputKeyTriplets.map((outputKeys) => exports.createScriptPubKey(outputKeys, outputType));
212
+ const outputs = outputKeyTriplets.map((outputKeys) => (0, exports.createScriptPubKey)(outputKeys, outputType));
199
213
  const txs = {
200
214
  forEach(cb) {
201
215
  inputTxs.forEach(({ inputKeys, unspents, inputTx }) => {
@@ -216,4 +230,4 @@ const runSignedTransactions = ({ inputTypes, nInputKeyTriplets, outputTypes, nOu
216
230
  });
217
231
  };
218
232
  exports.runSignedTransactions = runSignedTransactions;
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhHZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3NpZ25lZFR4L3R4R2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzREFBc0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdEQsOERBQWdEO0FBQ2hELG1EQUE2RDtBQUM3RCxvREFBdUI7QUFDdkIsK0JBQTZCO0FBQzdCLG1DQUF1QztBQUN2Qyw0Q0FPc0I7QUFVdEIsU0FBUyxhQUFhLENBQUMsT0FBaUIsRUFBRSxTQUFpQixFQUFFLEtBQWE7SUFDeEUsSUFBSSxlQUFlLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsU0FBUyxLQUFLLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsRixJQUFJLFVBQVUsS0FBSywrQkFBbUIsRUFBRTtRQUN0QyxlQUFlLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdEY7U0FBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ25FLGVBQWUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7S0FDM0Y7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLFVBQVUsRUFBRSxDQUFDLENBQUM7S0FDdkQ7SUFFRCxPQUFPO1FBQ0wsR0FBRyxlQUFlO1FBQ2xCLEtBQUs7UUFDTCxTQUFTLEVBQUUsVUFBVTtLQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNJLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFzQixFQUFFLFdBQTRCLEVBQVUsRUFBRTtJQUNqRyxNQUFNLE9BQU8sR0FBRyxJQUFJ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LFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDNUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7NEJBQy9DLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0NBQzlCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzs0QkFDOUMsQ0FBQyxDQUFDLENBQUM7NEJBRUgsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO3dCQUN4QixDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2FBQ0YsQ0FBQztZQUVGLFFBQVEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRTRDLHNEQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudCAqL1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGJpcDMyLCBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgJ2xvZGFzaC5jb21iaW5hdGlvbnMnO1xuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQge1xuICBJbnB1dFNjcmlwdFR5cGUsXG4gIFRlc3RVbnNwZW50VHlwZSxcbiAgVW5zcGVudFR5cGVPcFJldHVybixcbiAgVW5zcGVudFR5cGVQMnNoUDJwayxcbiAgVW5zcGVudFR5cGVQdWJLZXlIYXNoLFxuICBVbnNwZW50VHlwZVNjcmlwdDJvZjMsXG59IGZyb20gJy4uL3Rlc3R1dGlscyc7XG5cbmludGVyZmFjZSBJVW5zcGVudCB7XG4gIHNjcmlwdFB1YktleTogQnVmZmVyO1xuICByZWRlZW1TY3JpcHQ/OiBCdWZmZXI7XG4gIHdpdG5lc3NTY3JpcHQ/OiBCdWZmZXI7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGlucHV0VHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVVuc3BlbnQocHVia2V5czogQnVmZmVyW10sIGlucHV0VHlwZTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKTogSVVuc3BlbnQge1xuICBsZXQgc3BlbmRhYmxlU2NyaXB0O1xuICBjb25zdCBzY3JpcHRUeXBlID0gaW5wdXRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcgPyAncDJ0ck11c2lnMicgOiBpbnB1dFR5cGU7XG4gIGlmIChzY3JpcHRUeXBlID09PSBVbnNwZW50VHlwZVAyc2hQMnBrKSB7XG4gICAgc3BlbmRhYmxlU2NyaXB0ID0gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrKHB1YmtleXNbMF0pO1xuICB9IGVsc2UgaWYgKHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5pc1NjcmlwdFR5cGUyT2YzKHNjcmlwdFR5cGUpKSB7XG4gICAgc3BlbmRhYmxlU2NyaXB0ID0gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdDJvZjMocHVia2V5cywgc2NyaXB0VHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIGlucHV0VHlwZSAke3NjcmlwdFR5cGV9YCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnNwZW5kYWJsZVNjcmlwdCxcbiAgICB2YWx1ZSxcbiAgICBpbnB1dFR5cGU6IHNjcmlwdFR5cGUsXG4gIH07XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBrZXlzIC0gUHVia2V5cyB0byB1c2UgZm9yIGdlbmVyYXRpbmcgdGhlIGFkZHJlc3MuXG4gKiAgICAgICAgICAgICAgIElmIHVuc3BlbnRUeXBlIGlzIG9uZSBvZiBVbnNwZW50VHlwZVB1YktleUhhc2ggaXMgdXNlZCwgdGhlIGZpcnN0IGtleSB3aWxsIGJlIHVzZWQuXG4gKiBAcGFyYW0gdW5zcGVudFR5cGUge1N0cmluZ30gLSBvbmUgb2YgVW5zcGVudFR5cGVTY3JpcHQyb2YzIG9yIFVuc3BlbnRUeXBlUHViS2V5SGFzaFxuICogQHJldHVybiB7U3RyaW5nfSBhZGRyZXNzXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVTY3JpcHRQdWJLZXkgPSAoa2V5czogQklQMzJJbnRlcmZhY2VbXSwgdW5zcGVudFR5cGU6IFRlc3RVbnNwZW50VHlwZSk6IEJ1ZmZlciA9PiB7XG4gIGNvbnN0IHB1YmtleXMgPSBrZXlzLm1hcCgoa2V5KSA9PiBrZXkucHVibGljS2V5KTtcbiAgaWYgKHR5cGVvZiB1bnNwZW50VHlwZSA9PT0gJ3N0cmluZycgJiYgdW5zcGVudFR5cGUgaW4gVW5zcGVudFR5cGVTY3JpcHQyb2YzKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVVuc3BlbnQocHVia2V5cywgdW5zcGVudFR5cGUsIDApLnNjcmlwdFB1YktleTtcbiAgfVxuXG4gIGNvbnN0IHBrSGFzaCA9IHV0eG9saWIuY3J5cHRvLmhhc2gxNjAocHVia2V5c1swXSk7XG4gIHN3aXRjaCAodW5zcGVudFR5cGUpIHtcbiAgICBjYXNlIFVuc3BlbnRUeXBlUHViS2V5SGFzaC5wMnBraDpcbiAgICAgIHJldHVybiB1dHhvbGliLnBheW1lbnRzLnAycGtoKHsgaGFzaDogcGtIYXNoIH0pLm91dHB1dCE7XG4gICAgY2FzZSBVbnNwZW50VHlwZVB1YktleUhhc2gucDJ3cGtoOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJ3cGtoKHsgaGFzaDogcGtIYXNoIH0pLm91dHB1dCE7XG4gIH1cblxuICBpZiAodW5zcGVudFR5cGUgaW5zdGFuY2VvZiBVbnNwZW50VHlwZU9wUmV0dXJuKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IEJ1ZmZlci5hbGxvYyh1bnNwZW50VHlwZS5zaXplKS5maWxsKHB1YmtleXNbMF0pO1xuICAgIHJldHVybiB1dHhvbGliLnNjcmlwdC5jb21waWxlKFsweDZhLCBwYXlsb2FkXSk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIG91dHB1dCB0eXBlICR7dW5zcGVudFR5cGV9YCk7XG59O1xuXG5jb25zdCBjcmVhdGVJbnB1dFR4ID0gKHVuc3BlbnRzOiBhbnlbXSwgaW5wdXRWYWx1ZTogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHR4SW5wdXRCdWlsZGVyID0gbmV3IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uQnVpbGRlcih1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pO1xuICB0eElucHV0QnVpbGRlci5hZGRJbnB1dChBcnJheSgzMikuZmlsbCgnMDEnKS5qb2luKCcnKSwgMCk7XG4gIHVuc3BlbnRzLmZvckVhY2goKHsgc2NyaXB0UHViS2V5IH0pID0+IHR4SW5wdXRCdWlsZGVyLmFkZE91dHB1dChzY3JpcHRQdWJLZXksIGlucHV0VmFsdWUpKTtcbiAgcmV0dXJuIHR4SW5wdXRCdWlsZGVyLmJ1aWxkSW5jb21wbGV0ZSgpO1xufTtcblxuZnVuY3Rpb24gc2lnbklucHV0KFxuICB0eEJ1aWxkZXI6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uQnVpbGRlcixcbiAgaW5kZXg6IG51bWJlcixcbiAgd2FsbGV0S2V5czogQklQMzJJbnRlcmZhY2VbXSxcbiAgdW5zcGVudDogSVVuc3BlbnQsXG4gIHNpZ25LZXlzOiBCSVAzMkludGVyZmFjZVtdID0gdW5zcGVudC5pbnB1dFR5cGUgPT09ICdwMnNoUDJwaycgPyBbd2FsbGV0S2V5c1swXV0gOiBbd2FsbGV0S2V5c1swXSwgd2FsbGV0S2V5c1syXV1cbikge1xuICBzaWduS2V5cy5mb3JFYWNoKChrZXlQYWlyKSA9PiB7XG4gICAgaWYgKHVuc3BlbnQuaW5wdXRUeXBlID09PSAncDJzaFAycGsnKSB7XG4gICAgICB1dHhvbGliLmJpdGdvLnNpZ25JbnB1dFAyc2hQMnBrKHR4QnVpbGRlciwgaW5kZXgsIGtleVBhaXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2lnbktleXMubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBzaWduS2V5cyBsZW5ndGhgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvc2lnbmVyID0ga2V5UGFpciA9PT0gc2lnbktleXNbMF0gPyBzaWduS2V5c1sxXSA6IHNpZ25LZXlzWzBdO1xuICAgICAgdXR4b2xpYi5iaXRnby5zaWduSW5wdXQyT2YzKFxuICAgICAgICB0eEJ1aWxkZXIsXG4gICAgICAgIGluZGV4LFxuICAgICAgICB1bnNwZW50LmlucHV0VHlwZSxcbiAgICAgICAgd2FsbGV0S2V5cy5tYXAoKGspID0+IGsucHVibGljS2V5KSBhcyB1dHhvbGliLmJpdGdvLlRyaXBsZTxCdWZmZXI+LFxuICAgICAgICBrZXlQYWlyLFxuICAgICAgICBjb3NpZ25lci5wdWJsaWNLZXksXG4gICAgICAgIHVuc3BlbnQudmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9KTtcbn1cblxuY2xhc3MgVHhDb21ibyB7XG4gIHB1YmxpYyB1bnNwZW50czogSVVuc3BlbnRbXTtcbiAgcHVibGljIGlucHV0VHg6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgd2FsbGV0S2V5czogQklQMzJJbnRlcmZhY2VbXSxcbiAgICBwdWJsaWMgaW5wdXRUeXBlczogc3RyaW5nW10sXG4gICAgcHVibGljIG91dHB1dFR5cGVzOiBUZXN0VW5zcGVudFR5cGVbXSxcbiAgICBwdWJsaWMgZXhwZWN0ZWREaW1zOiBSZWFkb25seTxEaW1lbnNpb25zPiA9IERpbWVuc2lvbnMuWkVSTyxcbiAgICBwdWJsaWMgc2lnbktleXM/OiBCSVAzMkludGVyZmFjZVtdLFxuICAgIHB1YmxpYyBpbnB1dFZhbHVlOiBudW1iZXIgPSAxMFxuICApIHtcbiAgICB0aGlzLnVuc3BlbnRzID0gaW5wdXRUeXBlcy5tYXAoKGlucHV0VHlwZSkgPT5cbiAgICAgIGNyZWF0ZVVuc3BlbnQoXG4gICAgICAgIHdhbGxldEtleXMubWFwKChrZXkpID0+IGtleS5wdWJsaWNLZXkpLFxuICAgICAgICBpbnB1dFR5cGUsXG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5pbnB1dFR4ID0gY3JlYXRlSW5wdXRUeCh0aGlzLnVuc3BlbnRzLCBpbnB1dFZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCdWlsZGVyV2l0aFVuc2lnbmVkVHgoKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZvck5ldHdvcmsodXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgICB0aGlzLmlucHV0VHgub3V0cy5mb3JFYWNoKCh7fSwgaTogbnVtYmVyKSA9PiB0eEJ1aWxkZXIuYWRkSW5wdXQodGhpcy5pbnB1dFR4LCBpKSk7XG4gICAgdGhpcy5vdXRwdXRUeXBlcy5mb3JFYWNoKCh1bnNwZW50VHlwZSkgPT5cbiAgICAgIHR4QnVpbGRlci5hZGRPdXRwdXQoY3JlYXRlU2NyaXB0UHViS2V5KHRoaXMud2FsbGV0S2V5cywgdW5zcGVudFR5cGUpLCB0aGlzLmlucHV0VmFsdWUpXG4gICAgKTtcbiAgICByZXR1cm4gdHhCdWlsZGVyO1xuICB9XG5cbiAgcHVibGljIGdldFVuc2lnbmVkVHgoKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLmdldEJ1aWxkZXJXaXRoVW5zaWduZWRUeCgpLmJ1aWxkSW5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFNpZ25lZFR4KCk6IHV0eG9saWIuVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IHRoaXMuZ2V0QnVpbGRlcldpdGhVbnNpZ25lZFR4KCk7XG4gICAgdGhpcy51bnNwZW50cy5mb3JFYWNoKCh1bnNwZW50LCBpKSA9PiB7XG4gICAgICBzaWduSW5wdXQodHhCdWlsZGVyLCBpLCB0aGlzLndhbGxldEtleXMsIHVuc3BlbnQsIHRoaXMuc2lnbktleXMpO1xuICAgIH0pO1xuICAgIHJldHVybiB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgfVxufVxuXG5jb25zdCBydW5Db21iaW5hdGlvbnMgPSAoXG4gIHtcbiAgICBpbnB1dFR5cGVzLFxuICAgIG1heE5JbnB1dHMsXG4gICAgb3V0cHV0VHlwZXMsXG4gICAgbWF4Tk91dHB1dHMsXG4gIH06IHtcbiAgICBpbnB1dFR5cGVzOiBJbnB1dFNjcmlwdFR5cGVbXTtcbiAgICBtYXhOSW5wdXRzOiBudW1iZXI7XG4gICAgb3V0cHV0VHlwZXM6IFRlc3RVbnNwZW50VHlwZVtdO1xuICAgIG1heE5PdXRwdXRzOiBudW1iZXI7XG4gIH0sXG4gIGNhbGxiYWNrOiAoaW5wdXRDb21ibzogSW5wdXRTY3JpcHRUeXBlW10sIG91dHB1dENvbWJvOiBUZXN0VW5zcGVudFR5cGVbXSkgPT4gdm9pZFxuKTogdm9pZCA9PiB7XG4gIC8vIENyZWF0ZSBjb21iaW5hdGlvbnMgb2YgZGlmZmVyZW50IGlucHV0IGFuZCBvdXRwdXQgdHlwZXMuIExlbmd0aCBiZXR3ZWVuIDEgYW5kIDMuXG4gIGNvbnN0IGlucHV0Q29tYmluYXRpb25zID0gXy5mbGF0dGVuKFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBbLi4uQXJyYXkobWF4TklucHV0cyldLm1hcCgoX18sIGkpID0+IF8uY29tYmluYXRpb25zKGlucHV0VHlwZXMsIGkgKyAxKSlcbiAgKTtcbiAgY29uc3Qgb3V0cHV0Q29tYmluYXRpb25zID0gXy5mbGF0dGVuKFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBbLi4uQXJyYXkobWF4Tk91dHB1dHMpXS5tYXAoKF9fLCBpKSA9PiBfLmNvbWJpbmF0aW9ucyhvdXRwdXRUeXBlcywgaSArIDEpKVxuICApO1xuXG4gIGlucHV0Q29tYmluYXRpb25zLmZvckVhY2goKGlucHV0VHlwZUNvbWJvKSA9PlxuICAgIG91dHB1dENvbWJpbmF0aW9ucy5mb3JFYWNoKChvdXRwdXRUeXBlQ29tYm8pID0+IHtcbiAgICAgIGNhbGxiYWNrKGlucHV0VHlwZUNvbWJvLCBvdXRwdXRUeXBlQ29tYm8pO1xuICAgIH0pXG4gICk7XG59O1xuXG5jbGFzcyBIaXN0b2dyYW0ge1xuICBwdWJsaWMgdG90YWwgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtYXA6IE1hcDxudW1iZXIsIG51bWJlcj4gPSBuZXcgTWFwKCkpIHt9XG5cbiAgcHVibGljIGFkZChzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1hcC5zZXQoc2l6ZSwgKHRoaXMubWFwLmdldChzaXplKSB8fCAwKSArIDEpO1xuICAgIHRoaXMudG90YWwrKztcbiAgfVxuXG4gIHB1YmxpYyBhc1NvcnRlZEFycmF5KCk6IG51bWJlcltdW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5tYXAuZW50cmllcygpXS5zb3J0KChbYV0sIFtiXSkgPT4gYSAtIGIpO1xuICB9XG5cbiAgcHVibGljIGFzRnVsbFNvcnRlZEFycmF5KCk6IG51bWJlcltdW10ge1xuICAgIHJldHVybiBfLnJhbmdlKHRoaXMuZ2V0UGVyY2VudGlsZSgwKSwgdGhpcy5nZXRQZXJjZW50aWxlKDEpKS5tYXAoKHYpID0+IFt2LCB0aGlzLm1hcC5nZXQodikgfHwgMF0pO1xuICB9XG5cbiAgcHVibGljIGdldFBlcmNlbnRpbGUocDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoMCA+IHAgfHwgcCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgcCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMWApO1xuICAgIH1cblxuICAgIGxldCBzdW0gPSAwO1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIHRoaXMuYXNTb3J0ZWRBcnJheSgpKSB7XG4gICAgICBzdW0gKz0gdjtcbiAgICAgIGlmIChzdW0gLyB0aGlzLnRvdGFsID49IHApIHtcbiAgICAgICAgcmV0dXJuIGs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgZmluZCBwZXJjZW50aWxlJyk7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXlzID0gWy4uLnRoaXMubWFwLmtleXMoKV0uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIHJldHVybiBgWyR7a2V5cy5tYXAoKGspID0+IGBbJHtrfSwgJHt0aGlzLm1hcC5nZXQoayl9XWApLmpvaW4oJyAnKX1dYDtcbiAgfVxufVxuXG5jb25zdCBnZXRLZXlUcmlwbGV0cyA9IChwcmVmaXg6IHN0cmluZywgY291bnQ6IG51bWJlcikgPT5cbiAgWy4uLkFycmF5KGNvdW50KV0ubWFwKCh2LCBpKSA9PlxuICAgIFsxLCAyLCAzXS5tYXAoKGopID0+IGJpcDMyLmZyb21TZWVkKEJ1ZmZlci5hbGxvYygxNiwgYCR7cHJlZml4fS8ke2l9LyR7an1gKSwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKSlcbiAgKTtcblxuLyoqXG4gKlxuICogQ2FsbHMgYGNhbGxiYWNrYCB3aXRoIGEgdmFyaWV0eSBvZiBzaWduZWQgdHhzLCBiYXNlZCBvbiBpbnB1dCBwYXJhbWV0ZXJzXG4gKiBDYWxsYmFjayBhcmd1bWVudHMgYXJlXG4gKiAgIGlucHV0VHlwZSwgaW5wdXRDb3VudCwgb3V0cHV0VHlwZSwgdHhzXG4gKiAgd2hlcmUgYHR4c2AgaW1wbGVtZW50cyBgZm9yRWFjaCgpYFxuICpcbiAqIEBwYXJhbSBpbnB1dFR5cGVzIC0gaW5wdXQgdHlwZXMgdG8gdGVzdFxuICogQHBhcmFtIG5JbnB1dEtleVRyaXBsZXRzIC0gbnVtYmVyIG9mIGRpZmZlcmVudCBpbnB1dCBrZXkgdHJpcGxlcyB0byBjeWNsZSB0aHJvdWdoXG4gKiBAcGFyYW0gb3V0cHV0VHlwZXMgLSBvdXRwdXQgdHlwZXMgdG8gdGVzdFxuICogQHBhcmFtIG5PdXRwdXRLZXlUcmlwbGV0cyAtIG51bWJlciBvZiBkaWZmZXJlbnQgb3V0cHV0IGtleSB0cmlwbGV0cyB0byBjeWNsZSB0aHJvdWdoXG4gKiBAcGFyYW0gY2FsbGJhY2tcbiAqL1xuY29uc3QgcnVuU2lnbmVkVHJhbnNhY3Rpb25zID0gKFxuICB7XG4gICAgaW5wdXRUeXBlcyxcbiAgICBuSW5wdXRLZXlUcmlwbGV0cyxcbiAgICBvdXRwdXRUeXBlcyxcbiAgICBuT3V0cHV0S2V5VHJpcGxldHMsXG4gIH06IHtcbiAgICBpbnB1dFR5cGVzOiBBcnJheTx7IGlucHV0VHlwZTogc3RyaW5nOyBjb3VudDogbnVtYmVyIH0+O1xuICAgIG5JbnB1dEtleVRyaXBsZXRzOiBudW1iZXI7XG4gICAgb3V0cHV0VHlwZXM6IFRlc3RVbnNwZW50VHlwZVtdO1xuICAgIG5PdXRwdXRLZXlUcmlwbGV0czogbnVtYmVyO1xuICB9LFxuICBjYWxsYmFjazogKGlucHV0VHlwZTogc3RyaW5nLCBpbnB1dENvdW50OiBudW1iZXIsIG91dHB1dFR5cGU6IFRlc3RVbnNwZW50VHlwZSwgdHhzOiBhbnkpID0+IHZvaWRcbik6IHZvaWQgPT4ge1xuICBjb25zdCBpbnB1dEtleVRyaXBsZXRzID0gZ2V0S2V5VHJpcGxldHMoJ3Rlc3QvaW5wdXQvJywgbklucHV0S2V5VHJpcGxldHMpO1xuICBjb25zdCBvdXRwdXRLZXlUcmlwbGV0cyA9IGdldEtleVRyaXBsZXRzKCd0ZXN0L291dHB1dC8nLCBuT3V0cHV0S2V5VHJpcGxldHMpO1xuICBjb25zdCBvdXRwdXRWYWx1ZSA9IDFlODtcblxuICBpbnB1dFR5cGVzLmZvckVhY2goKHsgaW5wdXRUeXBlLCBjb3VudDogaW5wdXRDb3VudCB9KSA9PiB7XG4gICAgY29uc3QgaW5wdXRUeHMgPSBpbnB1dEtleVRyaXBsZXRzLm1hcCgoaW5wdXRLZXlzKSA9PiB7XG4gICAgICBjb25zdCB1bnNwZW50cyA9IFsuLi5BcnJheShpbnB1dENvdW50KV0ubWFwKCgpID0+XG4gICAgICAgIGNyZWF0ZVVuc3BlbnQoXG4gICAgICAgICAgaW5wdXRLZXlzLm1hcCgoa2V5KSA9PiBrZXkucHVibGljS2V5KSxcbiAgICAgICAgICBpbnB1dFR5cGUsXG4gICAgICAgICAgb3V0cHV0VmFsdWVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGlucHV0VHggPSBjcmVhdGVJbnB1dFR4KHVuc3BlbnRzLCBvdXRwdXRWYWx1ZSk7XG4gICAgICByZXR1cm4geyBpbnB1dEtleXMsIHVuc3BlbnRzLCBpbnB1dFR4IH07XG4gICAgfSk7XG5cbiAgICBvdXRwdXRUeXBlcy5mb3JFYWNoKChvdXRwdXRUeXBlKSA9PiB7XG4gICAgICBjb25zdCBvdXRwdXRzID0gb3V0cHV0S2V5VHJpcGxldHMubWFwKChvdXRwdXRLZXlzKSA9PiBjcmVhdGVTY3JpcHRQdWJLZXkob3V0cHV0S2V5cywgb3V0cHV0VHlwZSkpO1xuXG4gICAgICBjb25zdCB0eHMgPSB7XG4gICAgICAgIGZvckVhY2goY2I6ICh0eDogdXR4b2xpYi5UcmFuc2FjdGlvbikgPT4gdm9pZCkge1xuICAgICAgICAgIGlucHV0VHhzLmZvckVhY2goKHsgaW5wdXRLZXlzLCB1bnNwZW50cywgaW5wdXRUeCB9KSA9PiB7XG4gICAgICAgICAgICBvdXRwdXRzLmZvckVhY2goKHNjcmlwdFB1YktleSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB0eEJ1aWxkZXIgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZvck5ldHdvcmsodXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgICAgICAgICAgICAgaW5wdXRUeC5vdXRzLmZvckVhY2goKHY6IGFueSwgaTogbnVtYmVyKSA9PiB0eEJ1aWxkZXIuYWRkSW5wdXQoaW5wdXRUeCwgaSkpO1xuICAgICAgICAgICAgICB0eEJ1aWxkZXIuYWRkT3V0cHV0KHNjcmlwdFB1YktleSwgb3V0cHV0VmFsdWUpO1xuICAgICAgICAgICAgICB1bnNwZW50cy5mb3JFYWNoKCh1bnNwZW50LCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgc2lnbklucHV0KHR4QnVpbGRlciwgaSwgaW5wdXRLZXlzLCB1bnNwZW50KTtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgY2IodHhCdWlsZGVyLmJ1aWxkKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjYWxsYmFjayhpbnB1dFR5cGUsIGlucHV0Q291bnQsIG91dHB1dFR5cGUsIHR4cyk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IHsgVHhDb21ibywgSGlzdG9ncmFtLCBydW5Db21iaW5hdGlvbnMsIHJ1blNpZ25lZFRyYW5zYWN0aW9ucyB9O1xuIl19
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhHZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3NpZ25lZFR4L3R4R2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzREFBc0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV0RCw4REFBZ0Q7QUFDaEQsbURBQTZEO0FBQzdELG9EQUF1QjtBQUN2QiwrQkFBNkI7QUFDN0IsbUNBQXVDO0FBQ3ZDLDRDQU9zQjtBQVV0QixTQUFTLGFBQWEsQ0FBQyxPQUFpQixFQUFFLFNBQWlCLEVBQUUsS0FBYTtJQUN4RSxJQUFJLGVBQWUsQ0FBQztJQUNwQixNQUFNLFVBQVUsR0FBRyxTQUFTLEtBQUsscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xGLElBQUksVUFBVSxLQUFLLCtCQUFtQixFQUFFLENBQUM7UUFDdkMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDcEUsZUFBZSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU87UUFDTCxHQUFHLGVBQWU7UUFDbEIsS0FBSztRQUNMLFNBQVMsRUFBRSxVQUFVO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQXNCLEVB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LENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7NEJBQzdGLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDNUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7NEJBQy9DLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0NBQzlCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzs0QkFDOUMsQ0FBQyxDQUFDLENBQUM7NEJBRUgsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO3dCQUN4QixDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2FBQ0YsQ0FBQztZQUVGLFFBQVEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRTRDLHNEQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudCAqL1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGJpcDMyLCBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgJ2xvZGFzaC5jb21iaW5hdGlvbnMnO1xuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQge1xuICBJbnB1dFNjcmlwdFR5cGUsXG4gIFRlc3RVbnNwZW50VHlwZSxcbiAgVW5zcGVudFR5cGVPcFJldHVybixcbiAgVW5zcGVudFR5cGVQMnNoUDJwayxcbiAgVW5zcGVudFR5cGVQdWJLZXlIYXNoLFxuICBVbnNwZW50VHlwZVNjcmlwdDJvZjMsXG59IGZyb20gJy4uL3Rlc3R1dGlscyc7XG5cbmludGVyZmFjZSBJVW5zcGVudCB7XG4gIHNjcmlwdFB1YktleTogQnVmZmVyO1xuICByZWRlZW1TY3JpcHQ/OiBCdWZmZXI7XG4gIHdpdG5lc3NTY3JpcHQ/OiBCdWZmZXI7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGlucHV0VHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVVuc3BlbnQocHVia2V5czogQnVmZmVyW10sIGlucHV0VHlwZTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKTogSVVuc3BlbnQge1xuICBsZXQgc3BlbmRhYmxlU2NyaXB0O1xuICBjb25zdCBzY3JpcHRUeXBlID0gaW5wdXRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcgPyAncDJ0ck11c2lnMicgOiBpbnB1dFR5cGU7XG4gIGlmIChzY3JpcHRUeXBlID09PSBVbnNwZW50VHlwZVAyc2hQMnBrKSB7XG4gICAgc3BlbmRhYmxlU2NyaXB0ID0gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrKHB1YmtleXNbMF0pO1xuICB9IGVsc2UgaWYgKHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5pc1NjcmlwdFR5cGUyT2YzKHNjcmlwdFR5cGUpKSB7XG4gICAgc3BlbmRhYmxlU2NyaXB0ID0gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdDJvZjMocHVia2V5cywgc2NyaXB0VHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIGlucHV0VHlwZSAke3NjcmlwdFR5cGV9YCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnNwZW5kYWJsZVNjcmlwdCxcbiAgICB2YWx1ZSxcbiAgICBpbnB1dFR5cGU6IHNjcmlwdFR5cGUsXG4gIH07XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBrZXlzIC0gUHVia2V5cyB0byB1c2UgZm9yIGdlbmVyYXRpbmcgdGhlIGFkZHJlc3MuXG4gKiAgICAgICAgICAgICAgIElmIHVuc3BlbnRUeXBlIGlzIG9uZSBvZiBVbnNwZW50VHlwZVB1YktleUhhc2ggaXMgdXNlZCwgdGhlIGZpcnN0IGtleSB3aWxsIGJlIHVzZWQuXG4gKiBAcGFyYW0gdW5zcGVudFR5cGUge1N0cmluZ30gLSBvbmUgb2YgVW5zcGVudFR5cGVTY3JpcHQyb2YzIG9yIFVuc3BlbnRUeXBlUHViS2V5SGFzaFxuICogQHJldHVybiB7U3RyaW5nfSBhZGRyZXNzXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVTY3JpcHRQdWJLZXkgPSAoa2V5czogQklQMzJJbnRlcmZhY2VbXSwgdW5zcGVudFR5cGU6IFRlc3RVbnNwZW50VHlwZSk6IEJ1ZmZlciA9PiB7XG4gIGNvbnN0IHB1YmtleXMgPSBrZXlzLm1hcCgoa2V5KSA9PiBrZXkucHVibGljS2V5KTtcbiAgaWYgKHR5cGVvZiB1bnNwZW50VHlwZSA9PT0gJ3N0cmluZycgJiYgdW5zcGVudFR5cGUgaW4gVW5zcGVudFR5cGVTY3JpcHQyb2YzKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVVuc3BlbnQocHVia2V5cywgdW5zcGVudFR5cGUsIDApLnNjcmlwdFB1YktleTtcbiAgfVxuXG4gIGNvbnN0IHBrSGFzaCA9IHV0eG9saWIuY3J5cHRvLmhhc2gxNjAocHVia2V5c1swXSk7XG4gIHN3aXRjaCAodW5zcGVudFR5cGUpIHtcbiAgICBjYXNlIFVuc3BlbnRUeXBlUHViS2V5SGFzaC5wMnBraDpcbiAgICAgIHJldHVybiB1dHhvbGliLnBheW1lbnRzLnAycGtoKHsgaGFzaDogcGtIYXNoIH0pLm91dHB1dCE7XG4gICAgY2FzZSBVbnNwZW50VHlwZVB1YktleUhhc2gucDJ3cGtoOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJ3cGtoKHsgaGFzaDogcGtIYXNoIH0pLm91dHB1dCE7XG4gIH1cblxuICBpZiAodW5zcGVudFR5cGUgaW5zdGFuY2VvZiBVbnNwZW50VHlwZU9wUmV0dXJuKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IEJ1ZmZlci5hbGxvYyh1bnNwZW50VHlwZS5zaXplKS5maWxsKHB1YmtleXNbMF0pO1xuICAgIHJldHVybiB1dHhvbGliLnNjcmlwdC5jb21waWxlKFsweDZhLCBwYXlsb2FkXSk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIG91dHB1dCB0eXBlICR7dW5zcGVudFR5cGV9YCk7XG59O1xuXG5jb25zdCBjcmVhdGVJbnB1dFR4ID0gKHVuc3BlbnRzOiBhbnlbXSwgaW5wdXRWYWx1ZTogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHR4SW5wdXRCdWlsZGVyID0gbmV3IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uQnVpbGRlcih1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pO1xuICB0eElucHV0QnVpbGRlci5hZGRJbnB1dChBcnJheSgzMikuZmlsbCgnMDEnKS5qb2luKCcnKSwgMCk7XG4gIHVuc3BlbnRzLmZvckVhY2goKHsgc2NyaXB0UHViS2V5IH0pID0+IHR4SW5wdXRCdWlsZGVyLmFkZE91dHB1dChzY3JpcHRQdWJLZXksIGlucHV0VmFsdWUpKTtcbiAgcmV0dXJuIHR4SW5wdXRCdWlsZGVyLmJ1aWxkSW5jb21wbGV0ZSgpO1xufTtcblxuZnVuY3Rpb24gc2lnbklucHV0KFxuICB0eEJ1aWxkZXI6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uQnVpbGRlcixcbiAgaW5kZXg6IG51bWJlcixcbiAgd2FsbGV0S2V5czogQklQMzJJbnRlcmZhY2VbXSxcbiAgdW5zcGVudDogSVVuc3BlbnQsXG4gIHNpZ25LZXlzOiBCSVAzMkludGVyZmFjZVtdID0gdW5zcGVudC5pbnB1dFR5cGUgPT09ICdwMnNoUDJwaycgPyBbd2FsbGV0S2V5c1swXV0gOiBbd2FsbGV0S2V5c1swXSwgd2FsbGV0S2V5c1syXV1cbikge1xuICBzaWduS2V5cy5mb3JFYWNoKChrZXlQYWlyKSA9PiB7XG4gICAgaWYgKHVuc3BlbnQuaW5wdXRUeXBlID09PSAncDJzaFAycGsnKSB7XG4gICAgICB1dHhvbGliLmJpdGdvLnNpZ25JbnB1dFAyc2hQMnBrKHR4QnVpbGRlciwgaW5kZXgsIGtleVBhaXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2lnbktleXMubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBzaWduS2V5cyBsZW5ndGhgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvc2lnbmVyID0ga2V5UGFpciA9PT0gc2lnbktleXNbMF0gPyBzaWduS2V5c1sxXSA6IHNpZ25LZXlzWzBdO1xuICAgICAgdXR4b2xpYi5iaXRnby5zaWduSW5wdXQyT2YzKFxuICAgICAgICB0eEJ1aWxkZXIsXG4gICAgICAgIGluZGV4LFxuICAgICAgICB1bnNwZW50LmlucHV0VHlwZSxcbiAgICAgICAgd2FsbGV0S2V5cy5tYXAoKGspID0+IGsucHVibGljS2V5KSBhcyB1dHhvbGliLmJpdGdvLlRyaXBsZTxCdWZmZXI+LFxuICAgICAgICBrZXlQYWlyLFxuICAgICAgICBjb3NpZ25lci5wdWJsaWNLZXksXG4gICAgICAgIHVuc3BlbnQudmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9KTtcbn1cblxuY2xhc3MgVHhDb21ibyB7XG4gIHB1YmxpYyB1bnNwZW50czogSVVuc3BlbnRbXTtcbiAgcHVibGljIGlucHV0VHg6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgd2FsbGV0S2V5czogQklQMzJJbnRlcmZhY2VbXSxcbiAgICBwdWJsaWMgaW5wdXRUeXBlczogc3RyaW5nW10sXG4gICAgcHVibGljIG91dHB1dFR5cGVzOiBUZXN0VW5zcGVudFR5cGVbXSxcbiAgICBwdWJsaWMgZXhwZWN0ZWREaW1zOiBSZWFkb25seTxEaW1lbnNpb25zPiA9IERpbWVuc2lvbnMuWkVSTyxcbiAgICBwdWJsaWMgc2lnbktleXM/OiBCSVAzMkludGVyZmFjZVtdLFxuICAgIHB1YmxpYyBpbnB1dFZhbHVlOiBudW1iZXIgPSAxMFxuICApIHtcbiAgICB0aGlzLnVuc3BlbnRzID0gaW5wdXRUeXBlcy5tYXAoKGlucHV0VHlwZSkgPT5cbiAgICAgIGNyZWF0ZVVuc3BlbnQoXG4gICAgICAgIHdhbGxldEtleXMubWFwKChrZXkpID0+IGtleS5wdWJsaWNLZXkpLFxuICAgICAgICBpbnB1dFR5cGUsXG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5pbnB1dFR4ID0gY3JlYXRlSW5wdXRUeCh0aGlzLnVuc3BlbnRzLCBpbnB1dFZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCdWlsZGVyV2l0aFVuc2lnbmVkVHgoKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZvck5ldHdvcmsodXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgICB0aGlzLmlucHV0VHgub3V0cy5mb3JFYWNoKCh7fSwgaTogbnVtYmVyKSA9PiB0eEJ1aWxkZXIuYWRkSW5wdXQodGhpcy5pbnB1dFR4LCBpKSk7XG4gICAgdGhpcy5vdXRwdXRUeXBlcy5mb3JFYWNoKCh1bnNwZW50VHlwZSkgPT5cbiAgICAgIHR4QnVpbGRlci5hZGRPdXRwdXQoY3JlYXRlU2NyaXB0UHViS2V5KHRoaXMud2FsbGV0S2V5cywgdW5zcGVudFR5cGUpLCB0aGlzLmlucHV0VmFsdWUpXG4gICAgKTtcbiAgICByZXR1cm4gdHhCdWlsZGVyO1xuICB9XG5cbiAgcHVibGljIGdldFVuc2lnbmVkVHgoKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLmdldEJ1aWxkZXJXaXRoVW5zaWduZWRUeCgpLmJ1aWxkSW5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFNpZ25lZFR4KCk6IHV0eG9saWIuVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IHRoaXMuZ2V0QnVpbGRlcldpdGhVbnNpZ25lZFR4KCk7XG4gICAgdGhpcy51bnNwZW50cy5mb3JFYWNoKCh1bnNwZW50LCBpKSA9PiB7XG4gICAgICBzaWduSW5wdXQodHhCdWlsZGVyLCBpLCB0aGlzLndhbGxldEtleXMsIHVuc3BlbnQsIHRoaXMuc2lnbktleXMpO1xuICAgIH0pO1xuICAgIHJldHVybiB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgfVxufVxuXG5jb25zdCBydW5Db21iaW5hdGlvbnMgPSAoXG4gIHtcbiAgICBpbnB1dFR5cGVzLFxuICAgIG1heE5JbnB1dHMsXG4gICAgb3V0cHV0VHlwZXMsXG4gICAgbWF4Tk91dHB1dHMsXG4gIH06IHtcbiAgICBpbnB1dFR5cGVzOiBJbnB1dFNjcmlwdFR5cGVbXTtcbiAgICBtYXhOSW5wdXRzOiBudW1iZXI7XG4gICAgb3V0cHV0VHlwZXM6IFRlc3RVbnNwZW50VHlwZVtdO1xuICAgIG1heE5PdXRwdXRzOiBudW1iZXI7XG4gIH0sXG4gIGNhbGxiYWNrOiAoaW5wdXRDb21ibzogSW5wdXRTY3JpcHRUeXBlW10sIG91dHB1dENvbWJvOiBUZXN0VW5zcGVudFR5cGVbXSkgPT4gdm9pZFxuKTogdm9pZCA9PiB7XG4gIC8vIENyZWF0ZSBjb21iaW5hdGlvbnMgb2YgZGlmZmVyZW50IGlucHV0IGFuZCBvdXRwdXQgdHlwZXMuIExlbmd0aCBiZXR3ZWVuIDEgYW5kIDMuXG4gIGNvbnN0IGlucHV0Q29tYmluYXRpb25zID0gXy5mbGF0dGVuKFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBbLi4uQXJyYXkobWF4TklucHV0cyldLm1hcCgoX18sIGkpID0+IF8uY29tYmluYXRpb25zKGlucHV0VHlwZXMsIGkgKyAxKSlcbiAgKTtcbiAgY29uc3Qgb3V0cHV0Q29tYmluYXRpb25zID0gXy5mbGF0dGVuKFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBbLi4uQXJyYXkobWF4Tk91dHB1dHMpXS5tYXAoKF9fLCBpKSA9PiBfLmNvbWJpbmF0aW9ucyhvdXRwdXRUeXBlcywgaSArIDEpKVxuICApO1xuXG4gIGlucHV0Q29tYmluYXRpb25zLmZvckVhY2goKGlucHV0VHlwZUNvbWJvKSA9PlxuICAgIG91dHB1dENvbWJpbmF0aW9ucy5mb3JFYWNoKChvdXRwdXRUeXBlQ29tYm8pID0+IHtcbiAgICAgIGNhbGxiYWNrKGlucHV0VHlwZUNvbWJvLCBvdXRwdXRUeXBlQ29tYm8pO1xuICAgIH0pXG4gICk7XG59O1xuXG5jbGFzcyBIaXN0b2dyYW0ge1xuICBwdWJsaWMgdG90YWwgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtYXA6IE1hcDxudW1iZXIsIG51bWJlcj4gPSBuZXcgTWFwKCkpIHt9XG5cbiAgcHVibGljIGFkZChzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1hcC5zZXQoc2l6ZSwgKHRoaXMubWFwLmdldChzaXplKSB8fCAwKSArIDEpO1xuICAgIHRoaXMudG90YWwrKztcbiAgfVxuXG4gIHB1YmxpYyBhc1NvcnRlZEFycmF5KCk6IG51bWJlcltdW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5tYXAuZW50cmllcygpXS5zb3J0KChbYV0sIFtiXSkgPT4gYSAtIGIpO1xuICB9XG5cbiAgcHVibGljIGFzRnVsbFNvcnRlZEFycmF5KCk6IG51bWJlcltdW10ge1xuICAgIHJldHVybiBfLnJhbmdlKHRoaXMuZ2V0UGVyY2VudGlsZSgwKSwgdGhpcy5nZXRQZXJjZW50aWxlKDEpKS5tYXAoKHYpID0+IFt2LCB0aGlzLm1hcC5nZXQodikgfHwgMF0pO1xuICB9XG5cbiAgcHVibGljIGdldFBlcmNlbnRpbGUocDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoMCA+IHAgfHwgcCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgcCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMWApO1xuICAgIH1cblxuICAgIGxldCBzdW0gPSAwO1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIHRoaXMuYXNTb3J0ZWRBcnJheSgpKSB7XG4gICAgICBzdW0gKz0gdjtcbiAgICAgIGlmIChzdW0gLyB0aGlzLnRvdGFsID49IHApIHtcbiAgICAgICAgcmV0dXJuIGs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgZmluZCBwZXJjZW50aWxlJyk7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXlzID0gWy4uLnRoaXMubWFwLmtleXMoKV0uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIHJldHVybiBgWyR7a2V5cy5tYXAoKGspID0+IGBbJHtrfSwgJHt0aGlzLm1hcC5nZXQoayl9XWApLmpvaW4oJyAnKX1dYDtcbiAgfVxufVxuXG5jb25zdCBnZXRLZXlUcmlwbGV0cyA9IChwcmVmaXg6IHN0cmluZywgY291bnQ6IG51bWJlcikgPT5cbiAgWy4uLkFycmF5KGNvdW50KV0ubWFwKCh2LCBpKSA9PlxuICAgIFsxLCAyLCAzXS5tYXAoKGopID0+IGJpcDMyLmZyb21TZWVkKEJ1ZmZlci5hbGxvYygxNiwgYCR7cHJlZml4fS8ke2l9LyR7an1gKSwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKSlcbiAgKTtcblxuLyoqXG4gKlxuICogQ2FsbHMgYGNhbGxiYWNrYCB3aXRoIGEgdmFyaWV0eSBvZiBzaWduZWQgdHhzLCBiYXNlZCBvbiBpbnB1dCBwYXJhbWV0ZXJzXG4gKiBDYWxsYmFjayBhcmd1bWVudHMgYXJlXG4gKiAgIGlucHV0VHlwZSwgaW5wdXRDb3VudCwgb3V0cHV0VHlwZSwgdHhzXG4gKiAgd2hlcmUgYHR4c2AgaW1wbGVtZW50cyBgZm9yRWFjaCgpYFxuICpcbiAqIEBwYXJhbSBpbnB1dFR5cGVzIC0gaW5wdXQgdHlwZXMgdG8gdGVzdFxuICogQHBhcmFtIG5JbnB1dEtleVRyaXBsZXRzIC0gbnVtYmVyIG9mIGRpZmZlcmVudCBpbnB1dCBrZXkgdHJpcGxlcyB0byBjeWNsZSB0aHJvdWdoXG4gKiBAcGFyYW0gb3V0cHV0VHlwZXMgLSBvdXRwdXQgdHlwZXMgdG8gdGVzdFxuICogQHBhcmFtIG5PdXRwdXRLZXlUcmlwbGV0cyAtIG51bWJlciBvZiBkaWZmZXJlbnQgb3V0cHV0IGtleSB0cmlwbGV0cyB0byBjeWNsZSB0aHJvdWdoXG4gKiBAcGFyYW0gY2FsbGJhY2tcbiAqL1xuY29uc3QgcnVuU2lnbmVkVHJhbnNhY3Rpb25zID0gKFxuICB7XG4gICAgaW5wdXRUeXBlcyxcbiAgICBuSW5wdXRLZXlUcmlwbGV0cyxcbiAgICBvdXRwdXRUeXBlcyxcbiAgICBuT3V0cHV0S2V5VHJpcGxldHMsXG4gIH06IHtcbiAgICBpbnB1dFR5cGVzOiBBcnJheTx7IGlucHV0VHlwZTogc3RyaW5nOyBjb3VudDogbnVtYmVyIH0+O1xuICAgIG5JbnB1dEtleVRyaXBsZXRzOiBudW1iZXI7XG4gICAgb3V0cHV0VHlwZXM6IFRlc3RVbnNwZW50VHlwZVtdO1xuICAgIG5PdXRwdXRLZXlUcmlwbGV0czogbnVtYmVyO1xuICB9LFxuICBjYWxsYmFjazogKGlucHV0VHlwZTogc3RyaW5nLCBpbnB1dENvdW50OiBudW1iZXIsIG91dHB1dFR5cGU6IFRlc3RVbnNwZW50VHlwZSwgdHhzOiBhbnkpID0+IHZvaWRcbik6IHZvaWQgPT4ge1xuICBjb25zdCBpbnB1dEtleVRyaXBsZXRzID0gZ2V0S2V5VHJpcGxldHMoJ3Rlc3QvaW5wdXQvJywgbklucHV0S2V5VHJpcGxldHMpO1xuICBjb25zdCBvdXRwdXRLZXlUcmlwbGV0cyA9IGdldEtleVRyaXBsZXRzKCd0ZXN0L291dHB1dC8nLCBuT3V0cHV0S2V5VHJpcGxldHMpO1xuICBjb25zdCBvdXRwdXRWYWx1ZSA9IDFlODtcblxuICBpbnB1dFR5cGVzLmZvckVhY2goKHsgaW5wdXRUeXBlLCBjb3VudDogaW5wdXRDb3VudCB9KSA9PiB7XG4gICAgY29uc3QgaW5wdXRUeHMgPSBpbnB1dEtleVRyaXBsZXRzLm1hcCgoaW5wdXRLZXlzKSA9PiB7XG4gICAgICBjb25zdCB1bnNwZW50cyA9IFsuLi5BcnJheShpbnB1dENvdW50KV0ubWFwKCgpID0+XG4gICAgICAgIGNyZWF0ZVVuc3BlbnQoXG4gICAgICAgICAgaW5wdXRLZXlzLm1hcCgoa2V5KSA9PiBrZXkucHVibGljS2V5KSxcbiAgICAgICAgICBpbnB1dFR5cGUsXG4gICAgICAgICAgb3V0cHV0VmFsdWVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGlucHV0VHggPSBjcmVhdGVJbnB1dFR4KHVuc3BlbnRzLCBvdXRwdXRWYWx1ZSk7XG4gICAgICByZXR1cm4geyBpbnB1dEtleXMsIHVuc3BlbnRzLCBpbnB1dFR4IH07XG4gICAgfSk7XG5cbiAgICBvdXRwdXRUeXBlcy5mb3JFYWNoKChvdXRwdXRUeXBlKSA9PiB7XG4gICAgICBjb25zdCBvdXRwdXRzID0gb3V0cHV0S2V5VHJpcGxldHMubWFwKChvdXRwdXRLZXlzKSA9PiBjcmVhdGVTY3JpcHRQdWJLZXkob3V0cHV0S2V5cywgb3V0cHV0VHlwZSkpO1xuXG4gICAgICBjb25zdCB0eHMgPSB7XG4gICAgICAgIGZvckVhY2goY2I6ICh0eDogdXR4b2xpYi5UcmFuc2FjdGlvbikgPT4gdm9pZCkge1xuICAgICAgICAgIGlucHV0VHhzLmZvckVhY2goKHsgaW5wdXRLZXlzLCB1bnNwZW50cywgaW5wdXRUeCB9KSA9PiB7XG4gICAgICAgICAgICBvdXRwdXRzLmZvckVhY2goKHNjcmlwdFB1YktleSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB0eEJ1aWxkZXIgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZvck5ldHdvcmsodXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgICAgICAgICAgICAgaW5wdXRUeC5vdXRzLmZvckVhY2goKHY6IGFueSwgaTogbnVtYmVyKSA9PiB0eEJ1aWxkZXIuYWRkSW5wdXQoaW5wdXRUeCwgaSkpO1xuICAgICAgICAgICAgICB0eEJ1aWxkZXIuYWRkT3V0cHV0KHNjcmlwdFB1YktleSwgb3V0cHV0VmFsdWUpO1xuICAgICAgICAgICAgICB1bnNwZW50cy5mb3JFYWNoKCh1bnNwZW50LCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgc2lnbklucHV0KHR4QnVpbGRlciwgaSwgaW5wdXRLZXlzLCB1bnNwZW50KTtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgY2IodHhCdWlsZGVyLmJ1aWxkKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjYWxsYmFjayhpbnB1dFR5cGUsIGlucHV0Q291bnQsIG91dHB1dFR5cGUsIHR4cyk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IHsgVHhDb21ibywgSGlzdG9ncmFtLCBydW5Db21iaW5hdGlvbnMsIHJ1blNpZ25lZFRyYW5zYWN0aW9ucyB9O1xuIl19
@@ -13,13 +13,13 @@ export declare const UnspentTypePubKeyHash: {
13
13
  p2pkh: 'p2pkh';
14
14
  p2wpkh: 'p2wpkh';
15
15
  };
16
- export declare type TestUnspentType = string | UnspentTypeOpReturn;
16
+ export type TestUnspentType = string | UnspentTypeOpReturn;
17
17
  export declare class UnspentTypeOpReturn {
18
18
  size: number;
19
19
  constructor(size: number);
20
20
  toString(): string;
21
21
  }
22
- export declare type InputScriptType = utxolib.bitgo.outputScripts.ScriptType | 'taprootKeyPathSpend';
22
+ export type InputScriptType = utxolib.bitgo.outputScripts.ScriptType | 'taprootKeyPathSpend';
23
23
  export declare function getInputScriptTypes(): InputScriptType[];
24
24
  /**
25
25
  * Return the input dimensions based on unspent type
@@ -1 +1 @@
1
- {"version":3,"file":"testutils.d.ts","sourceRoot":"","sources":["../../test/testutils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAYhD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAG9C,eAAO,MAAM,qBAAqB,EAAE;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;CACyD,CAAC;AAExF,eAAO,MAAM,qBAAqB,EAAE;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,QAAQ,CAAC;CACY,CAAC;AAEhC,oBAAY,eAAe,GAAG,MAAM,GAAG,mBAAmB,CAAC;AAE3D,qBAAa,mBAAmB;IACX,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;IAExB,QAAQ,IAAI,MAAM;CAG1B;AAED,oBAAY,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,qBAAqB,CAAC;AAE7F,wBAAgB,mBAAmB,IAAI,eAAe,EAAE,CAEvD;AAED;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,gBAAiB,eAAe,KAAG,SAAS,UAiBxF,CAAC;AAEF,eAAO,MAAM,iCAAiC,gBAAiB,eAAe,KAAG,SAAS,UAuBzF,CAAC;AAkBF,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAClC,UAAU,EAAE,eAAe,EAAE,EAC7B,WAAW,EAAE,eAAe,EAAE,EAC9B,eAAe,EAAE,UAAU,GAAG,YAAY,GAAG,aAAa,EAC1D,OAAO,CAAC,EAAE;IAAE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;CAAE,GACnF,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAwD/D;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAClC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EACjC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EACnC,UAAU,EAAE,eAAe,EAAE,EAC7B,WAAW,EAAE,eAAe,EAAE,GAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,CAI/B"}
1
+ {"version":3,"file":"testutils.d.ts","sourceRoot":"","sources":["../../test/testutils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAYhD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAG9C,eAAO,MAAM,qBAAqB,EAAE;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;CACyD,CAAC;AAExF,eAAO,MAAM,qBAAqB,EAAE;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,QAAQ,CAAC;CACY,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,mBAAmB,CAAC;AAE3D,qBAAa,mBAAmB;IACX,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;IAExB,QAAQ,IAAI,MAAM;CAG1B;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,qBAAqB,CAAC;AAE7F,wBAAgB,mBAAmB,IAAI,eAAe,EAAE,CAEvD;AAED;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,gBAAiB,eAAe,KAAG,QAAQ,CAAC,UAiBxF,CAAC;AAEF,eAAO,MAAM,iCAAiC,gBAAiB,eAAe,KAAG,QAAQ,CAAC,UAuBzF,CAAC;AAkBF,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAClC,UAAU,EAAE,eAAe,EAAE,EAC7B,WAAW,EAAE,eAAe,EAAE,EAC9B,eAAe,EAAE,UAAU,GAAG,YAAY,GAAG,aAAa,EAC1D,OAAO,CAAC,EAAE;IAAE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;CAAE,GACnF,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAwD/D;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAClC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EACjC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EACnC,UAAU,EAAE,eAAe,EAAE,EAC7B,WAAW,EAAE,eAAe,EAAE,GAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,CAI/B"}