@bitgo/key-card 0.31.6 → 0.33.0

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.
@@ -1,7 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseVaultKeycardBox = parseVaultKeycardBox;
3
4
  exports.buildLinesFromPDFNodes = buildLinesFromPDFNodes;
4
5
  exports.parseKeycardFromLines = parseKeycardFromLines;
6
+ const types_1 = require("./types");
7
+ /**
8
+ * Parses a vault keycard box value — the JSON packed by `generateVaultQrData`, e.g.
9
+ * `{"secp256k1Multisig":"…","ecdsaMpc":"…",…}` — into its four roots. Validates that all four
10
+ * roots are present. Recovery tooling calls this on the A/B/C box value returned by
11
+ * {@link parseKeycardFromLines}, then decrypts each root value with the wallet password.
12
+ */
13
+ function parseVaultKeycardBox(data) {
14
+ let parsed;
15
+ try {
16
+ parsed = JSON.parse(data);
17
+ }
18
+ catch {
19
+ throw new Error('parseVaultKeycardBox: value is not valid JSON');
20
+ }
21
+ if (typeof parsed !== 'object' || parsed === null) {
22
+ throw new Error('parseVaultKeycardBox: value is not an object');
23
+ }
24
+ const roots = parsed;
25
+ for (const slot of types_1.VAULT_ROOT_ORDER) {
26
+ if (typeof roots[slot] !== 'string') {
27
+ throw new Error(`parseVaultKeycardBox: missing or invalid root ${slot}`);
28
+ }
29
+ }
30
+ return parsed;
31
+ }
5
32
  const sectionHeaderRegex = /^([A-D])\s*[:.)-]\s*(.+?)\s*$/i;
6
33
  const dataLineRegex = /^data\s*:\s*(.*)$/i;
7
34
  const faqHeaderRegex = /^BitGo\s+KeyCard\s+FAQ$/i;
@@ -156,4 +183,4 @@ function parseKeycardFromLines(lines) {
156
183
  value: normalizeSectionValue(values.join('\n')),
157
184
  }));
158
185
  }
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VLZXljYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhcnNlS2V5Y2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTREQSx3REE0REM7QUFFRCxzREF5RUM7QUF0TEQsTUFBTSxrQkFBa0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM1RCxNQUFNLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQztBQUMzQyxNQUFNLGNBQWMsR0FBRywwQkFBMEIsQ0FBQztBQUVsRCwrRUFBK0U7QUFDL0UscUZBQXFGO0FBQ3JGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLG1GQUFtRjtBQUNuRixNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUVqQyxTQUFTLFlBQVksQ0FBQyxLQUFhO0lBQ2pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDM0MsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsUUFBZ0I7SUFDN0MseURBQXlEO0lBQ3pELGtFQUFrRTtJQUNsRSwwREFBMEQ7SUFDMUQsMEVBQTBFO0lBQzFFLG1EQUFtRDtJQUNuRCwyRUFBMkU7SUFDM0UscUVBQXFFO0lBQ3JFLE9BQU8sUUFBUTtTQUNaLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDWCxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNwRCxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ1IsT0FBTyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztTQUNqQyxJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBWTtJQUM1QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENB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QyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxjQUFjLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzNFLGNBQWMsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUN6QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxRQUFRO1NBQ1osTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQzVGLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwQyxLQUFLLEVBQUUsR0FBRyxPQUFPLEtBQUssS0FBSyxFQUFFO1FBQzdCLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2hELENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFBERlRleHROb2RlID0ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICBwYWdlOiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBLZXljYXJkRW50cnkgPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuXG5jb25zdCBzZWN0aW9uSGVhZGVyUmVnZXggPSAvXihbQS1EXSlcXHMqWzouKS1dXFxzKiguKz8pXFxzKiQvaTtcbmNvbnN0IGRhdGFMaW5lUmVnZXggPSAvXmRhdGFcXHMqOlxccyooLiopJC9pO1xuY29uc3QgZmFxSGVhZGVyUmVnZXggPSAvXkJpdEdvXFxzK0tleUNhcmRcXHMrRkFRJC9pO1xuXG4vLyBQREYgY29vcmRpbmF0ZSB0b2xlcmFuY2UgaW4gcG9pbnRzLiBOb2RlcyB3aXRoaW4gdGhpcyBkaXN0YW5jZSBvbiB0aGUgWS1heGlzXG4vLyBhcmUgdHJlYXRlZCBhcyBiZWxvbmdpbmcgdG8gdGhlIHNhbWUgbGluZTsgbm9kZXMgZnVydGhlciBhcGFydCBhcmUgc2VwYXJhdGUgbGluZXMuXG5jb25zdCBQREZfTElORV9ZX1RPTEVSQU5DRSA9IDI7XG4vLyBIb3Jpem9udGFsIGdhcCBpbiBwb2ludHMgYWJvdmUgd2hpY2ggYSBzcGFjZSBpcyBpbnNlcnRlZCBiZXR3ZWVuIGFkamFjZW50IG5vZGVzLlxuY29uc3QgUERGX05PREVfR0FQX1RIUkVTSE9MRCA9IDI7XG5cbmZ1bmN0aW9uIHNhbml0aXplVGV4dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGlucHV0LnJlcGxhY2UoL1xccysvZywgJyAnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNlY3Rpb25WYWx1ZShyYXdWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gVHdvLXBhc3MgcmVtb3ZhbCBvZiBcIlBhcnQgTlwiIHBhZ2UtY29udGludWF0aW9uIGxhYmVsczpcbiAgLy8gMS4gTGluZSBmaWx0ZXI6IHJlbW92ZXMgbGFiZWxzIHRoYXQgYXBwZWFyIGFzIHN0YW5kYWxvbmUgbGluZXMuXG4gIC8vIDIuIFJlZ2V4IHJlcGxhY2U6IHJlbW92ZXMgbGFiZWxzIGVtYmVkZGVkIG1pZC1saW5lIHdoZW5cbiAgLy8gICAgYnVpbGRMaW5lc0Zyb21QREZOb2RlcyBtZXJnZXMgdGhlbSB3aXRoIGFkamFjZW50IGNvbnRlbnQgYXQgdGhlIHNhbWVcbiAgLy8gICAgeS1jb29yZGluYXRlIChlLmcuIFwiLi4uWDg4YlBhcnQgMiBsRlBNZC4uLlwiKS5cbiAgLy8gam9pbignJykgaW50ZW50aW9uYWxseSB1c2VzIG5vIHNlcGFyYXRvciDigJQgc2VjdGlvbiB2YWx1ZXMgYXJlIGNvbnRpbnVvdXNcbiAgLy8gc3RyaW5ncyAoYmFzZTY0IC8geHB1YikgdGhhdCB3cmFwIGFjcm9zcyBQREYgbGluZXMgd2l0aG91dCBzcGFjZXMuXG4gIHJldHVybiByYXdWYWx1ZVxuICAgIC5zcGxpdCgnXFxuJylcbiAgICAuZmlsdGVyKChsaW5lKSA9PiAhL15QYXJ0XFxzK1xcZCskL2kudGVzdChsaW5lLnRyaW0oKSkpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoL1xccypQYXJ0XFxzK1xcZCtcXHMqL2dpLCAnJylcbiAgICAudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBjb3VudENoYXIoaW5wdXQ6IHN0cmluZywgY2hhcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIGlucHV0LnNwbGl0KGNoYXIpLmxlbmd0aCAtIDE7XG59XG5cbmZ1bmN0aW9uIGlzRW5jcnlwdGVkV2FsbGV0UGFzc3dvcmRTZWN0aW9uVGl0bGUodGl0bGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZW5jcnlwdGVkIHdhbGxldCBwYXNzd29yZCcpO1xufVxuXG4vKipcbiAqIFJlY29uc3RydWN0cyBsb2dpY2FsIHRleHQgbGluZXMgZnJvbSBhbiB1bm9yZGVyZWQgc2V0IG9mIFBERiB0ZXh0IG5vZGVzLlxuICpcbiAqIFBERiB0ZXh0IGV4dHJhY3Rpb24gcmV0dXJucyBpbmRpdmlkdWFsIHBvc2l0aW9uZWQgZnJhZ21lbnRzLiBUaGlzIGZ1bmN0aW9uXG4gKiBzb3J0cyB0aGVtIGJ5IHBhZ2UgdGhlbiBZLWNvb3JkaW5hdGUgKHRvcC10by1ib3R0b20pLCBncm91cHMgZnJhZ21lbnRzXG4gKiB3aXRoaW4gUERGX0xJTkVfWV9UT0xFUkFOQ0UgcG9pbnRzIG9mIGVhY2ggb3RoZXIgb250byB0aGUgc2FtZSBsaW5lLCBhbmRcbiAqIGluc2VydHMgYSBzcGFjZSBiZXR3ZWVuIGZyYWdtZW50cyB0aGF0IGFyZSBzZXBhcmF0ZWQgYnkgbW9yZSB0aGFuXG4gKiBQREZfTk9ERV9HQVBfVEhSRVNIT0xEIHBvaW50cyBob3Jpem9udGFsbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZExpbmVzRnJvbVBERk5vZGVzKG5vZGVzOiBQREZUZXh0Tm9kZVtdKTogc3RyaW5nW10ge1xuICBjb25zdCBzb3J0ZWROb2RlcyA9IFsuLi5ub2Rlc10uc29ydCgoYSwgYikgPT4ge1xuICAgIGlmIChhLnBhZ2UgIT09IGIucGFnZSkge1xuICAgICAgcmV0dXJuIGEucGFnZSAtIGIucGFnZTtcbiAgICB9XG4gICAgY29uc3QgeURpZmYgPSBNYXRoLmFicyhhLnkgLSBiLnkpO1xuICAgIGlmICh5RGlmZiA+IFBERl9MSU5FX1lfVE9MRVJBTkNFKSB7XG4gICAgICByZXR1cm4gYi55IC0gYS55O1xuICAgIH1cbiAgICByZXR1cm4gYS54IC0gYi54O1xuICB9KTtcblxuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcbiAgbGV0IGN1cnJlbnRMaW5lTm9kZXM6IFBERlRleHROb2RlW10gPSBbXTtcbiAgbGV0IGN1cnJlbnRQYWdlID0gLTE7XG4gIGxldCBjdXJyZW50WSA9IE51bWJlci5OYU47XG5cbiAgZnVuY3Rpb24gZmx1c2hMaW5lKCkge1xuICAgIGlmIChjdXJyZW50TGluZU5vZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNvcnRlZExpbmVOb2RlcyA9IFsuLi5jdXJyZW50TGluZU5vZGVzXS5zb3J0KChhLCBiKSA9PiBhLnggLSBiLngpO1xuICAgIGxldCBsaW5lID0gJyc7XG4gICAgbGV0IHByZXZpb3VzUmlnaHRFZGdlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygc29ydGVkTGluZU5vZGVzKSB7XG4gICAgICBjb25zdCBwaWVjZSA9IHNhbml0aXplVGV4dChub2RlLnRleHQpO1xuICAgICAgaWYgKCFwaWVjZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZXZpb3VzUmlnaHRFZGdlICE9PSBudWxsICYmIG5vZGUueCAtIHByZXZpb3VzUmlnaHRFZGdlID4gUERGX05PREVfR0FQX1RIUkVTSE9MRCkge1xuICAgICAgICBsaW5lICs9ICcgJztcbiAgICAgIH1cbiAgICAgIGxpbmUgKz0gcGllY2U7XG4gICAgICBwcmV2aW91c1JpZ2h0RWRnZSA9IG5vZGUueCArIG5vZGUud2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZExpbmUgPSBsaW5lLnRyaW0oKTtcbiAgICBpZiAobm9ybWFsaXplZExpbmUpIHtcbiAgICAgIGxpbmVzLnB1c2gobm9ybWFsaXplZExpbmUpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3Qgbm9kZSBvZiBzb3J0ZWROb2Rlcykge1xuICAgIGNvbnN0IHBhZ2VDaGFuZ2VkID0gbm9kZS5wYWdlICE9PSBjdXJyZW50UGFnZTtcbiAgICBjb25zdCBsaW5lQ2hhbmdlZCA9IE51bWJlci5pc05hTihjdXJyZW50WSkgfHwgTWF0aC5hYnMobm9kZS55IC0gY3VycmVudFkpID4gUERGX0xJTkVfWV9UT0xFUkFOQ0U7XG4gICAgaWYgKHBhZ2VDaGFuZ2VkIHx8IGxpbmVDaGFuZ2VkKSB7XG4gICAgICBmbHVzaExpbmUoKTtcbiAgICAgIGN1cnJlbnRMaW5lTm9kZXMgPSBbbm9kZV07XG4gICAgICBjdXJyZW50UGFnZSA9IG5vZGUucGFnZTtcbiAgICAgIGN1cnJlbnRZID0gbm9kZS55O1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY3VycmVudExpbmVOb2Rlcy5wdXNoKG5vZGUpO1xuICB9XG5cbiAgZmx1c2hMaW5lKCk7XG4gIHJldHVybiBsaW5lcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlS2V5Y2FyZEZyb21MaW5lcyhsaW5lczogc3RyaW5nW10pOiBLZXljYXJkRW50cnlbXSB7XG4gIGNvbnN0IHNlY3Rpb25zOiBBcnJheTx7XG4gICAgc2VjdGlvbjogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdmFsdWVzOiBzdHJpbmdbXTtcbiAgICBpc0NhcHR1cmluZ0RhdGE6IGJvb2xlYW47XG4gICAgb3BlbkN1cmx5Q291bnQ6IG51bWJlcjtcbiAgfT4gPSBbXTtcbiAgbGV0IGN1cnJlbnRTZWN0aW9uSW5kZXggPSAtMTtcblxuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBjb25zdCBsYWJlbE1hdGNoID0gbGluZS5tYXRjaChzZWN0aW9uSGVhZGVyUmVnZXgpO1xuICAgIGlmIChsYWJlbE1hdGNoKSB7XG4gICAgICBjb25zdCBzZWN0aW9uID0gbGFiZWxNYXRjaFsxXT8udG9VcHBlckNhc2UoKTtcbiAgICAgIGNvbnN0IHRpdGxlID0gc2FuaXRpemVUZXh0KGxhYmVsTWF0Y2hbMl0gPz8gJycpO1xuICAgICAgaWYgKHNlY3Rpb24gJiYgdGl0bGUpIHtcbiAgICAgICAgc2VjdGlvbnMucHVzaCh7XG4gICAgICAgICAgc2VjdGlvbixcbiAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICB2YWx1ZXM6IFtdLFxuICAgICAgICAgIGlzQ2FwdHVyaW5nRGF0YTogZmFsc2UsXG4gICAgICAgICAgb3BlbkN1cmx5Q291bnQ6IDAsXG4gICAgICAgIH0pO1xuICAgICAgICBjdXJyZW50U2VjdGlvbkluZGV4ID0gc2VjdGlvbnMubGVuZ3RoIC0gMTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRTZWN0aW9uSW5kZXggPCAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb25zW2N1cnJlbnRTZWN0aW9uSW5kZXhdO1xuICAgIGlmICghY3VycmVudFNlY3Rpb24pIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGFMaW5lTWF0Y2ggPSBsaW5lLm1hdGNoKGRhdGFMaW5lUmVnZXgpO1xuICAgIGlmIChkYXRhTGluZU1hdGNoKSB7XG4gICAgICBjdXJyZW50U2VjdGlvbi5pc0NhcHR1cmluZ0RhdGEgPSB0cnVlO1xuICAgICAgY29uc3QgaW5saW5lVmFsdWUgPSBzYW5pdGl6ZVRleHQoZGF0YUxpbmVNYXRjaFsxXSA/PyAnJyk7XG4gICAgICBpZiAoaW5saW5lVmFsdWUpIHtcbiAgICAgICAgY3VycmVudFNlY3Rpb24udmFsdWVzLnB1c2goaW5saW5lVmFsdWUpO1xuICAgICAgICBjdXJyZW50U2VjdGlvbi5vcGVuQ3VybHlDb3VudCArPSBjb3VudENoYXIoaW5saW5lVmFsdWUsICd7JykgLSBjb3VudENoYXIoaW5saW5lVmFsdWUsICd9Jyk7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFNlY3Rpb24uaXNDYXB0dXJpbmdEYXRhKSB7XG4gICAgICBpZiAoZmFxSGVhZGVyUmVnZXgudGVzdChsaW5lKSkge1xuICAgICAgICBjdXJyZW50U2VjdGlvbi5pc0NhcHR1cmluZ0RhdGEgPSBmYWxzZTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRTZWN0aW9uLnZhbHVlcy5wdXNoKGxpbmUpO1xuXG4gICAgICAvLyBGb3IgZW5jcnlwdGVkIHdhbGxldCBwYXNzd29yZCwgZGF0YSBpcyBhIHNpbmdsZSBKU09OIG9iamVjdC4gU3RvcCBhc1xuICAgICAgLy8gc29vbiBhcyB0aGUgb2JqZWN0IGNsb3NlcyBzbyBmb290ZXIvRkFRIGNvbnRlbnQgaXMgbm90IGFwcGVuZGVkLlxuICAgICAgaWYgKGlzRW5jcnlwdGVkV2FsbGV0UGFzc3dvcmRTZWN0aW9uVGl0bGUoY3VycmVudFNlY3Rpb24udGl0bGUpKSB7XG4gICAgICAgIGN1cnJlbnRTZWN0aW9uLm9wZW5DdXJseUNvdW50ICs9IGNvdW50Q2hhcihsaW5lLCAneycpIC0gY291bnRDaGFyKGxpbmUsICd9Jyk7XG4gICAgICAgIGlmIChjdXJyZW50U2VjdGlvbi52YWx1ZXMubGVuZ3RoID4gMCAmJiBjdXJyZW50U2VjdGlvbi5vcGVuQ3VybHlDb3VudCA8PSAwKSB7XG4gICAgICAgICAgY3VycmVudFNlY3Rpb24uaXNDYXB0dXJpbmdEYXRhID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc2VjdGlvbnNcbiAgICAuZmlsdGVyKCh7IHNlY3Rpb24sIHZhbHVlcyB9KSA9PiBbJ0EnLCAnQicsICdDJywgJ0QnXS5pbmNsdWRlcyhzZWN0aW9uKSAmJiB2YWx1ZXMubGVuZ3RoID4gMClcbiAgICAubWFwKCh7IHNlY3Rpb24sIHRpdGxlLCB2YWx1ZXMgfSkgPT4gKHtcbiAgICAgIGxhYmVsOiBgJHtzZWN0aW9ufTogJHt0aXRsZX1gLFxuICAgICAgdmFsdWU6IG5vcm1hbGl6ZVNlY3Rpb25WYWx1ZSh2YWx1ZXMuam9pbignXFxuJykpLFxuICAgIH0pKTtcbn1cbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VLZXljYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhcnNlS2V5Y2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFCQSxvREFpQkM7QUFpREQsd0RBNERDO0FBRUQsc0RBeUVDO0FBOU5ELG1DQUE4RDtBQWU5RDs7Ozs7R0FLRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsSUFBSSxNQUFlLENBQUM7SUFDcEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBaUMsQ0FBQztJQUNoRCxLQUFLLE1BQU0sSUFBSSxJQUFJLHdCQUFnQixFQUFFLENBQUM7UUFDcEMsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUEyQixDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLGtCQUFrQixHQUFHLGdDQUFnQyxDQUFDO0FBQzVELE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDO0FBQzNDLE1BQU0sY0FBYyxHQUFHLDBCQUEwQixDQUFDO0FBRWxELCtFQUErRTtBQUMvRSxxRkFBcUY7QUFDckYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUM7QUFDL0IsbUZBQW1G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U0FDNUYsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssRUFBRSxHQUFHLE9BQU8sS0FBSyxLQUFLLEVBQUU7UUFDN0IsS0FBSyxFQUFFLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDaEQsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmF1bHRLZXljYXJkUm9vdHMsIFZBVUxUX1JPT1RfT1JERVIgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgUERGVGV4dE5vZGUgPSB7XG4gIHRleHQ6IHN0cmluZztcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEtleWNhcmRFbnRyeSA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbi8qKlxuICogUGFyc2VzIGEgdmF1bHQga2V5Y2FyZCBib3ggdmFsdWUg4oCUIHRoZSBKU09OIHBhY2tlZCBieSBgZ2VuZXJhdGVWYXVsdFFyRGF0YWAsIGUuZy5cbiAqIGB7XCJzZWNwMjU2azFNdWx0aXNpZ1wiOlwi4oCmXCIsXCJlY2RzYU1wY1wiOlwi4oCmXCIs4oCmfWAg4oCUIGludG8gaXRzIGZvdXIgcm9vdHMuIFZhbGlkYXRlcyB0aGF0IGFsbCBmb3VyXG4gKiByb290cyBhcmUgcHJlc2VudC4gUmVjb3ZlcnkgdG9vbGluZyBjYWxscyB0aGlzIG9uIHRoZSBBL0IvQyBib3ggdmFsdWUgcmV0dXJuZWQgYnlcbiAqIHtAbGluayBwYXJzZUtleWNhcmRGcm9tTGluZXN9LCB0aGVuIGRlY3J5cHRzIGVhY2ggcm9vdCB2YWx1ZSB3aXRoIHRoZSB3YWxsZXQgcGFzc3dvcmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVZhdWx0S2V5Y2FyZEJveChkYXRhOiBzdHJpbmcpOiBWYXVsdEtleWNhcmRSb290cyB7XG4gIGxldCBwYXJzZWQ6IHVua25vd247XG4gIHRyeSB7XG4gICAgcGFyc2VkID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwYXJzZVZhdWx0S2V5Y2FyZEJveDogdmFsdWUgaXMgbm90IHZhbGlkIEpTT04nKTtcbiAgfVxuICBpZiAodHlwZW9mIHBhcnNlZCAhPT0gJ29iamVjdCcgfHwgcGFyc2VkID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwYXJzZVZhdWx0S2V5Y2FyZEJveDogdmFsdWUgaXMgbm90IGFuIG9iamVjdCcpO1xuICB9XG4gIGNvbnN0IHJvb3RzID0gcGFyc2VkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBmb3IgKGNvbnN0IHNsb3Qgb2YgVkFVTFRfUk9PVF9PUkRFUikge1xuICAgIGlmICh0eXBlb2Ygcm9vdHNbc2xvdF0gIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHBhcnNlVmF1bHRLZXljYXJkQm94OiBtaXNzaW5nIG9yIGludmFsaWQgcm9vdCAke3Nsb3R9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBwYXJzZWQgYXMgVmF1bHRLZXljYXJkUm9vdHM7XG59XG5cbmNvbnN0IHNlY3Rpb25IZWFkZXJSZWdleCA9IC9eKFtBLURdKVxccypbOi4pLV1cXHMqKC4rPylcXHMqJC9pO1xuY29uc3QgZGF0YUxpbmVSZWdleCA9IC9eZGF0YVxccyo6XFxzKiguKikkL2k7XG5jb25zdCBmYXFIZWFkZXJSZWdleCA9IC9eQml0R29cXHMrS2V5Q2FyZFxccytGQVEkL2k7XG5cbi8vIFBERiBjb29yZGluYXRlIHRvbGVyYW5jZSBpbiBwb2ludHMuIE5vZGVzIHdpdGhpbiB0aGlzIGRpc3RhbmNlIG9uIHRoZSBZLWF4aXNcbi8vIGFyZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byB0aGUgc2FtZSBsaW5lOyBub2RlcyBmdXJ0aGVyIGFwYXJ0IGFyZSBzZXBhcmF0ZSBsaW5lcy5cbmNvbnN0IFBERl9MSU5FX1lfVE9MRVJBTkNFID0gMjtcbi8vIEhvcml6b250YWwgZ2FwIGluIHBvaW50cyBhYm92ZSB3aGljaCBhIHNwYWNlIGlzIGluc2VydGVkIGJldHdlZW4gYWRqYWNlbnQgbm9kZXMuXG5jb25zdCBQREZfTk9ERV9HQVBfVEhSRVNIT0xEID0gMjtcblxuZnVuY3Rpb24gc2FuaXRpemVUZXh0KGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXFxzKy9nLCAnICcpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplU2VjdGlvblZhbHVlKHJhd1ZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBUd28tcGFzcyByZW1vdmFsIG9mIFwiUGFydCBOXCIgcGFnZS1jb250aW51YXRpb24gbGFiZWxzOlxuICAvLyAxLiBMaW5lIGZpbHRlcjogcmVtb3ZlcyBsYWJlbHMgdGhhdCBhcHBlYXIgYXMgc3RhbmRhbG9uZSBsaW5lcy5cbiAgLy8gMi4gUmVnZXggcmVwbGFjZTogcmVtb3ZlcyBsYWJlbHMgZW1iZWRkZWQgbWlkLWxpbmUgd2hlblxuICAvLyAgICBidWlsZExpbmVzRnJvbVBERk5vZGVzIG1lcmdlcyB0aGVtIHdpdGggYWRqYWNlbnQgY29udGVudCBhdCB0aGUgc2FtZVxuICAvLyAgICB5LWNvb3JkaW5hdGUgKGUuZy4gXCIuLi5YODhiUGFydCAyIGxGUE1kLi4uXCIpLlxuICAvLyBqb2luKCcnKSBpbnRlbnRpb25hbGx5IHVzZXMgbm8gc2VwYXJhdG9yIOKAlCBzZWN0aW9uIHZhbHVlcyBhcmUgY29udGludW91c1xuICAvLyBzdHJpbmdzIChiYXNlNjQgLyB4cHViKSB0aGF0IHdyYXAgYWNyb3NzIFBERiBsaW5lcyB3aXRob3V0IHNwYWNlcy5cbiAgcmV0dXJuIHJhd1ZhbHVlXG4gICAgLnNwbGl0KCdcXG4nKVxuICAgIC5maWx0ZXIoKGxpbmUpID0+ICEvXlBhcnRcXHMrXFxkKyQvaS50ZXN0KGxpbmUudHJpbSgpKSlcbiAgICAuam9pbignJylcbiAgICAucmVwbGFjZSgvXFxzKlBhcnRcXHMrXFxkK1xccyovZ2ksICcnKVxuICAgIC50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGNvdW50Q2hhcihpbnB1dDogc3RyaW5nLCBjaGFyOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gaW5wdXQuc3BsaXQoY2hhcikubGVuZ3RoIC0gMTtcbn1cblxuZnVuY3Rpb24gaXNFbmNyeXB0ZWRXYWxsZXRQYXNzd29yZFNlY3Rpb25UaXRsZSh0aXRsZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB0aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdlbmNyeXB0ZWQgd2FsbGV0IHBhc3N3b3JkJyk7XG59XG5cbi8qKlxuICogUmVjb25zdHJ1Y3RzIGxvZ2ljYWwgdGV4dCBsaW5lcyBmcm9tIGFuIHVub3JkZXJlZCBzZXQgb2YgUERGIHRleHQgbm9kZXMuXG4gKlxuICogUERGIHRleHQgZXh0cmFjdGlvbiByZXR1cm5zIGluZGl2aWR1YWwgcG9zaXRpb25lZCBmcmFnbWVudHMuIFRoaXMgZnVuY3Rpb25cbiAqIHNvcnRzIHRoZW0gYnkgcGFnZSB0aGVuIFktY29vcmRpbmF0ZSAodG9wLXRvLWJvdHRvbSksIGdyb3VwcyBmcmFnbWVudHNcbiAqIHdpdGhpbiBQREZfTElORV9ZX1RPTEVSQU5DRSBwb2ludHMgb2YgZWFjaCBvdGhlciBvbnRvIHRoZSBzYW1lIGxpbmUsIGFuZFxuICogaW5zZXJ0cyBhIHNwYWNlIGJldHdlZW4gZnJhZ21lbnRzIHRoYXQgYXJlIHNlcGFyYXRlZCBieSBtb3JlIHRoYW5cbiAqIFBERl9OT0RFX0dBUF9USFJFU0hPTEQgcG9pbnRzIGhvcml6b250YWxseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTGluZXNGcm9tUERGTm9kZXMobm9kZXM6IFBERlRleHROb2RlW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHNvcnRlZE5vZGVzID0gWy4uLm5vZGVzXS5zb3J0KChhLCBiKSA9PiB7XG4gICAgaWYgKGEucGFnZSAhPT0gYi5wYWdlKSB7XG4gICAgICByZXR1cm4gYS5wYWdlIC0gYi5wYWdlO1xuICAgIH1cbiAgICBjb25zdCB5RGlmZiA9IE1hdGguYWJzKGEueSAtIGIueSk7XG4gICAgaWYgKHlEaWZmID4gUERGX0xJTkVfWV9UT0xFUkFOQ0UpIHtcbiAgICAgIHJldHVybiBiLnkgLSBhLnk7XG4gICAgfVxuICAgIHJldHVybiBhLnggLSBiLng7XG4gIH0pO1xuXG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgY3VycmVudExpbmVOb2RlczogUERGVGV4dE5vZGVbXSA9IFtdO1xuICBsZXQgY3VycmVudFBhZ2UgPSAtMTtcbiAgbGV0IGN1cnJlbnRZID0gTnVtYmVyLk5hTjtcblxuICBmdW5jdGlvbiBmbHVzaExpbmUoKSB7XG4gICAgaWYgKGN1cnJlbnRMaW5lTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc29ydGVkTGluZU5vZGVzID0gWy4uLmN1cnJlbnRMaW5lTm9kZXNdLnNvcnQoKGEsIGIpID0+IGEueCAtIGIueCk7XG4gICAgbGV0IGxpbmUgPSAnJztcbiAgICBsZXQgcHJldmlvdXNSaWdodEVkZ2U6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBzb3J0ZWRMaW5lTm9kZXMpIHtcbiAgICAgIGNvbnN0IHBpZWNlID0gc2FuaXRpemVUZXh0KG5vZGUudGV4dCk7XG4gICAgICBpZiAoIXBpZWNlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJldmlvdXNSaWdodEVkZ2UgIT09IG51bGwgJiYgbm9kZS54IC0gcHJldmlvdXNSaWdodEVkZ2UgPiBQREZfTk9ERV9HQVBfVEhSRVNIT0xEKSB7XG4gICAgICAgIGxpbmUgKz0gJyAnO1xuICAgICAgfVxuICAgICAgbGluZSArPSBwaWVjZTtcbiAgICAgIHByZXZpb3VzUmlnaHRFZGdlID0gbm9kZS54ICsgbm9kZS53aWR0aDtcbiAgICB9XG5cbiAgICBjb25zdCBub3JtYWxpemVkTGluZSA9IGxpbmUudHJpbSgpO1xuICAgIGlmIChub3JtYWxpemVkTGluZSkge1xuICAgICAgbGluZXMucHVzaChub3JtYWxpemVkTGluZSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBub2RlIG9mIHNvcnRlZE5vZGVzKSB7XG4gICAgY29uc3QgcGFnZUNoYW5nZWQgPSBub2RlLnBhZ2UgIT09IGN1cnJlbnRQYWdlO1xuICAgIGNvbnN0IGxpbmVDaGFuZ2VkID0gTnVtYmVyLmlzTmFOKGN1cnJlbnRZKSB8fCBNYXRoLmFicyhub2RlLnkgLSBjdXJyZW50WSkgPiBQREZfTElORV9ZX1RPTEVSQU5DRTtcbiAgICBpZiAocGFnZUNoYW5nZWQgfHwgbGluZUNoYW5nZWQpIHtcbiAgICAgIGZsdXNoTGluZSgpO1xuICAgICAgY3VycmVudExpbmVOb2RlcyA9IFtub2RlXTtcbiAgICAgIGN1cnJlbnRQYWdlID0gbm9kZS5wYWdlO1xuICAgICAgY3VycmVudFkgPSBub2RlLnk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjdXJyZW50TGluZU5vZGVzLnB1c2gobm9kZSk7XG4gIH1cblxuICBmbHVzaExpbmUoKTtcbiAgcmV0dXJuIGxpbmVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VLZXljYXJkRnJvbUxpbmVzKGxpbmVzOiBzdHJpbmdbXSk6IEtleWNhcmRFbnRyeVtdIHtcbiAgY29uc3Qgc2VjdGlvbnM6IEFycmF5PHtcbiAgICBzZWN0aW9uOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB2YWx1ZXM6IHN0cmluZ1tdO1xuICAgIGlzQ2FwdHVyaW5nRGF0YTogYm9vbGVhbjtcbiAgICBvcGVuQ3VybHlDb3VudDogbnVtYmVyO1xuICB9PiA9IFtdO1xuICBsZXQgY3VycmVudFNlY3Rpb25JbmRleCA9IC0xO1xuXG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIGNvbnN0IGxhYmVsTWF0Y2ggPSBsaW5lLm1hdGNoKHNlY3Rpb25IZWFkZXJSZWdleCk7XG4gICAgaWYgKGxhYmVsTWF0Y2gpIHtcbiAgICAgIGNvbnN0IHNlY3Rpb24gPSBsYWJlbE1hdGNoWzFdPy50b1VwcGVyQ2FzZSgpO1xuICAgICAgY29uc3QgdGl0bGUgPSBzYW5pdGl6ZVRleHQobGFiZWxNYXRjaFsyXSA/PyAnJyk7XG4gICAgICBpZiAoc2VjdGlvbiAmJiB0aXRsZSkge1xuICAgICAgICBzZWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICBzZWN0aW9uLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgIHZhbHVlczogW10sXG4gICAgICAgICAgaXNDYXB0dXJpbmdEYXRhOiBmYWxzZSxcbiAgICAgICAgICBvcGVuQ3VybHlDb3VudDogMCxcbiAgICAgICAgfSk7XG4gICAgICAgIGN1cnJlbnRTZWN0aW9uSW5kZXggPSBzZWN0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFNlY3Rpb25JbmRleCA8IDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbnNbY3VycmVudFNlY3Rpb25JbmRleF07XG4gICAgaWYgKCFjdXJyZW50U2VjdGlvbikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YUxpbmVNYXRjaCA9IGxpbmUubWF0Y2goZGF0YUxpbmVSZWdleCk7XG4gICAgaWYgKGRhdGFMaW5lTWF0Y2gpIHtcbiAgICAgIGN1cnJlbnRTZWN0aW9uLmlzQ2FwdHVyaW5nRGF0YSA9IHRydWU7XG4gICAgICBjb25zdCBpbmxpbmVWYWx1ZSA9IHNhbml0aXplVGV4dChkYXRhTGluZU1hdGNoWzFdID8/ICcnKTtcbiAgICAgIGlmIChpbmxpbmVWYWx1ZSkge1xuICAgICAgICBjdXJyZW50U2VjdGlvbi52YWx1ZXMucHVzaChpbmxpbmVWYWx1ZSk7XG4gICAgICAgIGN1cnJlbnRTZWN0aW9uLm9wZW5DdXJseUNvdW50ICs9IGNvdW50Q2hhcihpbmxpbmVWYWx1ZSwgJ3snKSAtIGNvdW50Q2hhcihpbmxpbmVWYWx1ZSwgJ30nKTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50U2VjdGlvbi5pc0NhcHR1cmluZ0RhdGEpIHtcbiAgICAgIGlmIChmYXFIZWFkZXJSZWdleC50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGN1cnJlbnRTZWN0aW9uLmlzQ2FwdHVyaW5nRGF0YSA9IGZhbHNlO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY3VycmVudFNlY3Rpb24udmFsdWVzLnB1c2gobGluZSk7XG5cbiAgICAgIC8vIEZvciBlbmNyeXB0ZWQgd2FsbGV0IHBhc3N3b3JkLCBkYXRhIGlzIGEgc2luZ2xlIEpTT04gb2JqZWN0LiBTdG9wIGFzXG4gICAgICAvLyBzb29uIGFzIHRoZSBvYmplY3QgY2xvc2VzIHNvIGZvb3Rlci9GQVEgY29udGVudCBpcyBub3QgYXBwZW5kZWQuXG4gICAgICBpZiAoaXNFbmNyeXB0ZWRXYWxsZXRQYXNzd29yZFNlY3Rpb25UaXRsZShjdXJyZW50U2VjdGlvbi50aXRsZSkpIHtcbiAgICAgICAgY3VycmVudFNlY3Rpb24ub3BlbkN1cmx5Q291bnQgKz0gY291bnRDaGFyKGxpbmUsICd7JykgLSBjb3VudENoYXIobGluZSwgJ30nKTtcbiAgICAgICAgaWYgKGN1cnJlbnRTZWN0aW9uLnZhbHVlcy5sZW5ndGggPiAwICYmIGN1cnJlbnRTZWN0aW9uLm9wZW5DdXJseUNvdW50IDw9IDApIHtcbiAgICAgICAgICBjdXJyZW50U2VjdGlvbi5pc0NhcHR1cmluZ0RhdGEgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzZWN0aW9uc1xuICAgIC5maWx0ZXIoKHsgc2VjdGlvbiwgdmFsdWVzIH0pID0+IFsnQScsICdCJywgJ0MnLCAnRCddLmluY2x1ZGVzKHNlY3Rpb24pICYmIHZhbHVlcy5sZW5ndGggPiAwKVxuICAgIC5tYXAoKHsgc2VjdGlvbiwgdGl0bGUsIHZhbHVlcyB9KSA9PiAoe1xuICAgICAgbGFiZWw6IGAke3NlY3Rpb259OiAke3RpdGxlfWAsXG4gICAgICB2YWx1ZTogbm9ybWFsaXplU2VjdGlvblZhbHVlKHZhbHVlcy5qb2luKCdcXG4nKSksXG4gICAgfSkpO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { EncryptionVersion, Keychain } from '@bitgo/sdk-core';
1
+ import { EncryptionVersion, Keychain, KeychainsTriplet } from '@bitgo/sdk-core';
2
2
  import { BaseCoin, KeyCurve } from '@bitgo/statics';
3
3
  export interface GenerateQrDataBaseParams {
4
4
  activationCode?: string;
@@ -34,6 +34,26 @@ export interface GenerateQrDataParams extends GenerateQrDataCoinParams {
34
34
  export interface GenerateLightningQrDataParams extends GenerateQrDataCoinParams {
35
35
  userAuthKeychain: Keychain;
36
36
  }
37
+ /**
38
+ * Identifier for one of a vault's four roots (one per signing scheme). Each value is the
39
+ * root's `rootKeyType`, which is also the key used in the keycard's per-box JSON.
40
+ */
41
+ export type VaultRootKeyType = 'secp256k1Multisig' | 'ecdsaMpc' | 'eddsaMpc' | 'ed25519Multisig';
42
+ /**
43
+ * Fixed render/scan order of the four roots on the vault keycard. Kept stable so a
44
+ * generated keycard and a re-scanned one line up slot-for-slot.
45
+ */
46
+ export declare const VAULT_ROOT_ORDER: VaultRootKeyType[];
47
+ /**
48
+ * The JSON object encoded in a vault keycard box (A/B/C): the four roots keyed by
49
+ * {@link VaultRootKeyType}. Values are per-root ciphertext for A/B (encryptedPrv or
50
+ * reducedEncryptedPrv) or public keys for C. The root-key-type keys are self-identifying, so a
51
+ * consumer parses by key rather than by size/offset.
52
+ */
53
+ export type VaultKeycardRoots = Record<VaultRootKeyType, string>;
54
+ export interface GenerateVaultQrDataParams extends GenerateQrDataCoinParams {
55
+ roots: Record<VaultRootKeyType, KeychainsTriplet>;
56
+ }
37
57
  export type GenerateKeycardParams = GenerateQrDataBaseParams & (GenerateQrDataForKeychainParams | GenerateQrDataParams | GenerateLightningQrDataParams);
38
58
  export interface IDrawKeyCard {
39
59
  activationCode?: string;
@@ -42,6 +62,7 @@ export interface IDrawKeyCard {
42
62
  questions: FAQ[];
43
63
  walletLabel?: string;
44
64
  curve?: KeyCurve;
65
+ pageBreakBeforeIndices?: number[];
45
66
  }
46
67
  export interface FAQ {
47
68
  question: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,+BAA+B;IAE9C,aAAa,EAAE,QAAQ,CAAC;IAExB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IAEvC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAIzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAIhC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB;IAEpE,cAAc,EAAE,QAAQ,CAAC;IAEzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,aAAa,EAAE,QAAQ,CAAC;IAExB,YAAY,EAAE,QAAQ,CAAC;IAEvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA8B,SAAQ,wBAAwB;IAE7E,gBAAgB,EAAE,QAAQ,CAAC;CAC5B;AAED,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,GAC1D,CAAC,+BAA+B,GAAG,oBAAoB,GAAG,6BAA6B,CAAC,CAAC;AAE3F,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAE9E,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qBAAqB,CAAC,EAAE,0BAA0B,CAAC;IACnD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;CAClD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/dist/src/types.js CHANGED
@@ -1,3 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuY3J5cHRpb25WZXJzaW9uLCBLZXljaGFpbiB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiwgS2V5Q3VydmUgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVRckRhdGFCYXNlUGFyYW1zIHtcbiAgYWN0aXZhdGlvbkNvZGU/OiBzdHJpbmc7XG4gIGtleUNhcmRJbWFnZT86IEhUTUxJbWFnZUVsZW1lbnQ7XG4gIHdhbGxldExhYmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVRckRhdGFGb3JLZXljaGFpblBhcmFtcyB7XG4gIC8vIFRoZSBCaXRHbyBrZXljaGFpbiBhcyBpdCBpcyByZXR1cm5lZCBmcm9tIHRoZSBCaXRHbyBBUEkgdXBvbiBjcmVhdGlvblxuICBiaXRnb0tleWNoYWluOiBLZXljaGFpbjtcbiAgLy8gVGhlIGN1cnZlIHVzZWQgZm9yIHRoZSBrZXlcbiAgY3VydmU6IEtleUN1cnZlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUXJEYXRhQ29pblBhcmFtcyB7XG4gIC8vIFRoZSBjb2luIG9mIHRoZSB3YWxsZXQgdGhhdCB3YXMvIGlzIGFib3V0IHRvIGJlIGNyZWF0ZWRcbiAgY29pbjogUmVhZG9ubHk8QmFzZUNvaW4+O1xuICAvLyBBIGNvZGUgdGhhdCBjYW4gYmUgdXNlZCB0byBlbmNyeXB0IHRoZSB3YWxsZXQgcGFzc3dvcmQgdG8uXG4gIC8vIElmIGJvdGggdGhlIHBhc3NwaHJhc2UgYW5kIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUgYXJlIHBhc3NlZCwgdGhlbiB0aGlzIGNvZGUgZW5jcnlwdHMgdGhlIHBhc3NwaHJhc2Ugd2l0aCB0aGVcbiAgLy8gcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSBhbmQgcHV0cyB0aGUgcmVzdWx0IGludG8gQm94IEQuIEFsbG93cyByZWNvdmVyaWVzIG9mIHRoZSB3YWxsZXQgcGFzc3dvcmQuXG4gIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIC8vIFRoZSB3YWxsZXQgcGFzc3dvcmRcbiAgLy8gSWYgYm90aCB0aGUgcGFzc3BocmFzZSBhbmQgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSBhcmUgcGFzc2VkLCB0aGVuIHRoaXMgY29kZSBlbmNyeXB0cyB0aGUgcGFzc3BocmFzZSB3aXRoIHRoZVxuICAvLyBwYXNzY29kZUVuY3J5cHRpb25Db2RlIGFuZCBwdXRzIHRoZSByZXN1bHQgaW50byBCb3ggRC4gQWxsb3dzIHJlY292ZXJpZXMgb2YgdGhlIHdhbGxldCBwYXNzd29yZC5cbiAgcGFzc3BocmFzZT86IHN0cmluZztcbiAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZVFyRGF0YVBhcmFtcyBleHRlbmRzIEdlbmVyYXRlUXJEYXRhQ29pblBhcmFtcyB7XG4gIC8vIFRoZSBiYWNrdXAga2V5Y2hhaW4gYXMgaXQgaXMgcmV0dXJuZWQgZnJvbSB0aGUgQml0R28gQVBJIHVwb24gY3JlYXRpb25cbiAgYmFja3VwS2V5Y2hhaW46IEtleWNoYWluO1xuICAvLyBUaGUgbmFtZSBvZiB0aGUgM3JkIHBhcnR5IHByb3ZpZGVyIG9mIHRoZSBiYWNrdXAga2V5IGlmIG5laXRoZXIgdGhlIHVzZXIgbm9yIEJpdEdvIHN0b3JlcyBpdFxuICBiYWNrdXBLZXlQcm92aWRlcj86IHN0cmluZztcbiAgLy8gVGhlIGtleSBpZCBvZiB0aGUgYmFja3VwIGtleSwgb25seSB1c2VkIGZvciBjb2xkIGtleXNcbiAgYmFja3VwTWFzdGVyS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBrZXkgdXNlZCB0byBkZXJpdmUgdGhlIGJhY2t1cCBrZXkgdXNpbmcge0BsaW5rIGJhY2t1cE1hc3RlcktleX0gYXMgdGhlIHNlZWQuXG4gICAqL1xuICBiYWNrdXBNYXN0ZXJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIC8vIFRoZSBCaXRHbyBrZXljaGFpbiBhcyBpdCBpcyByZXR1cm5lZCBmcm9tIHRoZSBCaXRHbyBBUEkgdXBvbiBjcmVhdGlvblxuICBiaXRnb0tleWNoYWluOiBLZXljaGFpbjtcbiAgLy8gVGhlIHVzZXIga2V5Y2hhaW4gYXMgaXQgaXMgcmV0dXJuZWQgZnJvbSB0aGUgQml0R28gQVBJIHVwb24gY3JlYXRpb25cbiAgdXNlcktleWNoYWluOiBLZXljaGFpbjtcbiAgLy8gVGhlIGtleSBpZCBvZiB0aGUgdXNlciBrZXksIG9ubHkgdXNlZCBmb3IgY29sZCBrZXlzXG4gIHVzZXJNYXN0ZXJLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGtleSB1c2VkIHRvIGRlcml2ZSB0aGUgdXNlciBrZXkgdXNpbmcge0BsaW5rIHVzZXJNYXN0ZXJLZXl9IGFzIHRoZSBzZWVkLlxuICAgKi9cbiAgdXNlck1hc3RlclB1YmxpY0tleT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZUxpZ2h0bmluZ1FyRGF0YVBhcmFtcyBleHRlbmRzIEdlbmVyYXRlUXJEYXRhQ29pblBhcmFtcyB7XG4gIC8vIFRoZSB1c2VyIGF1dGhlbnRpY2F0aW9uIGtleWNoYWluLCB1c2VkIHRvIHNpZ24gcGF5bWVudCByZXF1ZXN0cyBhbmQgd2FsbGV0IGNvbmZpZ3VyYXRpb24gdXBkYXRlc1xuICB1c2VyQXV0aEtleWNoYWluOiBLZXljaGFpbjtcbn1cblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVLZXljYXJkUGFyYW1zID0gR2VuZXJhdGVRckRhdGFCYXNlUGFyYW1zICZcbiAgKEdlbmVyYXRlUXJEYXRhRm9yS2V5Y2hhaW5QYXJhbXMgfCBHZW5lcmF0ZVFyRGF0YVBhcmFtcyB8IEdlbmVyYXRlTGlnaHRuaW5nUXJEYXRhUGFyYW1zKTtcblxuZXhwb3J0IGludGVyZmFjZSBJRHJhd0tleUNhcmQge1xuICBhY3RpdmF0aW9uQ29kZT86IHN0cmluZztcbiAga2V5Q2FyZEltYWdlPzogSFRNTEltYWdlRWxlbWVudDtcbiAgcXJEYXRhOiBRckRhdGE7XG4gIHF1ZXN0aW9uczogRkFRW107XG4gIHdhbGxldExhYmVsPzogc3RyaW5nO1xuICBjdXJ2ZT86IEtleUN1cnZlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZBUSB7XG4gIHF1ZXN0aW9uOiBzdHJpbmc7XG4gIC8vIHRoZSBhbnN3ZXIgdG8gdGhlIHF1ZXN0aW9uLCBhbHJlYWR5IHNwbGl0IGludG8gaW5kaXZpZHVhbCBsaW5lcyBvZiB0ZXh0XG4gIGFuc3dlcjogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXJEYXRhRW50cnkge1xuICBkYXRhOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpY01hc3RlcktleT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgTWFzdGVyUHVibGljS2V5UXJEYXRhRW50cnkgPSBPbWl0PFFyRGF0YUVudHJ5LCAncHVibGljTWFzdGVyS2V5Jz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXJEYXRhIHtcbiAgYmFja3VwPzogUXJEYXRhRW50cnk7XG4gIGJhY2t1cE1hc3RlclB1YmxpY0tleT86IE1hc3RlclB1YmxpY0tleVFyRGF0YUVudHJ5O1xuICBiaXRnbz86IFFyRGF0YUVudHJ5O1xuICBwYXNzY29kZT86IFFyRGF0YUVudHJ5O1xuICBjdXJ2ZT86IEtleUN1cnZlO1xuICB1c2VyOiBRckRhdGFFbnRyeTtcbiAgdXNlck1hc3RlclB1YmxpY0tleT86IE1hc3RlclB1YmxpY0tleVFyRGF0YUVudHJ5O1xufVxuIl19
3
+ exports.VAULT_ROOT_ORDER = void 0;
4
+ /**
5
+ * Fixed render/scan order of the four roots on the vault keycard. Kept stable so a
6
+ * generated keycard and a re-scanned one line up slot-for-slot.
7
+ */
8
+ exports.VAULT_ROOT_ORDER = ['secp256k1Multisig', 'ecdsaMpc', 'eddsaMpc', 'ed25519Multisig'];
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0VBOzs7R0FHRztBQUNVLFFBQUEsZ0JBQWdCLEdBQXVCLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5jcnlwdGlvblZlcnNpb24sIEtleWNoYWluLCBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luLCBLZXlDdXJ2ZSB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZVFyRGF0YUJhc2VQYXJhbXMge1xuICBhY3RpdmF0aW9uQ29kZT86IHN0cmluZztcbiAga2V5Q2FyZEltYWdlPzogSFRNTEltYWdlRWxlbWVudDtcbiAgd2FsbGV0TGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZVFyRGF0YUZvcktleWNoYWluUGFyYW1zIHtcbiAgLy8gVGhlIEJpdEdvIGtleWNoYWluIGFzIGl0IGlzIHJldHVybmVkIGZyb20gdGhlIEJpdEdvIEFQSSB1cG9uIGNyZWF0aW9uXG4gIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluO1xuICAvLyBUaGUgY3VydmUgdXNlZCBmb3IgdGhlIGtleVxuICBjdXJ2ZTogS2V5Q3VydmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVRckRhdGFDb2luUGFyYW1zIHtcbiAgLy8gVGhlIGNvaW4gb2YgdGhlIHdhbGxldCB0aGF0IHdhcy8gaXMgYWJvdXQgdG8gYmUgY3JlYXRlZFxuICBjb2luOiBSZWFkb25seTxCYXNlQ29pbj47XG4gIC8vIEEgY29kZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGVuY3J5cHQgdGhlIHdhbGxldCBwYXNzd29yZCB0by5cbiAgLy8gSWYgYm90aCB0aGUgcGFzc3BocmFzZSBhbmQgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSBhcmUgcGFzc2VkLCB0aGVuIHRoaXMgY29kZSBlbmNyeXB0cyB0aGUgcGFzc3BocmFzZSB3aXRoIHRoZVxuICAvLyBwYXNzY29kZUVuY3J5cHRpb25Db2RlIGFuZCBwdXRzIHRoZSByZXN1bHQgaW50byBCb3ggRC4gQWxsb3dzIHJlY292ZXJpZXMgb2YgdGhlIHdhbGxldCBwYXNzd29yZC5cbiAgcGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgLy8gVGhlIHdhbGxldCBwYXNzd29yZFxuICAvLyBJZiBib3RoIHRoZSBwYXNzcGhyYXNlIGFuZCBwYXNzY29kZUVuY3J5cHRpb25Db2RlIGFyZSBwYXNzZWQsIHRoZW4gdGhpcyBjb2RlIGVuY3J5cHRzIHRoZSBwYXNzcGhyYXNlIHdpdGggdGhlXG4gIC8vIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUgYW5kIHB1dHMgdGhlIHJlc3VsdCBpbnRvIEJveCBELiBBbGxvd3MgcmVjb3ZlcmllcyBvZiB0aGUgd2FsbGV0IHBhc3N3b3JkLlxuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUXJEYXRhUGFyYW1zIGV4dGVuZHMgR2VuZXJhdGVRckRhdGFDb2luUGFyYW1zIHtcbiAgLy8gVGhlIGJhY2t1cCBrZXljaGFpbiBhcyBpdCBpcyByZXR1cm5lZCBmcm9tIHRoZSBCaXRHbyBBUEkgdXBvbiBjcmVhdGlvblxuICBiYWNrdXBLZXljaGFpbjogS2V5Y2hhaW47XG4gIC8vIFRoZSBuYW1lIG9mIHRoZSAzcmQgcGFydHkgcHJvdmlkZXIgb2YgdGhlIGJhY2t1cCBrZXkgaWYgbmVpdGhlciB0aGUgdXNlciBub3IgQml0R28gc3RvcmVzIGl0XG4gIGJhY2t1cEtleVByb3ZpZGVyPzogc3RyaW5nO1xuICAvLyBUaGUga2V5IGlkIG9mIHRoZSBiYWNrdXAga2V5LCBvbmx5IHVzZWQgZm9yIGNvbGQga2V5c1xuICBiYWNrdXBNYXN0ZXJLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGtleSB1c2VkIHRvIGRlcml2ZSB0aGUgYmFja3VwIGtleSB1c2luZyB7QGxpbmsgYmFja3VwTWFzdGVyS2V5fSBhcyB0aGUgc2VlZC5cbiAgICovXG4gIGJhY2t1cE1hc3RlclB1YmxpY0tleT86IHN0cmluZztcbiAgLy8gVGhlIEJpdEdvIGtleWNoYWluIGFzIGl0IGlzIHJldHVybmVkIGZyb20gdGhlIEJpdEdvIEFQSSB1cG9uIGNyZWF0aW9uXG4gIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluO1xuICAvLyBUaGUgdXNlciBrZXljaGFpbiBhcyBpdCBpcyByZXR1cm5lZCBmcm9tIHRoZSBCaXRHbyBBUEkgdXBvbiBjcmVhdGlvblxuICB1c2VyS2V5Y2hhaW46IEtleWNoYWluO1xuICAvLyBUaGUga2V5IGlkIG9mIHRoZSB1c2VyIGtleSwgb25seSB1c2VkIGZvciBjb2xkIGtleXNcbiAgdXNlck1hc3RlcktleT86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUga2V5IHVzZWQgdG8gZGVyaXZlIHRoZSB1c2VyIGtleSB1c2luZyB7QGxpbmsgdXNlck1hc3RlcktleX0gYXMgdGhlIHNlZWQuXG4gICAqL1xuICB1c2VyTWFzdGVyUHVibGljS2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlTGlnaHRuaW5nUXJEYXRhUGFyYW1zIGV4dGVuZHMgR2VuZXJhdGVRckRhdGFDb2luUGFyYW1zIHtcbiAgLy8gVGhlIHVzZXIgYXV0aGVudGljYXRpb24ga2V5Y2hhaW4sIHVzZWQgdG8gc2lnbiBwYXltZW50IHJlcXVlc3RzIGFuZCB3YWxsZXQgY29uZmlndXJhdGlvbiB1cGRhdGVzXG4gIHVzZXJBdXRoS2V5Y2hhaW46IEtleWNoYWluO1xufVxuXG4vKipcbiAqIElkZW50aWZpZXIgZm9yIG9uZSBvZiBhIHZhdWx0J3MgZm91ciByb290cyAob25lIHBlciBzaWduaW5nIHNjaGVtZSkuIEVhY2ggdmFsdWUgaXMgdGhlXG4gKiByb290J3MgYHJvb3RLZXlUeXBlYCwgd2hpY2ggaXMgYWxzbyB0aGUga2V5IHVzZWQgaW4gdGhlIGtleWNhcmQncyBwZXItYm94IEpTT04uXG4gKi9cbmV4cG9ydCB0eXBlIFZhdWx0Um9vdEtleVR5cGUgPSAnc2VjcDI1NmsxTXVsdGlzaWcnIHwgJ2VjZHNhTXBjJyB8ICdlZGRzYU1wYycgfCAnZWQyNTUxOU11bHRpc2lnJztcblxuLyoqXG4gKiBGaXhlZCByZW5kZXIvc2NhbiBvcmRlciBvZiB0aGUgZm91ciByb290cyBvbiB0aGUgdmF1bHQga2V5Y2FyZC4gS2VwdCBzdGFibGUgc28gYVxuICogZ2VuZXJhdGVkIGtleWNhcmQgYW5kIGEgcmUtc2Nhbm5lZCBvbmUgbGluZSB1cCBzbG90LWZvci1zbG90LlxuICovXG5leHBvcnQgY29uc3QgVkFVTFRfUk9PVF9PUkRFUjogVmF1bHRSb290S2V5VHlwZVtdID0gWydzZWNwMjU2azFNdWx0aXNpZycsICdlY2RzYU1wYycsICdlZGRzYU1wYycsICdlZDI1NTE5TXVsdGlzaWcnXTtcblxuLyoqXG4gKiBUaGUgSlNPTiBvYmplY3QgZW5jb2RlZCBpbiBhIHZhdWx0IGtleWNhcmQgYm94IChBL0IvQyk6IHRoZSBmb3VyIHJvb3RzIGtleWVkIGJ5XG4gKiB7QGxpbmsgVmF1bHRSb290S2V5VHlwZX0uIFZhbHVlcyBhcmUgcGVyLXJvb3QgY2lwaGVydGV4dCBmb3IgQS9CIChlbmNyeXB0ZWRQcnYgb3JcbiAqIHJlZHVjZWRFbmNyeXB0ZWRQcnYpIG9yIHB1YmxpYyBrZXlzIGZvciBDLiBUaGUgcm9vdC1rZXktdHlwZSBrZXlzIGFyZSBzZWxmLWlkZW50aWZ5aW5nLCBzbyBhXG4gKiBjb25zdW1lciBwYXJzZXMgYnkga2V5IHJhdGhlciB0aGFuIGJ5IHNpemUvb2Zmc2V0LlxuICovXG5leHBvcnQgdHlwZSBWYXVsdEtleWNhcmRSb290cyA9IFJlY29yZDxWYXVsdFJvb3RLZXlUeXBlLCBzdHJpbmc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlVmF1bHRRckRhdGFQYXJhbXMgZXh0ZW5kcyBHZW5lcmF0ZVFyRGF0YUNvaW5QYXJhbXMge1xuICAvLyBUaGUgZm91ciByb290IHRyaXBsZXRzICh1c2VyL2JhY2t1cC9iaXRnbyBrZXljaGFpbnMpLCBrZXllZCBieSByb290S2V5VHlwZS5cbiAgcm9vdHM6IFJlY29yZDxWYXVsdFJvb3RLZXlUeXBlLCBLZXljaGFpbnNUcmlwbGV0Pjtcbn1cblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVLZXljYXJkUGFyYW1zID0gR2VuZXJhdGVRckRhdGFCYXNlUGFyYW1zICZcbiAgKEdlbmVyYXRlUXJEYXRhRm9yS2V5Y2hhaW5QYXJhbXMgfCBHZW5lcmF0ZVFyRGF0YVBhcmFtcyB8IEdlbmVyYXRlTGlnaHRuaW5nUXJEYXRhUGFyYW1zKTtcblxuZXhwb3J0IGludGVyZmFjZSBJRHJhd0tleUNhcmQge1xuICBhY3RpdmF0aW9uQ29kZT86IHN0cmluZztcbiAga2V5Q2FyZEltYWdlPzogSFRNTEltYWdlRWxlbWVudDtcbiAgcXJEYXRhOiBRckRhdGE7XG4gIHF1ZXN0aW9uczogRkFRW107XG4gIHdhbGxldExhYmVsPzogc3RyaW5nO1xuICBjdXJ2ZT86IEtleUN1cnZlO1xuICAvLyBCb3ggaW5kaWNlcyB0byBzdGFydCBhIG5ldyBwYWdlIGJlZm9yZS4gT21pdCBmb3IgdGhlIGRlZmF1bHQgd2FsbGV0IGxheW91dC5cbiAgcGFnZUJyZWFrQmVmb3JlSW5kaWNlcz86IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZBUSB7XG4gIHF1ZXN0aW9uOiBzdHJpbmc7XG4gIC8vIHRoZSBhbnN3ZXIgdG8gdGhlIHF1ZXN0aW9uLCBhbHJlYWR5IHNwbGl0IGludG8gaW5kaXZpZHVhbCBsaW5lcyBvZiB0ZXh0XG4gIGFuc3dlcjogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXJEYXRhRW50cnkge1xuICBkYXRhOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpY01hc3RlcktleT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgTWFzdGVyUHVibGljS2V5UXJEYXRhRW50cnkgPSBPbWl0PFFyRGF0YUVudHJ5LCAncHVibGljTWFzdGVyS2V5Jz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXJEYXRhIHtcbiAgYmFja3VwPzogUXJEYXRhRW50cnk7XG4gIGJhY2t1cE1hc3RlclB1YmxpY0tleT86IE1hc3RlclB1YmxpY0tleVFyRGF0YUVudHJ5O1xuICBiaXRnbz86IFFyRGF0YUVudHJ5O1xuICBwYXNzY29kZT86IFFyRGF0YUVudHJ5O1xuICBjdXJ2ZT86IEtleUN1cnZlO1xuICB1c2VyOiBRckRhdGFFbnRyeTtcbiAgdXNlck1hc3RlclB1YmxpY0tleT86IE1hc3RlclB1YmxpY0tleVFyRGF0YUVudHJ5O1xufVxuIl19