@bitgo-beta/abstract-lightning 1.0.0-alpha.274 → 1.0.0-alpha.276

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,6 +1,9 @@
1
1
  import * as utxolib from '@bitgo-beta/utxo-lib';
2
- import { WatchOnlyAccount } from '../codecs';
2
+ import { Psbt } from '@bitgo-beta/utxo-lib';
3
+ import { WatchOnlyAccount, WithdrawBaseOutputUTXO } from '../codecs';
3
4
  import { LightningOnchainRecipient } from '@bitgo/public-types';
5
+ export declare function parsePsbtOutputs(psbt: Psbt, network: utxolib.Network): WithdrawBaseOutputUTXO<bigint>[];
6
+ export declare function verifyChangeAddress(output: WithdrawBaseOutputUTXO<bigint>, accounts: WatchOnlyAccount[], network: utxolib.Network): void;
4
7
  /**
5
8
  * Validates the funded psbt before creating the signatures for withdraw.
6
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"parseWithdrawPsbt.d.ts","sourceRoot":"","sources":["../../../src/lightning/parseWithdrawPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAA0B,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AA2HhE;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,EAAE,yBAAyB,EAAE,EACvC,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,IAAI,CAsBN"}
1
+ {"version":3,"file":"parseWithdrawPsbt.d.ts","sourceRoot":"","sources":["../../../src/lightning/parseWithdrawPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAa,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAyBhE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,CA8BvG;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,EACtC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,IAAI,CA4DN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,EAAE,yBAAyB,EAAE,EACvC,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,IAAI,CAsBN"}
@@ -33,6 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.parsePsbtOutputs = parsePsbtOutputs;
37
+ exports.verifyChangeAddress = verifyChangeAddress;
36
38
  exports.validatePsbtForWithdraw = validatePsbtForWithdraw;
37
39
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
38
40
  const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
@@ -152,4 +154,4 @@ function validatePsbtForWithdraw(psbtHex, network, recipients, accounts) {
152
154
  }
153
155
  });
154
156
  }
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VXaXRoZHJhd1BzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGlnaHRuaW5nL3BhcnNlV2l0aGRyYXdQc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUlBLDBEQTJCQztBQTVKRCw4REFBZ0Q7QUFDaEQsbURBQXVEO0FBSXZELHFEQU0wQjtBQUUxQixTQUFTLG1CQUFtQixDQUFDLGNBQXNCO0lBS2pELE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsSUFBSSxPQUFPLEtBQUssc0NBQXFCLElBQUksT0FBTyxLQUFLLDhCQUFhLElBQUksT0FBTyxLQUFLLDZCQUFZLEVBQUUsQ0FBQztRQUMvRixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFVLEVBQUUsT0FBd0I7SUFDNUQsTUFBTSxhQUFhLEdBQXFDLEVBQUUsQ0FBQztJQUMzRCxJQUFJLGVBQTRDLENBQUM7SUFFakQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVB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O0lBRTVCLE1BQU0sVUFBVSxHQUFHLGVBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDL0QsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN6QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUM7Z0JBQ0gsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzRCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUMvQixJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDekYsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLE1BQU0sQ0FBQyxPQUFPLGVBQWUsTUFBTSxDQUFDLEtBQUssK0JBQStCLENBQUMsQ0FBQztZQUMzRyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgaXNNYWlubmV0LCBQc2J0IH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgV2F0Y2hPbmx5QWNjb3VudCwgV2l0aGRyYXdCYXNlT3V0cHV0VVRYTyB9IGZyb20gJy4uL2NvZGVjcyc7XG5pbXBvcnQgeyBMaWdodG5pbmdPbmNoYWluUmVjaXBpZW50IH0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQgeyBCaXAzMkRlcml2YXRpb24gfSBmcm9tICdiaXAxNzQvc3JjL2xpYi9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIEV4dGVuZGVkS2V5QWRkcmVzc1B1cnBvc2UsXG4gIFBVUlBPU0VfUDJUUixcbiAgUFVSUE9TRV9QMldLSCxcbiAgUFVSUE9TRV9XUkFQUEVEX1AyV0tILFxuICByZXZlcnRYcHViUHJlZml4LFxufSBmcm9tICcuL2xpZ2h0bmluZ1V0aWxzJztcblxuZnVuY3Rpb24gcGFyc2VEZXJpdmF0aW9uUGF0aChkZXJpdmF0aW9uUGF0aDogc3RyaW5nKToge1xuICBwdXJwb3NlOiBFeHRlbmRlZEtleUFkZHJlc3NQdXJwb3NlO1xuICBjaGFuZ2U6IG51bWJlcjtcbiAgYWRkcmVzc0luZGV4OiBudW1iZXI7XG59IHtcbiAgY29uc3QgcGF0aFNlZ21lbnRzID0gZGVyaXZhdGlvblBhdGguc3BsaXQoJy8nKTtcbiAgY29uc3QgcHVycG9zZSA9IE51bWJlcihwYXRoU2VnbWVudHNbMV0ucmVwbGFjZSgvJy9nLCAnJykpO1xuICBjb25zdCBjaGFuZ2UgPSBOdW1iZXIocGF0aFNlZ21lbnRzW3BhdGhTZWdtZW50cy5sZW5ndGggLSAyXSk7XG4gIGNvbnN0IGFkZHJlc3NJbmRleCA9IE51bWJlcihwYXRoU2VnbWVudHNbcGF0aFNlZ21lbnRzLmxlbmd0aCAtIDFdKTtcbiAgaWYgKHB1cnBvc2UgIT09IFBVUlBPU0VfV1JBUFBFRF9QMldLSCAmJiBwdXJwb3NlICE9PSBQVVJQT1NFX1AyV0tIICYmIHB1cnBvc2UgIT09IFBVUlBPU0VfUDJUUikge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgcHVycG9zZSBpbiBkZXJpdmF0aW9uIHBhdGg6ICR7cHVycG9zZX1gKTtcbiAgfVxuICByZXR1cm4geyBwdXJwb3NlLCBjaGFuZ2UsIGFkZHJlc3NJbmRleCB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZVBzYnRPdXRwdXRzKHBzYnQ6IFBzYnQsIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IFdpdGhkcmF3QmFzZU91dHB1dFVUWE88YmlnaW50PltdIHtcbiAgY29uc3QgcGFyc2VkT3V0cHV0czogV2l0aGRyYXdCYXNlT3V0cHV0VVRYTzxiaWdpbnQ+W10gPSBbXTtcbiAgbGV0IGJpcDMyRGVyaXZhdGlvbjogQmlwMzJEZXJpdmF0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcHNidC5kYXRhLm91dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBvdXRwdXQgPSBwc2J0LmRhdGEub3V0cHV0c1tpXTtcbiAgICBjb25zdCB0eE91dHB1dCA9IHBzYnQudHhPdXRwdXRzW2ldO1xuXG4gICAgbGV0IGFkZHJlc3MgPSAnJztcbiAgICBjb25zdCB2YWx1ZSA9IHR4T3V0cHV0LnZhbHVlO1xuICAgIGxldCBpc0NoYW5nZSA9IGZhbHNlO1xuXG4gICAgaWYgKG91dHB1dC5iaXAzMkRlcml2YXRpb24gJiYgb3V0cHV0LmJpcDMyRGVyaXZhdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICBpc0NoYW5nZSA9IHRydWU7XG4gICAgICBiaXAzMkRlcml2YXRpb24gPSBvdXRwdXQuYmlwMzJEZXJpdmF0aW9uWzBdO1xuICAgIH1cbiAgICBpZiAodHhPdXRwdXQuc2NyaXB0KSB7XG4gICAgICBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQodHhPdXRwdXQuc2NyaXB0LCBuZXR3b3JrKTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWVCaWdJbnQgPSBCaWdJbnQodmFsdWUpO1xuXG4gICAgcGFyc2VkT3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3MsXG4gICAgICB2YWx1ZTogdmFsdWVCaWdJbnQsXG4gICAgICBjaGFuZ2U6IGlzQ2hhbmdlLFxuICAgICAgYmlwMzJEZXJpdmF0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZE91dHB1dHM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUNoYW5nZUFkZHJlc3MoXG4gIG91dHB1dDogV2l0aGRyYXdCYXNlT3V0cHV0VVRYTzxiaWdpbnQ+LFxuICBhY2NvdW50czogV2F0Y2hPbmx5QWNjb3VudFtdLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IHZvaWQge1xuICBpZiAoIW91dHB1dC5iaXAzMkRlcml2YXRpb24gfHwgIW91dHB1dC5iaXAzMkRlcml2YXRpb24ucGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgYmlwMzJEZXJpdmF0aW9uIHBhdGggbm90IGZvdW5kIGZvciBjaGFuZ2UgYWRkcmVzc2ApO1xuICB9XG4gIC8vIGRlcml2YXRpb24gcGF0aCBleGFtcGxlOiBtLzg0Jy8wJy8wJy8xLzBcbiAgY29uc3QgeyBwdXJwb3NlLCBjaGFuZ2UsIGFkZHJlc3NJbmRleCB9ID0gcGFyc2VEZXJpdmF0aW9uUGF0aChvdXRwdXQuYmlwMzJEZXJpdmF0aW9uLnBhdGgpO1xuXG4gIC8vIEZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgYWNjb3VudCB1c2luZyB0aGUgcHVycG9zZVxuICBjb25zdCBhY2NvdW50ID0gYWNjb3VudHMuZmluZCgoYWNjKSA9PiBhY2MucHVycG9zZSA9PT0gcHVycG9zZSk7XG4gIGlmICghYWNjb3VudCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQWNjb3VudCBub3QgZm91bmQgZm9yIHB1cnBvc2U6ICR7cHVycG9zZX1gKTtcbiAgfVxuXG4gIC8vIGNvbnZlcnQgdXB1YiwgdnB1YiwgZXRjIHByZWZpeGVzIHRvIHhwdWIgYXMgdXR4b2xpYiBkb2Vzbid0IHN1cHBvcnQgdGhlc2VcbiAgY29uc3QgY29udmVydGVkWHB1YiA9IHJldmVydFhwdWJQcmVmaXgoYWNjb3VudC54cHViLCBwdXJwb3NlLCBpc01haW5uZXQobmV0d29yaykpO1xuICAvLyBDcmVhdGUgYSBCSVAzMiBub2RlIGZyb20gdGhlIHhwdWJcbiAgY29uc3QgeHB1Yk5vZGUgPSB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgoY29udmVydGVkWHB1YiwgbmV0d29yayk7XG5cbiAgLy8gRGVyaXZlIHRoZSBwdWJsaWMga2V5IGZyb20gdGhlIHhwdWIgdXNpbmcgdGhlIGNoYW5nZSBhbmQgYWRkcmVzcyBpbmRleFxuICBjb25zdCBkZXJpdmVkUHVia2V5ID0geHB1Yk5vZGUuZGVyaXZlKGNoYW5nZSkuZGVyaXZlKGFkZHJlc3NJbmRleCkucHVibGljS2V5O1xuXG4gIGlmIChkZXJpdmVkUHVia2V5LnRvU3RyaW5nKCdoZXgnKSAhPT0gb3V0cHV0LmJpcDMyRGVyaXZhdGlvbi5wdWJrZXkudG9TdHJpbmcoJ2hleCcpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYERlcml2ZWQgcHVia2V5IGRvZXMgbm90IG1hdGNoIGZvciBhZGRyZXNzOiAke291dHB1dC5hZGRyZXNzfSwgZGVyaXZlZDogJHtkZXJpdmVkUHVia2V5LnRvU3RyaW5nKFxuICAgICAgICAnaGV4J1xuICAgICAgKX0sIGV4cGVjdGVkOiAke291dHB1dC5iaXAzMkRlcml2YXRpb24ucHVia2V5LnRvU3RyaW5nKCdoZXgnKX1gXG4gICAgKTtcbiAgfVxuXG4gIC8vIERldGVybWluZSB0aGUgY29ycmVjdCBwYXltZW50IHR5cGUgYmFzZWQgb24gdGhlIHB1cnBvc2VcbiAgbGV0IGRlcml2ZWRBZGRyZXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHN3aXRjaCAocHVycG9zZSkge1xuICAgIGNhc2UgNDk6IC8vIFAyU0gtUDJXUEtIIChOZXN0ZWQgU2VnV2l0KVxuICAgICAgZGVyaXZlZEFkZHJlc3MgPSB1dHhvbGliLnBheW1lbnRzLnAyc2goe1xuICAgICAgICByZWRlZW06IHV0eG9saWIucGF5bWVudHMucDJ3cGtoKHtcbiAgICAgICAgICBwdWJrZXk6IGRlcml2ZWRQdWJrZXksXG4gICAgICAgICAgbmV0d29yayxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldHdvcmssXG4gICAgICB9KS5hZGRyZXNzO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA4NDogLy8gUDJXUEtIIChOYXRpdmUgU2VnV2l0KVxuICAgICAgZGVyaXZlZEFkZHJlc3MgPSB1dHhvbGliLnBheW1lbnRzLnAyd3BraCh7XG4gICAgICAgIHB1YmtleTogZGVyaXZlZFB1YmtleSxcbiAgICAgICAgbmV0d29yayxcbiAgICAgIH0pLmFkZHJlc3M7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDg2OiAvLyBQMlRSIChUYXByb290KVxuICAgICAgZGVyaXZlZEFkZHJlc3MgPSB1dHhvbGliLnBheW1lbnRzLnAydHIoe1xuICAgICAgICBwdWJrZXk6IGRlcml2ZWRQdWJrZXksXG4gICAgICAgIG5ldHdvcmssXG4gICAgICB9KS5hZGRyZXNzO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgcHVycG9zZTogJHtwdXJwb3NlfWApO1xuICB9XG5cbiAgaWYgKGRlcml2ZWRBZGRyZXNzICE9PSBvdXRwdXQuYWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBjaGFuZ2UgYWRkcmVzczogZXhwZWN0ZWQgJHtkZXJpdmVkQWRkcmVzc30sIGdvdCAke291dHB1dC5hZGRyZXNzfWApO1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSBmdW5kZWQgcHNidCBiZWZvcmUgY3JlYXRpbmcgdGhlIHNpZ25hdHVyZXMgZm9yIHdpdGhkcmF3LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQc2J0Rm9yV2l0aGRyYXcoXG4gIHBzYnRIZXg6IHN0cmluZyxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICByZWNpcGllbnRzOiBMaWdodG5pbmdPbmNoYWluUmVjaXBpZW50W10sXG4gIGFjY291bnRzOiBXYXRjaE9ubHlBY2NvdW50W11cbik6IHZvaWQge1xuICBjb25zdCBwYXJzZWRQc2J0ID0gUHNidC5mcm9tSGV4KHBzYnRIZXgsIHsgbmV0d29yazogbmV0d29yayB9KTtcbiAgY29uc3Qgb3V0cHV0cyA9IHBhcnNlUHNidE91dHB1dHMocGFyc2VkUHNidCwgbmV0d29yayk7XG4gIG91dHB1dHMuZm9yRWFjaCgob3V0cHV0KSA9PiB7XG4gICAgaWYgKG91dHB1dC5jaGFuZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZlcmlmeUNoYW5nZUFkZHJlc3Mob3V0cHV0LCBhY2NvdW50cywgbmV0d29yayk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gdmVyaWZ5IGNoYW5nZSBhZGRyZXNzOiAke2V9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBtYXRjaCA9IGZhbHNlO1xuICAgICAgcmVjaXBpZW50cy5mb3JFYWNoKChyZWNpcGllbnQpID0+IHtcbiAgICAgICAgaWYgKHJlY2lwaWVudC5hZGRyZXNzID09PSBvdXRwdXQuYWRkcmVzcyAmJiBCaWdJbnQocmVjaXBpZW50LmFtb3VudFNhdCkgPT09IG91dHB1dC52YWx1ZSkge1xuICAgICAgICAgIG1hdGNoID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUFNCVCBvdXRwdXQgJHtvdXRwdXQuYWRkcmVzc30gd2l0aCB2YWx1ZSAke291dHB1dC52YWx1ZX0gZG9lcyBub3QgbWF0Y2ggYW55IHJlY2lwaWVudGApO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VXaXRoZHJhd1BzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGlnaHRuaW5nL3BhcnNlV2l0aGRyYXdQc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBLDRDQThCQztBQUVELGtEQWdFQztBQUtELDBEQTJCQztBQTVKRCw4REFBZ0Q7QUFDaEQsbURBQXVEO0FBSXZELHFEQU0wQjtBQUUxQixTQUFTLG1CQUFtQixDQUFDLGNBQXNCO0lBS2pELE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsSUFBSSxPQUFPLEtBQUssc0NBQXFCLElBQUksT0FBTyxLQUFLLDhCQUFhLElBQUksT0FBTyxLQUFLLDZCQUFZLEVBQUUsQ0FBQztRQUMvRixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBVSxFQUFFLE9BQXdCO0lBQ25FLE1BQU0sYUFBYSxHQUFxQyxFQUFFLENBQUM7SUFDM0QsSUFBSSxlQUE0QyxDQUFDO0lBRWpELEtB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Yml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBpc01haW5uZXQsIFBzYnQgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBXYXRjaE9ubHlBY2NvdW50LCBXaXRoZHJhd0Jhc2VPdXRwdXRVVFhPIH0gZnJvbSAnLi4vY29kZWNzJztcbmltcG9ydCB7IExpZ2h0bmluZ09uY2hhaW5SZWNpcGllbnQgfSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcbmltcG9ydCB7IEJpcDMyRGVyaXZhdGlvbiB9IGZyb20gJ2JpcDE3NC9zcmMvbGliL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgRXh0ZW5kZWRLZXlBZGRyZXNzUHVycG9zZSxcbiAgUFVSUE9TRV9QMlRSLFxuICBQVVJQT1NFX1AyV0tILFxuICBQVVJQT1NFX1dSQVBQRURfUDJXS0gsXG4gIHJldmVydFhwdWJQcmVmaXgsXG59IGZyb20gJy4vbGlnaHRuaW5nVXRpbHMnO1xuXG5mdW5jdGlvbiBwYXJzZURlcml2YXRpb25QYXRoKGRlcml2YXRpb25QYXRoOiBzdHJpbmcpOiB7XG4gIHB1cnBvc2U6IEV4dGVuZGVkS2V5QWRkcmVzc1B1cnBvc2U7XG4gIGNoYW5nZTogbnVtYmVyO1xuICBhZGRyZXNzSW5kZXg6IG51bWJlcjtcbn0ge1xuICBjb25zdCBwYXRoU2VnbWVudHMgPSBkZXJpdmF0aW9uUGF0aC5zcGxpdCgnLycpO1xuICBjb25zdCBwdXJwb3NlID0gTnVtYmVyKHBhdGhTZWdtZW50c1sxXS5yZXBsYWNlKC8nL2csICcnKSk7XG4gIGNvbnN0IGNoYW5nZSA9IE51bWJlcihwYXRoU2VnbWVudHNbcGF0aFNlZ21lbnRzLmxlbmd0aCAtIDJdKTtcbiAgY29uc3QgYWRkcmVzc0luZGV4ID0gTnVtYmVyKHBhdGhTZWdtZW50c1twYXRoU2VnbWVudHMubGVuZ3RoIC0gMV0pO1xuICBpZiAocHVycG9zZSAhPT0gUFVSUE9TRV9XUkFQUEVEX1AyV0tIICYmIHB1cnBvc2UgIT09IFBVUlBPU0VfUDJXS0ggJiYgcHVycG9zZSAhPT0gUFVSUE9TRV9QMlRSKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBwdXJwb3NlIGluIGRlcml2YXRpb24gcGF0aDogJHtwdXJwb3NlfWApO1xuICB9XG4gIHJldHVybiB7IHB1cnBvc2UsIGNoYW5nZSwgYWRkcmVzc0luZGV4IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBzYnRPdXRwdXRzKHBzYnQ6IFBzYnQsIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IFdpdGhkcmF3QmFzZU91dHB1dFVUWE88YmlnaW50PltdIHtcbiAgY29uc3QgcGFyc2VkT3V0cHV0czogV2l0aGRyYXdCYXNlT3V0cHV0VVRYTzxiaWdpbnQ+W10gPSBbXTtcbiAgbGV0IGJpcDMyRGVyaXZhdGlvbjogQmlwMzJEZXJpdmF0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcHNidC5kYXRhLm91dHB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBvdXRwdXQgPSBwc2J0LmRhdGEub3V0cHV0c1tpXTtcbiAgICBjb25zdCB0eE91dHB1dCA9IHBzYnQudHhPdXRwdXRzW2ldO1xuXG4gICAgbGV0IGFkZHJlc3MgPSAnJztcbiAgICBjb25zdCB2YWx1ZSA9IHR4T3V0cHV0LnZhbHVlO1xuICAgIGxldCBpc0NoYW5nZSA9IGZhbHNlO1xuXG4gICAgaWYgKG91dHB1dC5iaXAzMkRlcml2YXRpb24gJiYgb3V0cHV0LmJpcDMyRGVyaXZhdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICBpc0NoYW5nZSA9IHRydWU7XG4gICAgICBiaXAzMkRlcml2YXRpb24gPSBvdXRwdXQuYmlwMzJEZXJpdmF0aW9uWzBdO1xuICAgIH1cbiAgICBpZiAodHhPdXRwdXQuc2NyaXB0KSB7XG4gICAgICBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQodHhPdXRwdXQuc2NyaXB0LCBuZXR3b3JrKTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWVCaWdJbnQgPSBCaWdJbnQodmFsdWUpO1xuXG4gICAgcGFyc2VkT3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3MsXG4gICAgICB2YWx1ZTogdmFsdWVCaWdJbnQsXG4gICAgICBjaGFuZ2U6IGlzQ2hhbmdlLFxuICAgICAgYmlwMzJEZXJpdmF0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZE91dHB1dHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlDaGFuZ2VBZGRyZXNzKFxuICBvdXRwdXQ6IFdpdGhkcmF3QmFzZU91dHB1dFVUWE88YmlnaW50PixcbiAgYWNjb3VudHM6IFdhdGNoT25seUFjY291bnRbXSxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiB2b2lkIHtcbiAgaWYgKCFvdXRwdXQuYmlwMzJEZXJpdmF0aW9uIHx8ICFvdXRwdXQuYmlwMzJEZXJpdmF0aW9uLnBhdGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGJpcDMyRGVyaXZhdGlvbiBwYXRoIG5vdCBmb3VuZCBmb3IgY2hhbmdlIGFkZHJlc3NgKTtcbiAgfVxuICAvLyBkZXJpdmF0aW9uIHBhdGggZXhhbXBsZTogbS84NCcvMCcvMCcvMS8wXG4gIGNvbnN0IHsgcHVycG9zZSwgY2hhbmdlLCBhZGRyZXNzSW5kZXggfSA9IHBhcnNlRGVyaXZhdGlvblBhdGgob3V0cHV0LmJpcDMyRGVyaXZhdGlvbi5wYXRoKTtcblxuICAvLyBGaW5kIHRoZSBjb3JyZXNwb25kaW5nIGFjY291bnQgdXNpbmcgdGhlIHB1cnBvc2VcbiAgY29uc3QgYWNjb3VudCA9IGFjY291bnRzLmZpbmQoKGFjYykgPT4gYWNjLnB1cnBvc2UgPT09IHB1cnBvc2UpO1xuICBpZiAoIWFjY291bnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEFjY291bnQgbm90IGZvdW5kIGZvciBwdXJwb3NlOiAke3B1cnBvc2V9YCk7XG4gIH1cblxuICAvLyBjb252ZXJ0IHVwdWIsIHZwdWIsIGV0YyBwcmVmaXhlcyB0byB4cHViIGFzIHV0eG9saWIgZG9lc24ndCBzdXBwb3J0IHRoZXNlXG4gIGNvbnN0IGNvbnZlcnRlZFhwdWIgPSByZXZlcnRYcHViUHJlZml4KGFjY291bnQueHB1YiwgcHVycG9zZSwgaXNNYWlubmV0KG5ldHdvcmspKTtcbiAgLy8gQ3JlYXRlIGEgQklQMzIgbm9kZSBmcm9tIHRoZSB4cHViXG4gIGNvbnN0IHhwdWJOb2RlID0gdXR4b2xpYi5iaXAzMi5mcm9tQmFzZTU4KGNvbnZlcnRlZFhwdWIsIG5ldHdvcmspO1xuXG4gIC8vIERlcml2ZSB0aGUgcHVibGljIGtleSBmcm9tIHRoZSB4cHViIHVzaW5nIHRoZSBjaGFuZ2UgYW5kIGFkZHJlc3MgaW5kZXhcbiAgY29uc3QgZGVyaXZlZFB1YmtleSA9IHhwdWJOb2RlLmRlcml2ZShjaGFuZ2UpLmRlcml2ZShhZGRyZXNzSW5kZXgpLnB1YmxpY0tleTtcblxuICBpZiAoZGVyaXZlZFB1YmtleS50b1N0cmluZygnaGV4JykgIT09IG91dHB1dC5iaXAzMkRlcml2YXRpb24ucHVia2V5LnRvU3RyaW5nKCdoZXgnKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBEZXJpdmVkIHB1YmtleSBkb2VzIG5vdCBtYXRjaCBmb3IgYWRkcmVzczogJHtvdXRwdXQuYWRkcmVzc30sIGRlcml2ZWQ6ICR7ZGVyaXZlZFB1YmtleS50b1N0cmluZyhcbiAgICAgICAgJ2hleCdcbiAgICAgICl9LCBleHBlY3RlZDogJHtvdXRwdXQuYmlwMzJEZXJpdmF0aW9uLnB1YmtleS50b1N0cmluZygnaGV4Jyl9YFxuICAgICk7XG4gIH1cblxuICAvLyBEZXRlcm1pbmUgdGhlIGNvcnJlY3QgcGF5bWVudCB0eXBlIGJhc2VkIG9uIHRoZSBwdXJwb3NlXG4gIGxldCBkZXJpdmVkQWRkcmVzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBzd2l0Y2ggKHB1cnBvc2UpIHtcbiAgICBjYXNlIDQ5OiAvLyBQMlNILVAyV1BLSCAoTmVzdGVkIFNlZ1dpdClcbiAgICAgIGRlcml2ZWRBZGRyZXNzID0gdXR4b2xpYi5wYXltZW50cy5wMnNoKHtcbiAgICAgICAgcmVkZWVtOiB1dHhvbGliLnBheW1lbnRzLnAyd3BraCh7XG4gICAgICAgICAgcHVia2V5OiBkZXJpdmVkUHVia2V5LFxuICAgICAgICAgIG5ldHdvcmssXG4gICAgICAgIH0pLFxuICAgICAgICBuZXR3b3JrLFxuICAgICAgfSkuYWRkcmVzcztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgODQ6IC8vIFAyV1BLSCAoTmF0aXZlIFNlZ1dpdClcbiAgICAgIGRlcml2ZWRBZGRyZXNzID0gdXR4b2xpYi5wYXltZW50cy5wMndwa2goe1xuICAgICAgICBwdWJrZXk6IGRlcml2ZWRQdWJrZXksXG4gICAgICAgIG5ldHdvcmssXG4gICAgICB9KS5hZGRyZXNzO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA4NjogLy8gUDJUUiAoVGFwcm9vdClcbiAgICAgIGRlcml2ZWRBZGRyZXNzID0gdXR4b2xpYi5wYXltZW50cy5wMnRyKHtcbiAgICAgICAgcHVia2V5OiBkZXJpdmVkUHVia2V5LFxuICAgICAgICBuZXR3b3JrLFxuICAgICAgfSkuYWRkcmVzcztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHB1cnBvc2U6ICR7cHVycG9zZX1gKTtcbiAgfVxuXG4gIGlmIChkZXJpdmVkQWRkcmVzcyAhPT0gb3V0cHV0LmFkZHJlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgY2hhbmdlIGFkZHJlc3M6IGV4cGVjdGVkICR7ZGVyaXZlZEFkZHJlc3N9LCBnb3QgJHtvdXRwdXQuYWRkcmVzc31gKTtcbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgZnVuZGVkIHBzYnQgYmVmb3JlIGNyZWF0aW5nIHRoZSBzaWduYXR1cmVzIGZvciB3aXRoZHJhdy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUHNidEZvcldpdGhkcmF3KFxuICBwc2J0SGV4OiBzdHJpbmcsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgcmVjaXBpZW50czogTGlnaHRuaW5nT25jaGFpblJlY2lwaWVudFtdLFxuICBhY2NvdW50czogV2F0Y2hPbmx5QWNjb3VudFtdXG4pOiB2b2lkIHtcbiAgY29uc3QgcGFyc2VkUHNidCA9IFBzYnQuZnJvbUhleChwc2J0SGV4LCB7IG5ldHdvcms6IG5ldHdvcmsgfSk7XG4gIGNvbnN0IG91dHB1dHMgPSBwYXJzZVBzYnRPdXRwdXRzKHBhcnNlZFBzYnQsIG5ldHdvcmspO1xuICBvdXRwdXRzLmZvckVhY2goKG91dHB1dCkgPT4ge1xuICAgIGlmIChvdXRwdXQuY2hhbmdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICB2ZXJpZnlDaGFuZ2VBZGRyZXNzKG91dHB1dCwgYWNjb3VudHMsIG5ldHdvcmspO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHZlcmlmeSBjaGFuZ2UgYWRkcmVzczogJHtlfWApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgbWF0Y2ggPSBmYWxzZTtcbiAgICAgIHJlY2lwaWVudHMuZm9yRWFjaCgocmVjaXBpZW50KSA9PiB7XG4gICAgICAgIGlmIChyZWNpcGllbnQuYWRkcmVzcyA9PT0gb3V0cHV0LmFkZHJlc3MgJiYgQmlnSW50KHJlY2lwaWVudC5hbW91bnRTYXQpID09PSBvdXRwdXQudmFsdWUpIHtcbiAgICAgICAgICBtYXRjaCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBTQlQgb3V0cHV0ICR7b3V0cHV0LmFkZHJlc3N9IHdpdGggdmFsdWUgJHtvdXRwdXQudmFsdWV9IGRvZXMgbm90IG1hdGNoIGFueSByZWNpcGllbnRgKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuIl19