@bitgo/sdk-coin-algo 2.1.47 → 2.1.49
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.
- package/CHANGELOG.md +8 -0
- package/dist/src/algo.d.ts +0 -2
- package/dist/src/algo.d.ts.map +1 -1
- package/dist/src/algo.js +18 -8
- package/dist/src/algoToken.js +1 -1
- package/dist/src/index.js +18 -8
- package/dist/src/lib/assetTransferBuilder.js +1 -1
- package/dist/src/lib/ifaces.d.ts +0 -2
- package/dist/src/lib/ifaces.d.ts.map +1 -1
- package/dist/src/lib/index.js +18 -8
- package/dist/src/lib/keyPair.js +18 -8
- package/dist/src/lib/keyRegistrationBuilder.js +1 -1
- package/dist/src/lib/seedEncoding.js +18 -8
- package/dist/src/lib/transaction.js +1 -1
- package/dist/src/lib/transactionBuilder.js +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +1 -1
- package/dist/src/lib/transferBuilder.js +1 -1
- package/dist/src/lib/txnSchema.js +1 -1
- package/dist/src/lib/utils.d.ts +0 -2
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +18 -8
- package/dist/src/seedValidator.js +18 -8
- package/package.json +6 -6
package/dist/src/lib/utils.js
CHANGED
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
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
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -550,4 +560,4 @@ class Utils {
|
|
|
550
560
|
exports.Utils = Utils;
|
|
551
561
|
const utils = new Utils();
|
|
552
562
|
exports.default = utils;
|
|
553
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQThCO0FBQzlCLDhEQUFrQztBQUNsQyxvREFBc0M7QUFDdEMsZ0RBQWtDO0FBQ2xDLDBEQUErQjtBQUMvQiwwREFBK0I7QUFDL0Isb0RBQXVCO0FBRXZCLHVDQUFvQztBQUNwQyxpREFBOEM7QUFDOUMsaUZBQW1FO0FBQ25FLGlGQUFtRTtBQUNuRSw4Q0FPeUI7QUFFekIsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQUM7QUFDeEMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDaEMsTUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUM7QUFDckMsTUFBTSwyQkFBMkIsR0FBRyxFQUFFLENBQUM7QUFDdkMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFFN0I7Ozs7O0dBS0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxLQUFhO0lBQ2hDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxDQUFhLEVBQUUsQ0FBYTtJQUNoRCxNQUFNLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVELE1BQWEsS0FBSztJQUNoQixrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE9BQWU7UUFDNUIsT0FBTyxpQkFBTyxDQUFDLGNBQWMsQ0FB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MUM7SUFDSCxDQUFDO0NBQ0Y7QUFsaEJELHNCQWtoQkM7QUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBRTFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbGdvc2RrIGZyb20gJ2FsZ29zZGsnO1xuaW1wb3J0IHN0ZWxsYXIgZnJvbSAnc3RlbGxhci1zZGsnO1xuaW1wb3J0ICogYXMgaGV4IGZyb20gJ0BzdGFibGVsaWIvaGV4JztcbmltcG9ydCAqIGFzIG5hY2wgZnJvbSAndHdlZXRuYWNsJztcbmltcG9ydCBiYXNlMzIgZnJvbSAnaGktYmFzZTMyJztcbmltcG9ydCBzaGE1MTIgZnJvbSAnanMtc2hhNTEyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBBZGRyZXNzLCBFbmNvZGVkVHgsIFNlZWQgfSBmcm9tICcuL2lmYWNlcyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IFNlZWRFbmNvZGluZyB9IGZyb20gJy4vc2VlZEVuY29kaW5nJztcbmltcG9ydCAqIGFzIGFsZ29OYWNsIGZyb20gJ2FsZ29zZGsvZGlzdC9janMvc3JjL25hY2wvbmFjbFdyYXBwZXJzJztcbmltcG9ydCAqIGFzIGVuY29kaW5nIGZyb20gJ2FsZ29zZGsvZGlzdC9janMvc3JjL2VuY29kaW5nL2VuY29kaW5nJztcbmltcG9ydCB7XG4gIEJhc2VVdGlscyxcbiAgTm90SW1wbGVtZW50ZWRFcnJvcixcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEludmFsaWRLZXksXG4gIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5LFxuICBpc1ZhbGlkRWQyNTUxOVNlY3JldEtleSxcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuY29uc3QgQUxHT1JBTkRfQ0hFQ0tTVU1fQllURV9MRU5HVEggPSA0O1xuY29uc3QgQUxHT1JBTkRfU0VFRF9MRU5HVEggPSA1ODtcbmNvbnN0IEFMR09SQU5EX1NFRURfQllURV9MRU5HVEggPSAzNjtcbmNvbnN0IEFMR09SQU5EX1RSQU5TQUNUSU9OX0xFTkdUSCA9IDUyO1xuY29uc3QgU0VFRF9CWVRFU19MRU5HVEggPSAzMjtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHN0cmluZyBpcyBvbmx5IGNvbXBvc2VkIG9mIGhleCBjaGFycy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWF5YmUgVGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgc3RyaW5nIGNvbnNpc3RzIG9mIG9ubHkgaGV4IGNoYXJhY3RlcnMsIG90aGVyd2lzZSBmYWxzZS5cbiAqL1xuZnVuY3Rpb24gYWxsSGV4Q2hhcnMobWF5YmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL14oWzAtOWEtZl17Mn0pKyQvaS50ZXN0KG1heWJlKTtcbn1cblxuLyoqXG4gKiBDb25jYXRBcnJheXMgdGFrZXMgdHdvIGFycmF5IGFuZCByZXR1cm5zIGEgam9pbnQgYXJyYXkgb2YgYm90aFxuICpcbiAqIEBwYXJhbSBhIHtVaW50OEFycmF5fSBmaXJzdCBhcnJheSB0byBjb25jYXRcbiAqIEBwYXJhbSBiIHtVaW50OEFycmF5fSBzZWNvbmQgYXJyYXlcbiAqIEByZXR1cm5zIHtVaW50OEFycmF5fSBhIG5ldyBhcnJheSBjb250YWluaW5nIGFsbCBlbGVtZW50cyBvZiAnYScgZm9sbG93ZWQgYnkgYWxsIGVsZW1lbnRzIG9mICdiJ1xuICovXG5mdW5jdGlvbiBjb25jYXRBcnJheXMoYTogVWludDhBcnJheSwgYjogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICBjb25zdCBjID0gbmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGggKyBiLmxlbmd0aCk7XG4gIGMuc2V0KGEpO1xuICBjLnNldChiLCBhLmxlbmd0aCk7XG4gIHJldHVybiBjO1xufVxuXG5leHBvcnQgY2xhc3MgVXRpbHMgaW1wbGVtZW50cyBCYXNlVXRpbHMge1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGFsZ29zZGsuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHR4SWQubGVuZ3RoICE9PSAxMDQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWxsSGV4Q2hhcnModHhJZCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5U2VjcmV0S2V5KGtleSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBoZXggc3RyaW5nIG9mIHRoZSBnaXZlbiBidWZmZXJcbiAgICpcbiAgICogQHBhcmFtIHtVaW50OEFycmF5fSBidWZmZXIgLSB0aGUgYnVmZmVyIHRvIGJlIGNvbnZlcnRlZCB0byBoZXhcbiAgICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgaGV4IHZhbHVlXG4gICAqL1xuICB0b0hleChidWZmZXI6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICAgIHJldHVybiBoZXguZW5jb2RlKGJ1ZmZlciwgdHJ1ZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdpc1ZhbGlkU2lnbmF0dXJlIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignaGFzaCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZSB0d28gS2V5c1xuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGtleTEgLSBrZXkgdG8gYmUgY29tcGFyZVxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGtleTIgLSBrZXkgdG8gYmUgY29tcGFyZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSByZXR1cm5zIHRydWUgaWYgYm90aCBrZXlzIGFyZSBlcXVhbFxuICAgKi9cbiAgYXJlS2V5c0VxdWFsKGtleTE6IFVpbnQ4QXJyYXksIGtleTI6IFVpbnQ4QXJyYXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmFjbC52ZXJpZnkoa2V5MSwga2V5Mik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIFVpbnQ4QXJyYXkgb2YgdGhlIGdpdmVuIGhleCBzdHJpbmdcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0ciAtIHRoZSBoZXggc3RyaW5nIHRvIGJlIGNvbnZlcnRlZFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBVaW50OEFycmF5IHZhbHVlXG4gICAqL1xuICB0b1VpbnQ4QXJyYXkoc3RyOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oc3RyLCAnaGV4Jyk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc2VlZCBpcyB2YWxpZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlZWQgLSB0aGUgc2VlZCB0byBiZSB2YWxpZGF0ZWRcbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gdHJ1ZSBpZiB0aGUgc2VlZCBpcyB2YWxpZFxuICAgKi9cbiAgaXNWYWxpZFNlZWQoc2VlZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBzZWVkICE9PSAnc3RyaW5nJykgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKHNlZWQubGVuZ3RoICE9PSBBTEdPUkFORF9TRUVEX0xFTkdUSCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gVHJ5IHRvIGRlY29kZVxuICAgIGxldCBkZWNvZGVkO1xuICAgIHRyeSB7XG4gICAgICBkZWNvZGVkID0gdGhpcy5kZWNvZGVTZWVkKHNlZWQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDb21wdXRlIGNoZWNrc3VtXG4gICAgY29uc3QgY2hlY2tzdW0gPSBuZXcgVWludDhBcnJheShcbiAgICAgIHNoYTUxMi5zaGE1MTJfMjU2LmFycmF5KGRlY29kZWQuc2VlZCkuc2xpY2UoU0VFRF9CWVRFU19MRU5HVEggLSBBTEdPUkFORF9DSEVDS1NVTV9CWVRFX0xFTkdUSCwgU0VFRF9CWVRFU19MRU5HVEgpXG4gICAgKTtcblxuICAgIC8vIENoZWNrIGlmIHRoZSBjaGVja3N1bSBtYXRjaGVzIHRoZSBvbmUgZnJvbSB0aGUgZGVjb2RlZCBzZWVkXG4gICAgcmV0dXJuIF8uaXNFcXVhbChjaGVja3N1bSwgZGVjb2RlZC5jaGVja3N1bSk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIGFuIGFsZ28gc2VlZFxuICAgKlxuICAgKiBAcGFyYW0gIHtCdWZmZXJ9IHNlY3JldEtleSAtIHRoZSB2YWxpZCBzZWNyZXRLZXkgLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBzZWVkIHRvIGJlIHZhbGlkYXRlZC5cbiAgICovXG4gIGVuY29kZVNlZWQoc2VjcmV0S2V5OiBCdWZmZXIpOiBzdHJpbmcge1xuICAgIC8vIGdldCBzZWVkXG4gICAgY29uc3Qgc2VlZCA9IHNlY3JldEtleS5zbGljZSgwLCBTRUVEX0JZVEVTX0xFTkdUSCk7XG4gICAgLy8gY29tcHV0ZSBjaGVja3N1bVxuICAgIGNvbnN0IGNoZWNrc3VtID0gQnVmZmVyLmZyb20oXG4gICAgICBzaGE1MTIuc2hhNTEyXzI1Ni5hcnJheShzZWVkKS5zbGljZShTRUVEX0JZVEVTX0xFTkdUSCAtIEFMR09SQU5EX0NIRUNLU1VNX0JZVEVfTEVOR1RILCBTRUVEX0JZVEVTX0xFTkdUSClcbiAgICApO1xuICAgIGNvbnN0IGVuY29kZWRTZWVkID0gYmFzZTMyLmVuY29kZShjb25jYXRBcnJheXMoc2VlZCwgY2hlY2tzdW0pKTtcblxuICAgIHJldHVybiBlbmNvZGVkU2VlZC50b1N0cmluZygpLnNsaWNlKDAsIEFMR09SQU5EX1NFRURfTEVOR1RIKTsgLy8gcmVtb3ZpbmcgdGhlIGV4dHJhICc9PT09J1xuICB9XG5cbiAgLyoqXG4gICAqIGRlY29kZVNlZWQgZGVjb2RlcyBhbiBhbGdvIHNlZWRcbiAgICpcbiAgICogRGVjb2RpbmcgYWxnbyBzZWVkIGlzIHNhbWUgYXMgZGVjb2RpbmcgYWRkcmVzcy5cbiAgICogTGF0ZXN0IHZlcnNpb24gb2YgYWxnbyBzZGsgKDEuOSwgYXQgdGhpcyB3cml0aW5nKSBkb2VzIG5vdCBleHBvc2UgZXhwbGljaXQgbWV0aG9kIGZvciBkZWNvZGluZyBzZWVkLlxuICAgKiBQYXJhbWV0ZXIgaXMgZGVjb2RlZCBhbmQgc3BsaXQgaW50byBzZWVkIGFuZCBjaGVja3N1bS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlZWQgLSBoZXggb3IgYmFzZTY0IGVuY29kZWQgc2VlZCB0byBiZSB2YWxpZGF0ZWRcbiAgICogQHJldHVybnMge1NlZWR9IC0gdmFsaWRhdGVkIG9iamVjdCBTZWVkXG4gICAqL1xuICBkZWNvZGVTZWVkKHNlZWQ6IHN0cmluZyk6IFNlZWQge1xuICAgIC8vIHRyeSB0byBkZWNvZGVcbiAgICBjb25zdCBkZWNvZGVkID0gYmFzZTMyLmRlY29kZS5hc0J5dGVzKHNlZWQpO1xuXG4gICAgLy8gU2FuaXR5IGNoZWNrXG4gICAgaWYgKGRlY29kZWQubGVuZ3RoICE9PSBBTEdPUkFORF9TRUVEX0JZVEVfTEVOR1RIKSB0aHJvdyBuZXcgRXJyb3IoJ3NlZWQgc2VlbXMgdG8gYmUgbWFsZm9ybWVkJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlZWQ6IG5ldyBVaW50OEFycmF5KGRlY29kZWQuc2xpY2UoMCwgQUxHT1JBTkRfU0VFRF9CWVRFX0xFTkdUSCAtIEFMR09SQU5EX0NIRUNLU1VNX0JZVEVfTEVOR1RIKSksXG4gICAgICBjaGVja3N1bTogbmV3IFVpbnQ4QXJyYXkoZGVjb2RlZC5zbGljZShTRUVEX0JZVEVTX0xFTkdUSCwgQUxHT1JBTkRfU0VFRF9CWVRFX0xFTkdUSCkpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgaWYgc2lnbmF0dXJlIGZvciBtZXNzYWdlIGlzIHZhbGlkLlxuICAgKlxuICAgKiBAcGFyYW0gcHViIHtVaW50OEFycmF5fSBwdWJsaWMga2V5XG4gICAqIEBwYXJhbSBtZXNzYWdlIHtVaW50OEFycmF5fSBzaWduZWQgbWVzc2FnZVxuICAgKiBAcGFyYW0gc2lnbmF0dXJlIHtCdWZmZXJ9IHNpZ25hdHVyZSB0byB2ZXJpZnlcbiAgICogQHJldHVybnMge0Jvb2xlYW59IHRydWUgaWYgc2lnbmF0dXJlIGlzIHZhbGlkLlxuICAgKi9cbiAgdmVyaWZ5U2lnbmF0dXJlKG1lc3NhZ2U6IFVpbnQ4QXJyYXksIHNpZ25hdHVyZTogQnVmZmVyLCBwdWI6IFVpbnQ4QXJyYXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmFjbC5zaWduLmRldGFjaGVkLnZlcmlmeShtZXNzYWdlLCBzaWduYXR1cmUsIHB1Yik7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtcyBhbiBFZDI1NTE5IHB1YmxpYyBrZXkgaW50byBhbiBhbGdvcmFuZCBhZGRyZXNzLlxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IHBrIFRoZSBFZDI1NTE5IHB1YmxpYyBrZXkuXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvZmVhdHVyZXMvYWNjb3VudHMvI3RyYW5zZm9ybWF0aW9uLXB1YmxpYy1rZXktdG8tYWxnb3JhbmQtYWRkcmVzc1xuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgYWxnb3JhbmQgYWRkcmVzcy5cbiAgICovXG4gIHB1YmxpY0tleVRvQWxnb0FkZHJlc3MocGs6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgS2V5UGFpcih7IHB1YjogQnVmZmVyLmZyb20ocGspLnRvU3RyaW5nKCdoZXgnKSB9KS5nZXRBZGRyZXNzKCk7XG4gIH1cblxuICAvKipcbiAgIFRyYW5zZm9ybXMgYSBkZWNyeXB0ZWQgRWQyNTUxOSBwcml2YXRlIGtleSBpbnRvIGFuIGFsZ29yYW5kIGFkZHJlc3MuXG4gICBAcGFyYW0ge3N0cmluZ30gcHJpdmF0ZUtleSBUaGUgRWQyNTUxOSBwcml2YXRlIGtleS5cbiAgIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhbGdvcmFuZCBhZGRyZXNzLlxuICAgKiovXG4gIHByaXZhdGVLZXlUb0FsZ29BZGRyZXNzKHByaXZhdGVLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gRGVyaXZlIHRoZSBhY2NvdW50IGZyb20gdGhlIHByaXZhdGUga2V5XG4gICAgY29uc3Qga2V5cGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBwcml2YXRlS2V5IH0pO1xuICAgIHJldHVybiBrZXlwYWlyLmdldEFkZHJlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSB1bnNpZ25lZCBhbGdvIHRyYW5zYWN0aW9uIGNhbiBiZSBkZWNvZGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IHR4biBUaGUgZW5jb2RlZCB1bnNpZ25lZCB0cmFuc2FjdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGNhbiBiZSBkZWNvZGVkLCBvdGhlcndpc2UgZmFsc2VcbiAgICovXG4gIHByb3RlY3RlZCBpc0RlY29kYWJsZVVuc2lnbmVkQWxnb1R4bih0eG46IFVpbnQ4QXJyYXkpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgYWxnb3Nkay5kZWNvZGVVbnNpZ25lZFRyYW5zYWN0aW9uKHR4bik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgc2lnbmVkIGFsZ28gdHJhbnNhY3Rpb24gY2FuIGJlIGRlY29kZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gdHhuIFRoZSBlbmNvZGVkIHNpZ25lZCB0cmFuc2FjdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGNhbiBiZSBkZWNvZGVkLCBvdGhlcndpc2UgZmFsc2VcbiAgICovXG4gIHByb3RlY3RlZCBpc0RlY29kYWJsZVNpZ25lZFRyYW5zYWN0aW9uKHR4bjogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBhbGdvc2RrLmRlY29kZVNpZ25lZFRyYW5zYWN0aW9uKHR4bik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyBhIHNpZ25lZCBvciB1bnNpZ25lZCBhbGdvIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXkgfCBzdHJpbmd9IHR4bkJ5dGVzIFRoZSBlbmNvZGVkIHVuc2lnbmVkIG9yIHNpZ25lZCB0eG4uXG4gICAqIEByZXR1cm5zIHtFbmNvZGVkVHh9IFRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgZGVjb2RlQWxnb1R4bih0eG5CeXRlczogVWludDhBcnJheSB8IHN0cmluZyk6IEVuY29kZWRUeCB7XG4gICAgbGV0IGJ1ZmZlciA9XG4gICAgICB0eXBlb2YgdHhuQnl0ZXMgPT09ICdzdHJpbmcnXG4gICAgICAgID8gQnVmZmVyLmZyb20odHhuQnl0ZXMsIGFsbEhleENoYXJzKHR4bkJ5dGVzKSA/ICdoZXgnIDogJ2Jhc2U2NCcpXG4gICAgICAgIDogQnVmZmVyLmZyb20odHhuQnl0ZXMpO1xuXG4gICAgLy8gSW4gb3JkZXIgdG8gbWFpbnRhaW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBrZXlyZWcgdHJhbnNhY3Rpb25zIGVuY29kZWQgd2l0aFxuICAgIC8vIGZvcmtlZCBhbGdvc2RrIDEuMi4wIChodHRwczovL2dpdGh1Yi5jb20vQml0R28vYWxnb3Nkay1iaXRnbyksXG4gICAgLy8gdGhlIHJlbGV2YW50IGluZm9ybWF0aW9uIGlzIGV4dHJhY3RlZCBhbmQgcGFyc2VkIGZvbGxvd2luZyB0aGUgbGF0ZXN0IGFsZ29zZGtcbiAgICAvLyByZWxlYXNlIHN0YW5kYXJkLlxuICAgIC8vIFRoaXMgd2F5IHdlIGNhbiBkZWNvZGUgdHJhbnNhY3Rpb25zIHN1Y2Nlc3NmdWxseSBieSBzdGlsbCBtYWludGFpbmluZyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgIGNvbnN0IGRlY29kZWRUeCA9IGVuY29kaW5nLmRlY29kZShidWZmZXIpO1xuICAgIGlmIChcbiAgICAgIGRlY29kZWRUeC50eG4gJiZcbiAgICAgIGRlY29kZWRUeC50eG4udHlwZSA9PT0gJ2tleXJlZycgJiZcbiAgICAgIGRlY29kZWRUeC50eG4udm90ZWZzdCAmJlxuICAgICAgZGVjb2RlZFR4LnR4bi52b3RlbHN0ICYmXG4gICAgICBkZWNvZGVkVHgudHhuLnZvdGVrZFxuICAgICkge1xuICAgICAgZGVjb2RlZFR4LnR4bi52b3Rla2V5ID0gZGVjb2RlZFR4LnR4bi52b3Rla2V5IHx8IGRlY29kZWRUeC5tc2lnLnN1YnNpZ1swXS5waztcbiAgICAgIGRlY29kZWRUeC50eG4uc2Vsa2V5ID0gZGVjb2RlZFR4LnR4bi5zZWxrZXkgfHwgZGVjb2RlZFR4Lm1zaWcuc3Vic2lnWzBdLnBrO1xuICAgICAgYnVmZmVyID0gZGVjb2RlZFR4Lm1zaWcgfHwgZGVjb2RlZFR4LnNpZyA/IGVuY29kaW5nLmVuY29kZShkZWNvZGVkVHgpIDogZW5jb2RpbmcuZW5jb2RlKGRlY29kZWRUeC50eG4pO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy50cnlUb0RlY29kZVVuc2lnbmVkVHJhbnNhY3Rpb24oYnVmZmVyKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIElnbm9yZSBlcnJvciB0byB0cnkgZGlmZmVyZW50IGZvcm1hdFxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy50cnlUb0RlY29kZVNpZ25lZFRyYW5zYWN0aW9uKGJ1ZmZlcik7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIGNhbm5vdCBiZSBkZWNvZGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBkZWNvZGUgYSBzaWduZWQgQWxnbyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gYnVmZmVyIHRoZSBlbmNvZGVkIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHsgRW5jb2RlZFR4IH0gdGhlIGRlY29kZWQgc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqIEB0aHJvd3MgZXJyb3IgaWYgaXQgaXMgbm90IGEgdmFsaWQgZW5jb2RlZCBzaWduZWQgdHJhbnNhY3Rpb25cbiAgICovXG4gIHRyeVRvRGVjb2RlU2lnbmVkVHJhbnNhY3Rpb24oYnVmZmVyOiBCdWZmZXIpOiBFbmNvZGVkVHgge1xuICAgIC8vIFRPRE86IFJlcGxhY2Ugd2l0aFxuICAgIC8vIHJldHVybiBhbGdvc2RrLlRyYW5zYWN0aW9uLmZyb21fb2JqX2Zvcl9lbmNvZGluZyhhbGdvc2RrLmRlY29kZVNpZ25lZFRyYW5zYWN0aW9uKGJ1ZmZlcikudHhuKTtcbiAgICAvLyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZC9qcy1hbGdvcmFuZC1zZGsvaXNzdWVzLzM2NFxuICAgIC8vIFwiLi4uc29tZSBwYXJ0cyBvZiB0aGUgY29kZWJhc2UgdHJlYXQgdGhlIG91dHB1dCBvZiBUcmFuc2FjdGlvbi5mcm9tX29ial9mb3JfZW5jb2RpbmcgYXMgRW5jb2RlZFRyYW5zYWN0aW9uLlxuICAgIC8vIFRoZXkgbmVlZCB0byBiZSBmaXhlZChvciB3ZSBhdCBsZWFzdCBuZWVkIHRvIG1ha2UgaXQgc28gVHJhbnNhY3Rpb24gY29uZm9ybXMgdG8gRW5jb2RlZFRyYW5zYWN0aW9uKS5cIlxuICAgIGNvbnN0IHR4ID0gYWxnb3Nkay5kZWNvZGVTaWduZWRUcmFuc2FjdGlvbihidWZmZXIpO1xuXG4gICAgY29uc3Qgc2lnbmVyczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBzaWduZWRCeTogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodHgubXNpZyAmJiB0eC5tc2lnLnN1YnNpZykge1xuICAgICAgZm9yIChjb25zdCBzaWcgb2YgdHgubXNpZy5zdWJzaWcpIHtcbiAgICAgICAgY29uc3QgYWRkciA9IGFsZ29zZGsuZW5jb2RlQWRkcmVzcyhzaWcucGspO1xuICAgICAgICBzaWduZXJzLnB1c2goYWRkcik7XG4gICAgICAgIGlmIChzaWcucykge1xuICAgICAgICAgIHNpZ25lZEJ5LnB1c2goYWRkcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmF3VHJhbnNhY3Rpb246IG5ldyBVaW50OEFycmF5KGJ1ZmZlciksXG4gICAgICB0eG46IHR4LnR4bixcbiAgICAgIHNpZ25lZDogdHJ1ZSxcbiAgICAgIHNpZ25lcnM6IHNpZ25lcnMsXG4gICAgICBzaWduZWRCeTogc2lnbmVkQnksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gZGVjb2RlIGFuIHVuc2lnbmVkIEFsZ28gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIGJ1ZmZlciB0aGUgZW5jb2RlZCB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7RW5jb2RlZFR4fSB0aGUgZGVjb2RlZCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAdGhyb3dzIGVycm9yIGlmIGl0IGlzIG5vdCBhIHZhbGlkIGVuY29kZWQgdW5zaWduZWQgdHJhbnNhY3Rpb25cbiAgICovXG4gIHRyeVRvRGVjb2RlVW5zaWduZWRUcmFuc2FjdGlvbihidWZmZXI6IEJ1ZmZlcik6IEVuY29kZWRUeCB7XG4gICAgY29uc3QgdHhuID0gYWxnb3Nkay5kZWNvZGVVbnNpZ25lZFRyYW5zYWN0aW9uKGJ1ZmZlcik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJhd1RyYW5zYWN0aW9uOiBuZXcgVWludDhBcnJheShidWZmZXIpLFxuICAgICAgdHhuLFxuICAgICAgc2lnbmVkOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgLypcbiAgICogZW5jb2RlT2JqIHRha2VzIGEgamF2YXNjcmlwdCBvYmplY3QgYW5kIHJldHVybnMgaXRzIG1zZ3BhY2sgZW5jb2RpbmdcbiAgICogTm90ZSB0aGF0IHRoZSBlbmNvZGluZyBzb3J0cyB0aGUgZmllbGRzIGFscGhhYmV0aWNhbGx5XG4gICAqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgYW55Pn0gb2JqIGpzIG9ialxuICAgKiBAcmV0dXJucyB7VWludDhBcnJheX0gVWludDhBcnJheSBiaW5hcnkgcmVwcmVzZW50YXRpb25cbiAgICovXG4gIGVuY29kZU9iaihvYmo6IFJlY29yZDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIGFueT4pOiBVaW50OEFycmF5IHtcbiAgICByZXR1cm4gYWxnb3Nkay5lbmNvZGVPYmoob2JqKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWNvZGVPYmogdGFrZXMgYSBVaW50OEFycmF5IGFuZCByZXR1cm5zIGl0cyBqYXZhc2NyaXB0IG9ialxuICAgKiBAcGFyYW0gbyAtIFVpbnQ4QXJyYXkgdG8gZGVjb2RlXG4gICAqIEByZXR1cm5zIG9iamVjdFxuICAgKi9cbiAgZGVjb2RlT2JqKG86IEFycmF5TGlrZTxudW1iZXI+KTogdW5rbm93biB7XG4gICAgcmV0dXJuIGFsZ29zZGsuZGVjb2RlT2JqKG8pO1xuICB9XG5cbiAgLyoqXG4gICAqIHNlY3JldEtleVRvTW5lbW9uaWMgdGFrZXMgYW4gQWxnb3JhbnQgc2VjcmV0IGtleSBhbmQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBtbmVtb25pY1xuICAgKlxuICAgKiBAcGFyYW0gc2sgLSBBbGdvcmFudCBzZWNyZXQga2V5XG4gICAqIEByZXR1cm4gU2VjcmV0IGtleSBpcyBhc3NvY2lhdGVkIG1uZW1vbmljXG4gICAqL1xuICBzZWNyZXRLZXlUb01uZW1vbmljKHNrOiBCdWZmZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNrVmFsaWQgPSBCdWZmZXIuZnJvbShzay50b1N0cmluZygnaGV4JykpO1xuICAgIGlmICghdGhpcy5pc1ZhbGlkUHJpdmF0ZUtleShza1ZhbGlkLnRvU3RyaW5nKCdoZXgnKSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkS2V5KGBUaGUgc2VjcmV0IGtleTogJHtzay50b1N0cmluZygnaGV4Jyl9IGlzIGludmFsaWRgKTtcbiAgICB9XG4gICAgY29uc3Qgc2tVbml0OEFycmF5ID0gQnVmZmVyLmZyb20oc2spO1xuICAgIHJldHVybiBhbGdvc2RrLnNlY3JldEtleVRvTW5lbW9uaWMoc2tVbml0OEFycmF5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzZWVkRnJvbU1uZW1vbmljIGNvbnZlcnRzIGEgbW5lbW9uaWMgZ2VuZXJhdGVkIHVzaW5nIHRoaXMgbGlicmFyeSBpbnRvIHRoZSBzb3VyY2Uga2V5IHVzZWQgdG8gY3JlYXRlIGl0XG4gICAqIEl0IHJldHVybnMgYW4gZXJyb3IgaWYgdGhlIHBhc3NlZCBtbmVtb25pYyBoYXMgYW4gaW5jb3JyZWN0IGNoZWNrc3VtLCBpZiB0aGUgbnVtYmVyIG9mIHdvcmRzIGlzIHVuZXhwZWN0ZWQsIG9yIGlmIG9uZVxuICAgKiBvZiB0aGUgcGFzc2VkIHdvcmRzIGlzIG5vdCBmb3VuZCBpbiB0aGUgd29yZHMgbGlzdFxuICAgKlxuICAgKiBAcGFyYW0gbW5lbW9uaWMgLSAyNSB3b3JkcyBtbmVtb25pY1xuICAgKiBAcmV0dXJucyAzMiBieXRlcyBsb25nIHNlZWRcbiAgICovXG4gIHNlZWRGcm9tTW5lbW9uaWMobW5lbW9uaWM6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBhbGdvc2RrLm1uZW1vbmljVG9NYXN0ZXJEZXJpdmF0aW9uS2V5KG1uZW1vbmljKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBrZXlQYWlyRnJvbVNlZWQgZ2VuZXJhdGVzIGFuIG9iamVjdCB3aXRoIHNlY3JldEtleSBhbmQgcHVibGljS2V5IHVzaW5nIHRoZSBhbGdvc2RrXG4gICAqIEBwYXJhbSBzZWVkIDMyIGJ5dGVzIGxvbmcgc2VlZFxuICAgKiBAcmV0dXJucyBLZXlQYWlyXG4gICAqL1xuICBrZXlQYWlyRnJvbVNlZWQoc2VlZDogVWludDhBcnJheSk6IEtleVBhaXIge1xuICAgIGNvbnN0IG1uID0gdGhpcy5tbmVtb25pY0Zyb21TZWVkKHNlZWQpO1xuICAgIGNvbnN0IGJhc2U2NFByaXZhdGVLZXkgPSBhbGdvc2RrLm1uZW1vbmljVG9TZWNyZXRLZXkobW4pLnNrO1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUtleVBhaXIoYmFzZTY0UHJpdmF0ZUtleSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYSBuZXcgYEtleVBhaXJgIG9iamVjdCBmcm9tIHRoZSBnaXZlbiBwcml2YXRlIGtleS5cbiAgICpcbiAgICogQHBhcmFtIGJhc2U2NFByaXZhdGVLZXkgNjQgYnl0ZXMgbG9uZyBwcml2YXRlS2V5XG4gICAqIEByZXR1cm5zIEtleVBhaXJcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVLZXlQYWlyKGJhc2U2NFByaXZhdGVLZXk6IFVpbnQ4QXJyYXkpOiBLZXlQYWlyIHtcbiAgICBjb25zdCBzayA9IGJhc2U2NFByaXZhdGVLZXkuc2xpY2UoMCwgMzIpO1xuICAgIHJldHVybiBuZXcgS2V5UGFpcih7IHBydjogQnVmZmVyLmZyb20oc2spLnRvU3RyaW5nKCdoZXgnKSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWNvZGVQcml2YXRlS2V5IGdlbmVyYXRlcyBhIHNlZWQgd2l0aCBhIG1uZW1vbmljIGFuZCB1c2luZyBhbGdvc2RrLlxuICAgKlxuICAgKiBAcGFyYW0gc2VlZCAzMiBieXRlcyBsb25nIHNlZWRcbiAgICogQHJldHVybnMgbW5lbW9uaWMgLSAyNSB3b3JkcyBtbmVtb25pYyAtIDI1IHdvcmRzIG1uZW1vbmljXG4gICAqL1xuICBwcm90ZWN0ZWQgbW5lbW9uaWNGcm9tU2VlZChzZWVkOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWxnb3Nkay5tYXN0ZXJEZXJpdmF0aW9uS2V5VG9NbmVtb25pYyhzZWVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGtleSB3aXRoIHRoZSBzdGVsbGFyLXNka1xuICAgKlxuICAgKiBAcGFyYW0gcHVibGljS2V5XG4gICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICovXG4gIHByb3RlY3RlZCBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleVN0ZWxsYXIocHVibGljS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RlbGxhci5TdHJLZXkuaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkocHVibGljS2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIHRoZSBrZXkgd2l0aCB0aGUgc3RlbGxhci1zZGtcbiAgICpcbiAgICogQHBhcmFtIHB1YmxpY0tleVxuICAgKiBAcmV0dXJucyBCdWZmZXJcbiAgICovXG4gIHByb3RlY3RlZCBkZWNvZGVFZDI1NTE5UHVibGljS2V5U3RlbGxhcihwdWJsaWNLZXk6IHN0cmluZyk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHN0ZWxsYXIuU3RyS2V5LmRlY29kZUVkMjU1MTlQdWJsaWNLZXkocHVibGljS2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgc3RlbGxhciBzZWVkIHRvIGFsZ29yYW5kIGVuY29kaW5nXG4gICAqXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqIEByZXR1cm5zIHN0cmluZyB0aGUgZW5jb2RlZCBzZWVkXG4gICAqL1xuICBjb252ZXJ0RnJvbVN0ZWxsYXJTZWVkKHNlZWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNlZWRFbmNvZGluZy5lbmNvZGUoc3RlbGxhci5TdHJLZXkuZGVjb2RlRWQyNTUxOVNlY3JldFNlZWQoc2VlZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYWRkcmVzcyBlbmNvZGVkIHdpdGggYWxnb3Nka1xuICAgKlxuICAgKiBAcGFyYW0gYWRkclxuICAgKiBAcmV0dXJucyBzdHJpbmdcbiAgICovXG4gIGVuY29kZUFkZHJlc3MoYWRkcjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFsZ29zZGsuZW5jb2RlQWRkcmVzcyhhZGRyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYWRkcmVzcyBkZWNvZGVkIHdpdGggYWxnb3Nka1xuICAgKlxuICAgKiBAcGFyYW0gYWRkclxuICAgKiBAcmV0dXJucyBBZGRyZXNzXG4gICAqL1xuICBkZWNvZGVBZGRyZXNzKGFkZHI6IHN0cmluZyk6IEFkZHJlc3Mge1xuICAgIHJldHVybiBhbGdvc2RrLmRlY29kZUFkZHJlc3MoYWRkcik7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYWRkcmVzcyBpbnRvIGFuIEFMR08gb25lXG4gICAqIElmIHRoZSBnaXZlbiBkYXRhIGlzIGEgU3RlbGxhciBhZGRyZXNzIG9yIHB1YmxpYyBrZXksIGl0IGlzIGNvbnZlcnRlZCB0byBBTEdPIGFkZHJlc3MuXG4gICAqXG4gICAqIEBwYXJhbSBhZGRyZXNzT3JQdWJLZXkgYW4gQUxHTyBhZGRyZXNzLCBvciBhbiBTdGVsbGFyIGFkZHJlc3Mgb3IgcHVibGljIGtleVxuICAgKiBAcmV0dXJucyBhZGRyZXNzIGFsZ28gYWRkcmVzcyBzdHJpbmdcbiAgICovXG4gIHN0ZWxsYXJBZGRyZXNzVG9BbGdvQWRkcmVzcyhhZGRyZXNzT3JQdWJLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gd2UgaGF2ZSBhbiBBbGdvcmFuZCBhZGRyZXNzXG4gICAgaWYgKHRoaXMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzc09yUHViS2V5KSkge1xuICAgICAgcmV0dXJuIGFkZHJlc3NPclB1YktleTtcbiAgICB9XG4gICAgLy8gd2UgaGF2ZSBhIHN0ZWxsYXIga2V5XG4gICAgaWYgKHRoaXMuaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXlTdGVsbGFyKGFkZHJlc3NPclB1YktleSkpIHtcbiAgICAgIGNvbnN0IHN0ZWxsYXJQdWIgPSB0aGlzLmRlY29kZUVkMjU1MTlQdWJsaWNLZXlTdGVsbGFyKGFkZHJlc3NPclB1YktleSk7XG4gICAgICBjb25zdCBhbGdvQWRkcmVzcyA9IHRoaXMuZW5jb2RlQWRkcmVzcyhzdGVsbGFyUHViKTtcbiAgICAgIGlmICh0aGlzLmlzVmFsaWRBZGRyZXNzKGFsZ29BZGRyZXNzKSkge1xuICAgICAgICByZXR1cm4gYWxnb0FkZHJlc3M7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0IFN0ZWxsYXIgYWRkcmVzcyB0byBhbiBBbGdvcmFuZCBhZGRyZXNzIHZpYSBwdWJrZXkuJyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignTmVpdGhlciBhbiBBbGdvcmFuZCBhZGRyZXNzIG5vciBhIHN0ZWxsYXIgcHVia2V5LicpO1xuICB9XG5cbiAgLyoqXG4gICAqIG11bHRpc2lnQWRkcmVzcyB0YWtlcyBtdWx0aXNpZyBtZXRhZGF0YSAocHJlaW1hZ2UpIGFuZCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIGh1bWFuIHJlYWRhYmxlIEFsZ29yYW5kIGFkZHJlc3MuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB2ZXJzaW9uIG11dGxpc2lnIHZlcnNpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IHRocmVzaG9sZCBtdWx0aXNpZyB0aHJlc2hvbGRcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYWRkcnMgbGlzdCBvZiBBbGdvcmFuZCBhZGRyZXNzZXNcbiAgICogQHJldHVybnMge3N0cmluZ30gaHVtYW4gcmVhZGFibGUgQWxnb3JhbmQgYWRkcmVzcy5cbiAgICovXG4gIG11bHRpc2lnQWRkcmVzcyh2ZXJzaW9uOiBudW1iZXIsIHRocmVzaG9sZDogbnVtYmVyLCBhZGRyczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBhbGdvc2RrLm11bHRpc2lnQWRkcmVzcyh7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgdGhyZXNob2xkLFxuICAgICAgYWRkcnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZ2VuZXJhdGVBY2NvdW50IGdlbmVyYXRlcyB1biBhY2NvdW50IHdpdGggYSBzZWNyZXRLZXkgYW5kIGFuIGFkZHJlc3NcbiAgICpcbiAgICogRnVuY3Rpb24gaGFzIG5vdCBwYXJhbXNcbiAgICogQHJldHVybnMgQWNjb3VudFxuICAgKi9cbiAgZ2VuZXJhdGVBY2NvdW50KCk6IGFsZ29zZGsuQWNjb3VudCB7XG4gICAgcmV0dXJuIGFsZ29zZGsuZ2VuZXJhdGVBY2NvdW50KCk7XG4gIH1cblxuICBnZW5lcmF0ZUFjY291bnRGcm9tU2VlZChzZWVkOiBVaW50OEFycmF5KTogYWxnb3Nkay5BY2NvdW50IHtcbiAgICBjb25zdCBrZXlzID0gbmFjbC5zaWduLmtleVBhaXIuZnJvbVNlZWQoc2VlZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZHI6IGFsZ29zZGsuZW5jb2RlQWRkcmVzcyhrZXlzLnB1YmxpY0tleSksXG4gICAgICBzazoga2V5cy5zZWNyZXRLZXksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgVHggSUQgZnJvbSBhbiBlbmNvZGVkIG11bHRpc2lnIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIFRoaXMgaXMgZG9uZSBiZWNhdXNlIG9mIGEgY2hhbmdlIG1hZGUgb24gdmVyc2lvbiAxLjEwLjEgb24gYWxnb3NkayBzbyBtZXRob2QgdHhJRCgpIG9ubHkgc3VwcG9ydHMgU2lnbmVkVHJhbnNhY3Rpb24gdHlwZS5cbiAgICogKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZC9qcy1hbGdvcmFuZC1zZGsvYmxvYi9kZXZlbG9wL0NIQU5HRUxPRy5tZCMxMTAxKVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHhCYXNlNjQgLSBlbmNvZGVkIGJhc2U2NCBtdWx0aXNpZyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRyYW5zYWN0aW9uIElEXG4gICAqL1xuICBnZXRNdWx0aXNpZ1R4SUQodHhCYXNlNjQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdHhCeXRlcyA9IEJ1ZmZlci5mcm9tKHR4QmFzZTY0LCAnYmFzZTY0Jyk7XG4gICAgY29uc3QgZGVjb2RlU2lnblR4ID0gYWxnb3Nkay5kZWNvZGVTaWduZWRUcmFuc2FjdGlvbih0eEJ5dGVzKTtcbiAgICBjb25zdCB3ZWxsRm9ybWVkRGVjb2RlZFNpZ25UeCA9IGRlY29kZVNpZ25UeC50eG4uZ2V0X29ial9mb3JfZW5jb2RpbmcoKTtcbiAgICBjb25zdCB0eEZvckVuY29kaW5nID0geyBtc2lnOiBkZWNvZGVTaWduVHgubXNpZywgdHhuOiB3ZWxsRm9ybWVkRGVjb2RlZFNpZ25UeCB9O1xuICAgIGNvbnN0IGVuX21zZyA9IGVuY29kaW5nLmVuY29kZSh0eEZvckVuY29kaW5nKTtcbiAgICBjb25zdCB0YWcgPSBCdWZmZXIuZnJvbShbODQsIDg4XSk7XG4gICAgY29uc3QgZ2ggPSBCdWZmZXIuZnJvbShjb25jYXRBcnJheXModGFnLCBlbl9tc2cpKTtcbiAgICBjb25zdCBoYXNoID0gQnVmZmVyLmZyb20oYWxnb05hY2wuZ2VuZXJpY0hhc2goZ2gpKTtcbiAgICByZXR1cm4gYmFzZTMyLmVuY29kZShoYXNoKS5zbGljZSgwLCBBTEdPUkFORF9UUkFOU0FDVElPTl9MRU5HVEgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiB0cmFuc2FjdGlvbiBkYXRhIGlzIHRvIGVuYWJsZSBvciBkaXNhYmxlIGEgdG9rZW5cbiAgICogQHBhcmFtIGFtb3VudCB0aGUgYW1vdW50IGluIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBmcm9tIHRoZSBvcmlnaW5hdGVkIGFkZHJlc3NcbiAgICogQHBhcmFtIHRvIHRoZSB0YXJnZXQgYWRkcmVzc1xuICAgKiBAcGFyYW0gY2xvc2VSZW1haW5kZXJUbyAob3B0aW9uYWwpIGFkZHJlc3MgdG8gc2VuZCByZW1haW5pbmcgdW5pdHMgaW4gb3JpZ2luYXRlZCBhZGRyZXNzXG4gICAqIEByZXR1cm5zICdlbmFibGVUb2tlbicgb3IgJ2Rpc2FibGVUb2tlbidcbiAgICovXG4gIGdldFRva2VuVHhUeXBlKGFtb3VudDogc3RyaW5nLCBmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcsIGNsb3NlUmVtYWluZGVyVG8/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCB0eXBlID0gJ3RyYW5zZmVyVG9rZW4nO1xuICAgIGlmIChhbW91bnQgPT09ICcwJyAmJiBmcm9tID09PSB0bykge1xuICAgICAgdHlwZSA9ICFjbG9zZVJlbWFpbmRlclRvID8gJ2VuYWJsZVRva2VuJyA6ICdkaXNhYmxlVG9rZW4nO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBpZiB0aGUga2V5IGlzIGEgdmFsaWQgYmFzZTY0IHN0cmluZ1xuICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gdmFsaWRhdGVcbiAgICovXG4gIHZhbGlkYXRlQmFzZTY0KGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFrZXkgfHwgdHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBiYXNlNjQgc3RyaW5nJyk7XG4gICAgfVxuICAgIGNvbnN0IGJhc2U2NFJlZ0V4cCA9XG4gICAgICAvXig/OlthLXpBLVowLTkrXFwvXXs0fSkqKD86fCg/OlthLXpBLVowLTkrXFwvXXszfT0pfCg/OlthLXpBLVowLTkrXFwvXXsyfT09KXwoPzpbYS16QS1aMC05K1xcL117MX09PT0pKSQvO1xuICAgIGlmICghYmFzZTY0UmVnRXhwLnRlc3Qoa2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGJhc2U2NCBzdHJpbmcnKTtcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
|
|
563
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUE4QjtBQUM5Qiw4REFBa0M7QUFDbEMsb0RBQXNDO0FBQ3RDLGdEQUFrQztBQUNsQywwREFBK0I7QUFDL0IsMERBQStCO0FBQy9CLG9EQUF1QjtBQUV2Qix1Q0FBb0M7QUFDcEMsaURBQThDO0FBQzlDLGlGQUFtRTtBQUNuRSxpRkFBbUU7QUFDbkUsOENBT3lCO0FBRXpCLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBQ2hDLE1BQU0seUJBQXlCLEdBQUcsRUFBRSxDQUFDO0FBQ3JDLE1BQU0sMkJBQTJCLEdBQUcsRUFBRSxDQUFDO0FBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBRTdCOzs7OztHQUtHO0FBQ0gsU0FBUyxXQUFXLENBQUMsS0FBYTtJQUNoQyxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUyxZQUFZLENBQUMsQ0FBYSxFQUFFLENBQWE7SUFDaEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNULENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQixPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxNQUFhLEtBQUs7SUFDaEIsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE9BQU8saUJBQU8sQ0FB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LElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxNQUFNLFlBQVksR0FDaEIsc0dBQXNHLENBQUM7UUFDekcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWxoQkQsc0JBa2hCQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFsZ29zZGsgZnJvbSAnYWxnb3Nkayc7XG5pbXBvcnQgc3RlbGxhciBmcm9tICdzdGVsbGFyLXNkayc7XG5pbXBvcnQgKiBhcyBoZXggZnJvbSAnQHN0YWJsZWxpYi9oZXgnO1xuaW1wb3J0ICogYXMgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuaW1wb3J0IGJhc2UzMiBmcm9tICdoaS1iYXNlMzInO1xuaW1wb3J0IHNoYTUxMiBmcm9tICdqcy1zaGE1MTInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEFkZHJlc3MsIEVuY29kZWRUeCwgU2VlZCB9IGZyb20gJy4vaWZhY2VzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgU2VlZEVuY29kaW5nIH0gZnJvbSAnLi9zZWVkRW5jb2RpbmcnO1xuaW1wb3J0ICogYXMgYWxnb05hY2wgZnJvbSAnYWxnb3Nkay9kaXN0L2Nqcy9zcmMvbmFjbC9uYWNsV3JhcHBlcnMnO1xuaW1wb3J0ICogYXMgZW5jb2RpbmcgZnJvbSAnYWxnb3Nkay9kaXN0L2Nqcy9zcmMvZW5jb2RpbmcvZW5jb2RpbmcnO1xuaW1wb3J0IHtcbiAgQmFzZVV0aWxzLFxuICBOb3RJbXBsZW1lbnRlZEVycm9yLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgSW52YWxpZEtleSxcbiAgaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXksXG4gIGlzVmFsaWRFZDI1NTE5U2VjcmV0S2V5LFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5jb25zdCBBTEdPUkFORF9DSEVDS1NVTV9CWVRFX0xFTkdUSCA9IDQ7XG5jb25zdCBBTEdPUkFORF9TRUVEX0xFTkdUSCA9IDU4O1xuY29uc3QgQUxHT1JBTkRfU0VFRF9CWVRFX0xFTkdUSCA9IDM2O1xuY29uc3QgQUxHT1JBTkRfVFJBTlNBQ1RJT05fTEVOR1RIID0gNTI7XG5jb25zdCBTRUVEX0JZVEVTX0xFTkdUSCA9IDMyO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgc3RyaW5nIGlzIG9ubHkgY29tcG9zZWQgb2YgaGV4IGNoYXJzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtYXliZSBUaGUgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZC5cbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSBzdHJpbmcgY29uc2lzdHMgb2Ygb25seSBoZXggY2hhcmFjdGVycywgb3RoZXJ3aXNlIGZhbHNlLlxuICovXG5mdW5jdGlvbiBhbGxIZXhDaGFycyhtYXliZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAvXihbMC05YS1mXXsyfSkrJC9pLnRlc3QobWF5YmUpO1xufVxuXG4vKipcbiAqIENvbmNhdEFycmF5cyB0YWtlcyB0d28gYXJyYXkgYW5kIHJldHVybnMgYSBqb2ludCBhcnJheSBvZiBib3RoXG4gKlxuICogQHBhcmFtIGEge1VpbnQ4QXJyYXl9IGZpcnN0IGFycmF5IHRvIGNvbmNhdFxuICogQHBhcmFtIGIge1VpbnQ4QXJyYXl9IHNlY29uZCBhcnJheVxuICogQHJldHVybnMge1VpbnQ4QXJyYXl9IGEgbmV3IGFycmF5IGNvbnRhaW5pbmcgYWxsIGVsZW1lbnRzIG9mICdhJyBmb2xsb3dlZCBieSBhbGwgZWxlbWVudHMgb2YgJ2InXG4gKi9cbmZ1bmN0aW9uIGNvbmNhdEFycmF5cyhhOiBVaW50OEFycmF5LCBiOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XG4gIGNvbnN0IGMgPSBuZXcgVWludDhBcnJheShhLmxlbmd0aCArIGIubGVuZ3RoKTtcbiAgYy5zZXQoYSk7XG4gIGMuc2V0KGIsIGEubGVuZ3RoKTtcbiAgcmV0dXJuIGM7XG59XG5cbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYWxnb3Nkay5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodHhJZC5sZW5ndGggIT09IDEwNCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxIZXhDaGFycyh0eElkKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5KGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlTZWNyZXRLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGhleCBzdHJpbmcgb2YgdGhlIGdpdmVuIGJ1ZmZlclxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ1ZmZlciAtIHRoZSBidWZmZXIgdG8gYmUgY29udmVydGVkIHRvIGhleFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXggdmFsdWVcbiAgICovXG4gIHRvSGV4KGJ1ZmZlcjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGhleC5lbmNvZGUoYnVmZmVyLCB0cnVlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ2lzVmFsaWRTaWduYXR1cmUgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdoYXNoIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlIHR3byBLZXlzXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ga2V5MSAtIGtleSB0byBiZSBjb21wYXJlXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ga2V5MiAtIGtleSB0byBiZSBjb21wYXJlXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIHJldHVybnMgdHJ1ZSBpZiBib3RoIGtleXMgYXJlIGVxdWFsXG4gICAqL1xuICBhcmVLZXlzRXF1YWwoa2V5MTogVWludDhBcnJheSwga2V5MjogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuYWNsLnZlcmlmeShrZXkxLCBrZXkyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgVWludDhBcnJheSBvZiB0aGUgZ2l2ZW4gaGV4IHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gdGhlIGhleCBzdHJpbmcgdG8gYmUgY29udmVydGVkXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIFVpbnQ4QXJyYXkgdmFsdWVcbiAgICovXG4gIHRvVWludDhBcnJheShzdHI6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShzdHIsICdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzZWVkIGlzIHZhbGlkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VlZCAtIHRoZSBzZWVkIHRvIGJlIHZhbGlkYXRlZFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0cnVlIGlmIHRoZSBzZWVkIGlzIHZhbGlkXG4gICAqL1xuICBpc1ZhbGlkU2VlZChzZWVkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHNlZWQgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoc2VlZC5sZW5ndGggIT09IEFMR09SQU5EX1NFRURfTEVOR1RIKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBUcnkgdG8gZGVjb2RlXG4gICAgbGV0IGRlY29kZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGRlY29kZWQgPSB0aGlzLmRlY29kZVNlZWQoc2VlZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgY2hlY2tzdW1cbiAgICBjb25zdCBjaGVja3N1bSA9IG5ldyBVaW50OEFycmF5KFxuICAgICAgc2hhNTEyLnNoYTUxMl8yNTYuYXJyYXkoZGVjb2RlZC5zZWVkKS5zbGljZShTRUVEX0JZVEVTX0xFTkdUSCAtIEFMR09SQU5EX0NIRUNLU1VNX0JZVEVfTEVOR1RILCBTRUVEX0JZVEVTX0xFTkdUSClcbiAgICApO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGNoZWNrc3VtIG1hdGNoZXMgdGhlIG9uZSBmcm9tIHRoZSBkZWNvZGVkIHNlZWRcbiAgICByZXR1cm4gXy5pc0VxdWFsKGNoZWNrc3VtLCBkZWNvZGVkLmNoZWNrc3VtKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgYW4gYWxnbyBzZWVkXG4gICAqXG4gICAqIEBwYXJhbSAge0J1ZmZlcn0gc2VjcmV0S2V5IC0gdGhlIHZhbGlkIHNlY3JldEtleSAuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIHNlZWQgdG8gYmUgdmFsaWRhdGVkLlxuICAgKi9cbiAgZW5jb2RlU2VlZChzZWNyZXRLZXk6IEJ1ZmZlcik6IHN0cmluZyB7XG4gICAgLy8gZ2V0IHNlZWRcbiAgICBjb25zdCBzZWVkID0gc2VjcmV0S2V5LnNsaWNlKDAsIFNFRURfQllURVNfTEVOR1RIKTtcbiAgICAvLyBjb21wdXRlIGNoZWNrc3VtXG4gICAgY29uc3QgY2hlY2tzdW0gPSBCdWZmZXIuZnJvbShcbiAgICAgIHNoYTUxMi5zaGE1MTJfMjU2LmFycmF5KHNlZWQpLnNsaWNlKFNFRURfQllURVNfTEVOR1RIIC0gQUxHT1JBTkRfQ0hFQ0tTVU1fQllURV9MRU5HVEgsIFNFRURfQllURVNfTEVOR1RIKVxuICAgICk7XG4gICAgY29uc3QgZW5jb2RlZFNlZWQgPSBiYXNlMzIuZW5jb2RlKGNvbmNhdEFycmF5cyhzZWVkLCBjaGVja3N1bSkpO1xuXG4gICAgcmV0dXJuIGVuY29kZWRTZWVkLnRvU3RyaW5nKCkuc2xpY2UoMCwgQUxHT1JBTkRfU0VFRF9MRU5HVEgpOyAvLyByZW1vdmluZyB0aGUgZXh0cmEgJz09PT0nXG4gIH1cblxuICAvKipcbiAgICogZGVjb2RlU2VlZCBkZWNvZGVzIGFuIGFsZ28gc2VlZFxuICAgKlxuICAgKiBEZWNvZGluZyBhbGdvIHNlZWQgaXMgc2FtZSBhcyBkZWNvZGluZyBhZGRyZXNzLlxuICAgKiBMYXRlc3QgdmVyc2lvbiBvZiBhbGdvIHNkayAoMS45LCBhdCB0aGlzIHdyaXRpbmcpIGRvZXMgbm90IGV4cG9zZSBleHBsaWNpdCBtZXRob2QgZm9yIGRlY29kaW5nIHNlZWQuXG4gICAqIFBhcmFtZXRlciBpcyBkZWNvZGVkIGFuZCBzcGxpdCBpbnRvIHNlZWQgYW5kIGNoZWNrc3VtLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VlZCAtIGhleCBvciBiYXNlNjQgZW5jb2RlZCBzZWVkIHRvIGJlIHZhbGlkYXRlZFxuICAgKiBAcmV0dXJucyB7U2VlZH0gLSB2YWxpZGF0ZWQgb2JqZWN0IFNlZWRcbiAgICovXG4gIGRlY29kZVNlZWQoc2VlZDogc3RyaW5nKTogU2VlZCB7XG4gICAgLy8gdHJ5IHRvIGRlY29kZVxuICAgIGNvbnN0IGRlY29kZWQgPSBiYXNlMzIuZGVjb2RlLmFzQnl0ZXMoc2VlZCk7XG5cbiAgICAvLyBTYW5pdHkgY2hlY2tcbiAgICBpZiAoZGVjb2RlZC5sZW5ndGggIT09IEFMR09SQU5EX1NFRURfQllURV9MRU5HVEgpIHRocm93IG5ldyBFcnJvcignc2VlZCBzZWVtcyB0byBiZSBtYWxmb3JtZWQnKTtcbiAgICByZXR1cm4ge1xuICAgICAgc2VlZDogbmV3IFVpbnQ4QXJyYXkoZGVjb2RlZC5zbGljZSgwLCBBTEdPUkFORF9TRUVEX0JZVEVfTEVOR1RIIC0gQUxHT1JBTkRfQ0hFQ0tTVU1fQllURV9MRU5HVEgpKSxcbiAgICAgIGNoZWNrc3VtOiBuZXcgVWludDhBcnJheShkZWNvZGVkLnNsaWNlKFNFRURfQllURVNfTEVOR1RILCBBTEdPUkFORF9TRUVEX0JZVEVfTEVOR1RIKSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBpZiBzaWduYXR1cmUgZm9yIG1lc3NhZ2UgaXMgdmFsaWQuXG4gICAqXG4gICAqIEBwYXJhbSBwdWIge1VpbnQ4QXJyYXl9IHB1YmxpYyBrZXlcbiAgICogQHBhcmFtIG1lc3NhZ2Uge1VpbnQ4QXJyYXl9IHNpZ25lZCBtZXNzYWdlXG4gICAqIEBwYXJhbSBzaWduYXR1cmUge0J1ZmZlcn0gc2lnbmF0dXJlIHRvIHZlcmlmeVxuICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gdHJ1ZSBpZiBzaWduYXR1cmUgaXMgdmFsaWQuXG4gICAqL1xuICB2ZXJpZnlTaWduYXR1cmUobWVzc2FnZTogVWludDhBcnJheSwgc2lnbmF0dXJlOiBCdWZmZXIsIHB1YjogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuYWNsLnNpZ24uZGV0YWNoZWQudmVyaWZ5KG1lc3NhZ2UsIHNpZ25hdHVyZSwgcHViKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGFuIEVkMjU1MTkgcHVibGljIGtleSBpbnRvIGFuIGFsZ29yYW5kIGFkZHJlc3MuXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gcGsgVGhlIEVkMjU1MTkgcHVibGljIGtleS5cbiAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5hbGdvcmFuZC5vcmcvZG9jcy9mZWF0dXJlcy9hY2NvdW50cy8jdHJhbnNmb3JtYXRpb24tcHVibGljLWtleS10by1hbGdvcmFuZC1hZGRyZXNzXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhbGdvcmFuZCBhZGRyZXNzLlxuICAgKi9cbiAgcHVibGljS2V5VG9BbGdvQWRkcmVzcyhwazogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBLZXlQYWlyKHsgcHViOiBCdWZmZXIuZnJvbShwaykudG9TdHJpbmcoJ2hleCcpIH0pLmdldEFkZHJlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgVHJhbnNmb3JtcyBhIGRlY3J5cHRlZCBFZDI1NTE5IHByaXZhdGUga2V5IGludG8gYW4gYWxnb3JhbmQgYWRkcmVzcy5cbiAgIEBwYXJhbSB7c3RyaW5nfSBwcml2YXRlS2V5IFRoZSBFZDI1NTE5IHByaXZhdGUga2V5LlxuICAgQHJldHVybnMge3N0cmluZ30gVGhlIGFsZ29yYW5kIGFkZHJlc3MuXG4gICAqKi9cbiAgcHJpdmF0ZUtleVRvQWxnb0FkZHJlc3MocHJpdmF0ZUtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBEZXJpdmUgdGhlIGFjY291bnQgZnJvbSB0aGUgcHJpdmF0ZSBrZXlcbiAgICBjb25zdCBrZXlwYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IHByaXZhdGVLZXkgfSk7XG4gICAgcmV0dXJuIGtleXBhaXIuZ2V0QWRkcmVzcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHVuc2lnbmVkIGFsZ28gdHJhbnNhY3Rpb24gY2FuIGJlIGRlY29kZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gdHhuIFRoZSBlbmNvZGVkIHVuc2lnbmVkIHRyYW5zYWN0aW9uLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgdHJhbnNhY3Rpb24gY2FuIGJlIGRlY29kZWQsIG90aGVyd2lzZSBmYWxzZVxuICAgKi9cbiAgcHJvdGVjdGVkIGlzRGVjb2RhYmxlVW5zaWduZWRBbGdvVHhuKHR4bjogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBhbGdvc2RrLmRlY29kZVVuc2lnbmVkVHJhbnNhY3Rpb24odHhuKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBzaWduZWQgYWxnbyB0cmFuc2FjdGlvbiBjYW4gYmUgZGVjb2RlZC5cbiAgICpcbiAgICogQHBhcmFtIHtVaW50OEFycmF5fSB0eG4gVGhlIGVuY29kZWQgc2lnbmVkIHRyYW5zYWN0aW9uLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgdHJhbnNhY3Rpb24gY2FuIGJlIGRlY29kZWQsIG90aGVyd2lzZSBmYWxzZVxuICAgKi9cbiAgcHJvdGVjdGVkIGlzRGVjb2RhYmxlU2lnbmVkVHJhbnNhY3Rpb24odHhuOiBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGFsZ29zZGsuZGVjb2RlU2lnbmVkVHJhbnNhY3Rpb24odHhuKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIGEgc2lnbmVkIG9yIHVuc2lnbmVkIGFsZ28gdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheSB8IHN0cmluZ30gdHhuQnl0ZXMgVGhlIGVuY29kZWQgdW5zaWduZWQgb3Igc2lnbmVkIHR4bi5cbiAgICogQHJldHVybnMge0VuY29kZWRUeH0gVGhlIGRlY29kZWQgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBkZWNvZGVBbGdvVHhuKHR4bkJ5dGVzOiBVaW50OEFycmF5IHwgc3RyaW5nKTogRW5jb2RlZFR4IHtcbiAgICBsZXQgYnVmZmVyID1cbiAgICAgIHR5cGVvZiB0eG5CeXRlcyA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBCdWZmZXIuZnJvbSh0eG5CeXRlcywgYWxsSGV4Q2hhcnModHhuQnl0ZXMpID8gJ2hleCcgOiAnYmFzZTY0JylcbiAgICAgICAgOiBCdWZmZXIuZnJvbSh0eG5CeXRlcyk7XG5cbiAgICAvLyBJbiBvcmRlciB0byBtYWludGFpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggb2xkIGtleXJlZyB0cmFuc2FjdGlvbnMgZW5jb2RlZCB3aXRoXG4gICAgLy8gZm9ya2VkIGFsZ29zZGsgMS4yLjAgKGh0dHBzOi8vZ2l0aHViLmNvbS9CaXRHby9hbGdvc2RrLWJpdGdvKSxcbiAgICAvLyB0aGUgcmVsZXZhbnQgaW5mb3JtYXRpb24gaXMgZXh0cmFjdGVkIGFuZCBwYXJzZWQgZm9sbG93aW5nIHRoZSBsYXRlc3QgYWxnb3Nka1xuICAgIC8vIHJlbGVhc2Ugc3RhbmRhcmQuXG4gICAgLy8gVGhpcyB3YXkgd2UgY2FuIGRlY29kZSB0cmFuc2FjdGlvbnMgc3VjY2Vzc2Z1bGx5IGJ5IHN0aWxsIG1haW50YWluaW5nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAgY29uc3QgZGVjb2RlZFR4ID0gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlcik7XG4gICAgaWYgKFxuICAgICAgZGVjb2RlZFR4LnR4biAmJlxuICAgICAgZGVjb2RlZFR4LnR4bi50eXBlID09PSAna2V5cmVnJyAmJlxuICAgICAgZGVjb2RlZFR4LnR4bi52b3RlZnN0ICYmXG4gICAgICBkZWNvZGVkVHgudHhuLnZvdGVsc3QgJiZcbiAgICAgIGRlY29kZWRUeC50eG4udm90ZWtkXG4gICAgKSB7XG4gICAgICBkZWNvZGVkVHgudHhuLnZvdGVrZXkgPSBkZWNvZGVkVHgudHhuLnZvdGVrZXkgfHwgZGVjb2RlZFR4Lm1zaWcuc3Vic2lnWzBdLnBrO1xuICAgICAgZGVjb2RlZFR4LnR4bi5zZWxrZXkgPSBkZWNvZGVkVHgudHhuLnNlbGtleSB8fCBkZWNvZGVkVHgubXNpZy5zdWJzaWdbMF0ucGs7XG4gICAgICBidWZmZXIgPSBkZWNvZGVkVHgubXNpZyB8fCBkZWNvZGVkVHguc2lnID8gZW5jb2RpbmcuZW5jb2RlKGRlY29kZWRUeCkgOiBlbmNvZGluZy5lbmNvZGUoZGVjb2RlZFR4LnR4bik7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLnRyeVRvRGVjb2RlVW5zaWduZWRUcmFuc2FjdGlvbihidWZmZXIpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gSWdub3JlIGVycm9yIHRvIHRyeSBkaWZmZXJlbnQgZm9ybWF0XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLnRyeVRvRGVjb2RlU2lnbmVkVHJhbnNhY3Rpb24oYnVmZmVyKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gY2Fubm90IGJlIGRlY29kZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJ5IHRvIGRlY29kZSBhIHNpZ25lZCBBbGdvIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBidWZmZXIgdGhlIGVuY29kZWQgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMgeyBFbmNvZGVkVHggfSB0aGUgZGVjb2RlZCBzaWduZWQgdHJhbnNhY3Rpb25cbiAgICogQHRocm93cyBlcnJvciBpZiBpdCBpcyBub3QgYSB2YWxpZCBlbmNvZGVkIHNpZ25lZCB0cmFuc2FjdGlvblxuICAgKi9cbiAgdHJ5VG9EZWNvZGVTaWduZWRUcmFuc2FjdGlvbihidWZmZXI6IEJ1ZmZlcik6IEVuY29kZWRUeCB7XG4gICAgLy8gVE9ETzogUmVwbGFjZSB3aXRoXG4gICAgLy8gcmV0dXJuIGFsZ29zZGsuVHJhbnNhY3Rpb24uZnJvbV9vYmpfZm9yX2VuY29kaW5nKGFsZ29zZGsuZGVjb2RlU2lnbmVkVHJhbnNhY3Rpb24oYnVmZmVyKS50eG4pO1xuICAgIC8vIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kL2pzLWFsZ29yYW5kLXNkay9pc3N1ZXMvMzY0XG4gICAgLy8gXCIuLi5zb21lIHBhcnRzIG9mIHRoZSBjb2RlYmFzZSB0cmVhdCB0aGUgb3V0cHV0IG9mIFRyYW5zYWN0aW9uLmZyb21fb2JqX2Zvcl9lbmNvZGluZyBhcyBFbmNvZGVkVHJhbnNhY3Rpb24uXG4gICAgLy8gVGhleSBuZWVkIHRvIGJlIGZpeGVkKG9yIHdlIGF0IGxlYXN0IG5lZWQgdG8gbWFrZSBpdCBzbyBUcmFuc2FjdGlvbiBjb25mb3JtcyB0byBFbmNvZGVkVHJhbnNhY3Rpb24pLlwiXG4gICAgY29uc3QgdHggPSBhbGdvc2RrLmRlY29kZVNpZ25lZFRyYW5zYWN0aW9uKGJ1ZmZlcik7XG5cbiAgICBjb25zdCBzaWduZXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHNpZ25lZEJ5OiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICh0eC5tc2lnICYmIHR4Lm1zaWcuc3Vic2lnKSB7XG4gICAgICBmb3IgKGNvbnN0IHNpZyBvZiB0eC5tc2lnLnN1YnNpZykge1xuICAgICAgICBjb25zdCBhZGRyID0gYWxnb3Nkay5lbmNvZGVBZGRyZXNzKHNpZy5wayk7XG4gICAgICAgIHNpZ25lcnMucHVzaChhZGRyKTtcbiAgICAgICAgaWYgKHNpZy5zKSB7XG4gICAgICAgICAgc2lnbmVkQnkucHVzaChhZGRyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICByYXdUcmFuc2FjdGlvbjogbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSxcbiAgICAgIHR4bjogdHgudHhuLFxuICAgICAgc2lnbmVkOiB0cnVlLFxuICAgICAgc2lnbmVyczogc2lnbmVycyxcbiAgICAgIHNpZ25lZEJ5OiBzaWduZWRCeSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBkZWNvZGUgYW4gdW5zaWduZWQgQWxnbyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gYnVmZmVyIHRoZSBlbmNvZGVkIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtFbmNvZGVkVHh9IHRoZSBkZWNvZGVkIHVuc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqIEB0aHJvd3MgZXJyb3IgaWYgaXQgaXMgbm90IGEgdmFsaWQgZW5jb2RlZCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgKi9cbiAgdHJ5VG9EZWNvZGVVbnNpZ25lZFRyYW5zYWN0aW9uKGJ1ZmZlcjogQnVmZmVyKTogRW5jb2RlZFR4IHtcbiAgICBjb25zdCB0eG4gPSBhbGdvc2RrLmRlY29kZVVuc2lnbmVkVHJhbnNhY3Rpb24oYnVmZmVyKTtcbiAgICByZXR1cm4ge1xuICAgICAgcmF3VHJhbnNhY3Rpb246IG5ldyBVaW50OEFycmF5KGJ1ZmZlciksXG4gICAgICB0eG4sXG4gICAgICBzaWduZWQ6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICAvKlxuICAgKiBlbmNvZGVPYmogdGFrZXMgYSBqYXZhc2NyaXB0IG9iamVjdCBhbmQgcmV0dXJucyBpdHMgbXNncGFjayBlbmNvZGluZ1xuICAgKiBOb3RlIHRoYXQgdGhlIGVuY29kaW5nIHNvcnRzIHRoZSBmaWVsZHMgYWxwaGFiZXRpY2FsbHlcbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sLCBhbnk+fSBvYmoganMgb2JqXG4gICAqIEByZXR1cm5zIHtVaW50OEFycmF5fSBVaW50OEFycmF5IGJpbmFyeSByZXByZXNlbnRhdGlvblxuICAgKi9cbiAgZW5jb2RlT2JqKG9iajogUmVjb3JkPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgYW55Pik6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBhbGdvc2RrLmVuY29kZU9iaihvYmopO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlY29kZU9iaiB0YWtlcyBhIFVpbnQ4QXJyYXkgYW5kIHJldHVybnMgaXRzIGphdmFzY3JpcHQgb2JqXG4gICAqIEBwYXJhbSBvIC0gVWludDhBcnJheSB0byBkZWNvZGVcbiAgICogQHJldHVybnMgb2JqZWN0XG4gICAqL1xuICBkZWNvZGVPYmoobzogQXJyYXlMaWtlPG51bWJlcj4pOiB1bmtub3duIHtcbiAgICByZXR1cm4gYWxnb3Nkay5kZWNvZGVPYmoobyk7XG4gIH1cblxuICAvKipcbiAgICogc2VjcmV0S2V5VG9NbmVtb25pYyB0YWtlcyBhbiBBbGdvcmFudCBzZWNyZXQga2V5IGFuZCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIG1uZW1vbmljXG4gICAqXG4gICAqIEBwYXJhbSBzayAtIEFsZ29yYW50IHNlY3JldCBrZXlcbiAgICogQHJldHVybiBTZWNyZXQga2V5IGlzIGFzc29jaWF0ZWQgbW5lbW9uaWNcbiAgICovXG4gIHNlY3JldEtleVRvTW5lbW9uaWMoc2s6IEJ1ZmZlcik6IHN0cmluZyB7XG4gICAgY29uc3Qgc2tWYWxpZCA9IEJ1ZmZlci5mcm9tKHNrLnRvU3RyaW5nKCdoZXgnKSk7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRQcml2YXRlS2V5KHNrVmFsaWQudG9TdHJpbmcoJ2hleCcpKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRLZXkoYFRoZSBzZWNyZXQga2V5OiAke3NrLnRvU3RyaW5nKCdoZXgnKX0gaXMgaW52YWxpZGApO1xuICAgIH1cbiAgICBjb25zdCBza1VuaXQ4QXJyYXkgPSBCdWZmZXIuZnJvbShzayk7XG4gICAgcmV0dXJuIGFsZ29zZGsuc2VjcmV0S2V5VG9NbmVtb25pYyhza1VuaXQ4QXJyYXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIHNlZWRGcm9tTW5lbW9uaWMgY29udmVydHMgYSBtbmVtb25pYyBnZW5lcmF0ZWQgdXNpbmcgdGhpcyBsaWJyYXJ5IGludG8gdGhlIHNvdXJjZSBrZXkgdXNlZCB0byBjcmVhdGUgaXRcbiAgICogSXQgcmV0dXJucyBhbiBlcnJvciBpZiB0aGUgcGFzc2VkIG1uZW1vbmljIGhhcyBhbiBpbmNvcnJlY3QgY2hlY2tzdW0sIGlmIHRoZSBudW1iZXIgb2Ygd29yZHMgaXMgdW5leHBlY3RlZCwgb3IgaWYgb25lXG4gICAqIG9mIHRoZSBwYXNzZWQgd29yZHMgaXMgbm90IGZvdW5kIGluIHRoZSB3b3JkcyBsaXN0XG4gICAqXG4gICAqIEBwYXJhbSBtbmVtb25pYyAtIDI1IHdvcmRzIG1uZW1vbmljXG4gICAqIEByZXR1cm5zIDMyIGJ5dGVzIGxvbmcgc2VlZFxuICAgKi9cbiAgc2VlZEZyb21NbmVtb25pYyhtbmVtb25pYzogc3RyaW5nKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIGFsZ29zZGsubW5lbW9uaWNUb01hc3RlckRlcml2YXRpb25LZXkobW5lbW9uaWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGtleVBhaXJGcm9tU2VlZCBnZW5lcmF0ZXMgYW4gb2JqZWN0IHdpdGggc2VjcmV0S2V5IGFuZCBwdWJsaWNLZXkgdXNpbmcgdGhlIGFsZ29zZGtcbiAgICogQHBhcmFtIHNlZWQgMzIgYnl0ZXMgbG9uZyBzZWVkXG4gICAqIEByZXR1cm5zIEtleVBhaXJcbiAgICovXG4gIGtleVBhaXJGcm9tU2VlZChzZWVkOiBVaW50OEFycmF5KTogS2V5UGFpciB7XG4gICAgY29uc3QgbW4gPSB0aGlzLm1uZW1vbmljRnJvbVNlZWQoc2VlZCk7XG4gICAgY29uc3QgYmFzZTY0UHJpdmF0ZUtleSA9IGFsZ29zZGsubW5lbW9uaWNUb1NlY3JldEtleShtbikuc2s7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlS2V5UGFpcihiYXNlNjRQcml2YXRlS2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIG5ldyBgS2V5UGFpcmAgb2JqZWN0IGZyb20gdGhlIGdpdmVuIHByaXZhdGUga2V5LlxuICAgKlxuICAgKiBAcGFyYW0gYmFzZTY0UHJpdmF0ZUtleSA2NCBieXRlcyBsb25nIHByaXZhdGVLZXlcbiAgICogQHJldHVybnMgS2V5UGFpclxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUtleVBhaXIoYmFzZTY0UHJpdmF0ZUtleTogVWludDhBcnJheSk6IEtleVBhaXIge1xuICAgIGNvbnN0IHNrID0gYmFzZTY0UHJpdmF0ZUtleS5zbGljZSgwLCAzMik7XG4gICAgcmV0dXJuIG5ldyBLZXlQYWlyKHsgcHJ2OiBCdWZmZXIuZnJvbShzaykudG9TdHJpbmcoJ2hleCcpIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlY29kZVByaXZhdGVLZXkgZ2VuZXJhdGVzIGEgc2VlZCB3aXRoIGEgbW5lbW9uaWMgYW5kIHVzaW5nIGFsZ29zZGsuXG4gICAqXG4gICAqIEBwYXJhbSBzZWVkIDMyIGJ5dGVzIGxvbmcgc2VlZFxuICAgKiBAcmV0dXJucyBtbmVtb25pYyAtIDI1IHdvcmRzIG1uZW1vbmljIC0gMjUgd29yZHMgbW5lbW9uaWNcbiAgICovXG4gIHByb3RlY3RlZCBtbmVtb25pY0Zyb21TZWVkKHNlZWQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICAgIHJldHVybiBhbGdvc2RrLm1hc3RlckRlcml2YXRpb25LZXlUb01uZW1vbmljKHNlZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUga2V5IHdpdGggdGhlIHN0ZWxsYXItc2RrXG4gICAqXG4gICAqIEBwYXJhbSBwdWJsaWNLZXlcbiAgICogQHJldHVybnMgYm9vbGVhblxuICAgKi9cbiAgcHJvdGVjdGVkIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5U3RlbGxhcihwdWJsaWNLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGVsbGFyLlN0cktleS5pc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShwdWJsaWNLZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY29kZXMgdGhlIGtleSB3aXRoIHRoZSBzdGVsbGFyLXNka1xuICAgKlxuICAgKiBAcGFyYW0gcHVibGljS2V5XG4gICAqIEByZXR1cm5zIEJ1ZmZlclxuICAgKi9cbiAgcHJvdGVjdGVkIGRlY29kZUVkMjU1MTlQdWJsaWNLZXlTdGVsbGFyKHB1YmxpY0tleTogc3RyaW5nKTogQnVmZmVyIHtcbiAgICByZXR1cm4gc3RlbGxhci5TdHJLZXkuZGVjb2RlRWQyNTUxOVB1YmxpY0tleShwdWJsaWNLZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBzdGVsbGFyIHNlZWQgdG8gYWxnb3JhbmQgZW5jb2RpbmdcbiAgICpcbiAgICogQHBhcmFtIHNlZWRcbiAgICogQHJldHVybnMgc3RyaW5nIHRoZSBlbmNvZGVkIHNlZWRcbiAgICovXG4gIGNvbnZlcnRGcm9tU3RlbGxhclNlZWQoc2VlZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU2VlZEVuY29kaW5nLmVuY29kZShzdGVsbGFyLlN0cktleS5kZWNvZGVFZDI1NTE5U2VjcmV0U2VlZChzZWVkKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhZGRyZXNzIGVuY29kZWQgd2l0aCBhbGdvc2RrXG4gICAqXG4gICAqIEBwYXJhbSBhZGRyXG4gICAqIEByZXR1cm5zIHN0cmluZ1xuICAgKi9cbiAgZW5jb2RlQWRkcmVzcyhhZGRyOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWxnb3Nkay5lbmNvZGVBZGRyZXNzKGFkZHIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhZGRyZXNzIGRlY29kZWQgd2l0aCBhbGdvc2RrXG4gICAqXG4gICAqIEBwYXJhbSBhZGRyXG4gICAqIEByZXR1cm5zIEFkZHJlc3NcbiAgICovXG4gIGRlY29kZUFkZHJlc3MoYWRkcjogc3RyaW5nKTogQWRkcmVzcyB7XG4gICAgcmV0dXJuIGFsZ29zZGsuZGVjb2RlQWRkcmVzcyhhZGRyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBhZGRyZXNzIGludG8gYW4gQUxHTyBvbmVcbiAgICogSWYgdGhlIGdpdmVuIGRhdGEgaXMgYSBTdGVsbGFyIGFkZHJlc3Mgb3IgcHVibGljIGtleSwgaXQgaXMgY29udmVydGVkIHRvIEFMR08gYWRkcmVzcy5cbiAgICpcbiAgICogQHBhcmFtIGFkZHJlc3NPclB1YktleSBhbiBBTEdPIGFkZHJlc3MsIG9yIGFuIFN0ZWxsYXIgYWRkcmVzcyBvciBwdWJsaWMga2V5XG4gICAqIEByZXR1cm5zIGFkZHJlc3MgYWxnbyBhZGRyZXNzIHN0cmluZ1xuICAgKi9cbiAgc3RlbGxhckFkZHJlc3NUb0FsZ29BZGRyZXNzKGFkZHJlc3NPclB1YktleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyB3ZSBoYXZlIGFuIEFsZ29yYW5kIGFkZHJlc3NcbiAgICBpZiAodGhpcy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzT3JQdWJLZXkpKSB7XG4gICAgICByZXR1cm4gYWRkcmVzc09yUHViS2V5O1xuICAgIH1cbiAgICAvLyB3ZSBoYXZlIGEgc3RlbGxhciBrZXlcbiAgICBpZiAodGhpcy5pc1ZhbGlkRWQyNTUxOVB1YmxpY0tleVN0ZWxsYXIoYWRkcmVzc09yUHViS2V5KSkge1xuICAgICAgY29uc3Qgc3RlbGxhclB1YiA9IHRoaXMuZGVjb2RlRWQyNTUxOVB1YmxpY0tleVN0ZWxsYXIoYWRkcmVzc09yUHViS2V5KTtcbiAgICAgIGNvbnN0IGFsZ29BZGRyZXNzID0gdGhpcy5lbmNvZGVBZGRyZXNzKHN0ZWxsYXJQdWIpO1xuICAgICAgaWYgKHRoaXMuaXNWYWxpZEFkZHJlc3MoYWxnb0FkZHJlc3MpKSB7XG4gICAgICAgIHJldHVybiBhbGdvQWRkcmVzcztcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbnZlcnQgU3RlbGxhciBhZGRyZXNzIHRvIGFuIEFsZ29yYW5kIGFkZHJlc3MgdmlhIHB1YmtleS4nKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOZWl0aGVyIGFuIEFsZ29yYW5kIGFkZHJlc3Mgbm9yIGEgc3RlbGxhciBwdWJrZXkuJyk7XG4gIH1cblxuICAvKipcbiAgICogbXVsdGlzaWdBZGRyZXNzIHRha2VzIG11bHRpc2lnIG1ldGFkYXRhIChwcmVpbWFnZSkgYW5kIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgaHVtYW4gcmVhZGFibGUgQWxnb3JhbmQgYWRkcmVzcy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHZlcnNpb24gbXV0bGlzaWcgdmVyc2lvblxuICAgKiBAcGFyYW0ge251bWJlcn0gdGhyZXNob2xkIG11bHRpc2lnIHRocmVzaG9sZFxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhZGRycyBsaXN0IG9mIEFsZ29yYW5kIGFkZHJlc3Nlc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBodW1hbiByZWFkYWJsZSBBbGdvcmFuZCBhZGRyZXNzLlxuICAgKi9cbiAgbXVsdGlzaWdBZGRyZXNzKHZlcnNpb246IG51bWJlciwgdGhyZXNob2xkOiBudW1iZXIsIGFkZHJzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFsZ29zZGsubXVsdGlzaWdBZGRyZXNzKHtcbiAgICAgIHZlcnNpb24sXG4gICAgICB0aHJlc2hvbGQsXG4gICAgICBhZGRycyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZW5lcmF0ZUFjY291bnQgZ2VuZXJhdGVzIHVuIGFjY291bnQgd2l0aCBhIHNlY3JldEtleSBhbmQgYW4gYWRkcmVzc1xuICAgKlxuICAgKiBGdW5jdGlvbiBoYXMgbm90IHBhcmFtc1xuICAgKiBAcmV0dXJucyBBY2NvdW50XG4gICAqL1xuICBnZW5lcmF0ZUFjY291bnQoKTogYWxnb3Nkay5BY2NvdW50IHtcbiAgICByZXR1cm4gYWxnb3Nkay5nZW5lcmF0ZUFjY291bnQoKTtcbiAgfVxuXG4gIGdlbmVyYXRlQWNjb3VudEZyb21TZWVkKHNlZWQ6IFVpbnQ4QXJyYXkpOiBhbGdvc2RrLkFjY291bnQge1xuICAgIGNvbnN0IGtleXMgPSBuYWNsLnNpZ24ua2V5UGFpci5mcm9tU2VlZChzZWVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcjogYWxnb3Nkay5lbmNvZGVBZGRyZXNzKGtleXMucHVibGljS2V5KSxcbiAgICAgIHNrOiBrZXlzLnNlY3JldEtleSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBUeCBJRCBmcm9tIGFuIGVuY29kZWQgbXVsdGlzaWcgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogVGhpcyBpcyBkb25lIGJlY2F1c2Ugb2YgYSBjaGFuZ2UgbWFkZSBvbiB2ZXJzaW9uIDEuMTAuMSBvbiBhbGdvc2RrIHNvIG1ldGhvZCB0eElEKCkgb25seSBzdXBwb3J0cyBTaWduZWRUcmFuc2FjdGlvbiB0eXBlLlxuICAgKiAoaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kL2pzLWFsZ29yYW5kLXNkay9ibG9iL2RldmVsb3AvQ0hBTkdFTE9HLm1kIzExMDEpXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0eEJhc2U2NCAtIGVuY29kZWQgYmFzZTY0IG11bHRpc2lnIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdHJhbnNhY3Rpb24gSURcbiAgICovXG4gIGdldE11bHRpc2lnVHhJRCh0eEJhc2U2NDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0eEJ5dGVzID0gQnVmZmVyLmZyb20odHhCYXNlNjQsICdiYXNlNjQnKTtcbiAgICBjb25zdCBkZWNvZGVTaWduVHggPSBhbGdvc2RrLmRlY29kZVNpZ25lZFRyYW5zYWN0aW9uKHR4Qnl0ZXMpO1xuICAgIGNvbnN0IHdlbGxGb3JtZWREZWNvZGVkU2lnblR4ID0gZGVjb2RlU2lnblR4LnR4bi5nZXRfb2JqX2Zvcl9lbmNvZGluZygpO1xuICAgIGNvbnN0IHR4Rm9yRW5jb2RpbmcgPSB7IG1zaWc6IGRlY29kZVNpZ25UeC5tc2lnLCB0eG46IHdlbGxGb3JtZWREZWNvZGVkU2lnblR4IH07XG4gICAgY29uc3QgZW5fbXNnID0gZW5jb2RpbmcuZW5jb2RlKHR4Rm9yRW5jb2RpbmcpO1xuICAgIGNvbnN0IHRhZyA9IEJ1ZmZlci5mcm9tKFs4NCwgODhdKTtcbiAgICBjb25zdCBnaCA9IEJ1ZmZlci5mcm9tKGNvbmNhdEFycmF5cyh0YWcsIGVuX21zZykpO1xuICAgIGNvbnN0IGhhc2ggPSBCdWZmZXIuZnJvbShhbGdvTmFjbC5nZW5lcmljSGFzaChnaCkpO1xuICAgIHJldHVybiBiYXNlMzIuZW5jb2RlKGhhc2gpLnNsaWNlKDAsIEFMR09SQU5EX1RSQU5TQUNUSU9OX0xFTkdUSCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIHRyYW5zYWN0aW9uIGRhdGEgaXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgYSB0b2tlblxuICAgKiBAcGFyYW0gYW1vdW50IHRoZSBhbW91bnQgaW4gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIGZyb20gdGhlIG9yaWdpbmF0ZWQgYWRkcmVzc1xuICAgKiBAcGFyYW0gdG8gdGhlIHRhcmdldCBhZGRyZXNzXG4gICAqIEBwYXJhbSBjbG9zZVJlbWFpbmRlclRvIChvcHRpb25hbCkgYWRkcmVzcyB0byBzZW5kIHJlbWFpbmluZyB1bml0cyBpbiBvcmlnaW5hdGVkIGFkZHJlc3NcbiAgICogQHJldHVybnMgJ2VuYWJsZVRva2VuJyBvciAnZGlzYWJsZVRva2VuJ1xuICAgKi9cbiAgZ2V0VG9rZW5UeFR5cGUoYW1vdW50OiBzdHJpbmcsIGZyb206IHN0cmluZywgdG86IHN0cmluZywgY2xvc2VSZW1haW5kZXJUbz86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHR5cGUgPSAndHJhbnNmZXJUb2tlbic7XG4gICAgaWYgKGFtb3VudCA9PT0gJzAnICYmIGZyb20gPT09IHRvKSB7XG4gICAgICB0eXBlID0gIWNsb3NlUmVtYWluZGVyVG8gPyAnZW5hYmxlVG9rZW4nIDogJ2Rpc2FibGVUb2tlbic7XG4gICAgfVxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGlmIHRoZSBrZXkgaXMgYSB2YWxpZCBiYXNlNjQgc3RyaW5nXG4gICAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byB2YWxpZGF0ZVxuICAgKi9cbiAgdmFsaWRhdGVCYXNlNjQoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWtleSB8fCB0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGJhc2U2NCBzdHJpbmcnKTtcbiAgICB9XG4gICAgY29uc3QgYmFzZTY0UmVnRXhwID1cbiAgICAgIC9eKD86W2EtekEtWjAtOStcXC9dezR9KSooPzp8KD86W2EtekEtWjAtOStcXC9dezN9PSl8KD86W2EtekEtWjAtOStcXC9dezJ9PT0pfCg/OlthLXpBLVowLTkrXFwvXXsxfT09PSkpJC87XG4gICAgaWYgKCFiYXNlNjRSZWdFeHAudGVzdChrZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgYmFzZTY0IHN0cmluZycpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
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
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.SeedValidator = void 0;
|
|
27
37
|
const stellar = __importStar(require("stellar-sdk"));
|
|
@@ -90,4 +100,4 @@ class SeedValidator {
|
|
|
90
100
|
}
|
|
91
101
|
}
|
|
92
102
|
exports.SeedValidator = SeedValidator;
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VlZFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWVkVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUF1QztBQUN2QywwQ0FBNEI7QUFDNUIsNENBQTRDO0FBQzVDLCtCQUFrQztBQUNsQywwREFBcUQ7QUFDckQ7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBWTtRQUN2QyxJQUFJLElBQUksR0FBMkIsU0FBUyxDQUFDO1FBRTdDLDRGQUE0RjtRQUM1RixJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakQsNkZBQTZGO1lBQzdGLDZFQUE2RTtZQUM3RSw4QkFBOEI7WUFFOUIsSUFBSSxlQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFBRSxJQUFJLEdBQUcsb0JBQVUsQ0FBQyxJQUFJLENBQUM7WUFDeEQsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQztnQkFBRSxJQUFJLEdBQUcsb0JBQVUsQ0FBQyxHQUFHLENBQUM7WUFDekUsSUFBSSxhQUFhLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksR0FBRyxvQkFBVSxDQUFDLElBQUksQ0FBQztRQUN4RSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsVUFBc0I7UUFDbkUsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELE9BQU8sVUFBVSxLQUFLLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFZO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLGVBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0QsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQVk7UUFDdkMsSUFBSSxDQUFDO1lBQ0gseUJBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBM0RELHNDQTJEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHN0ZWxsYXIgZnJvbSAnc3RlbGxhci1zZGsnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQ29pbkZhbWlseSB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IGFsZ29VdGlscyB9IGZyb20gJy4vbGliJztcbmltcG9ydCB7IFByaXZhdGVLZXkgfSBmcm9tICdAaGFzaGdyYXBoL2NyeXB0b2dyYXBoeSc7XG4vKipcbiAqIFRoaXMgY2xhc3NlcyBpbnRlbnRpb24gaXMgdG8gZ3Vlc3MvdmVyaWZ5IHdoYXQgc2VlZHMgY29tZSBmcm9tIHdoZXJlLlxuICovXG5leHBvcnQgY2xhc3MgU2VlZFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBUcnkgdG8gZ3Vlc3Mgd2hhdCBraW5kIG9mIHNlZWQgdGhpcyBjb3VsZCBiZVxuICAgKiBAcGFyYW0gc2VlZFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSBjb2luIHR5cGUgaXMgdW5kZXRlY3RhYmxlLiByZXR1cm5zXG4gICAqIHRoZSBjb2luIGZhbWlseSBvdGhlcndpc2UuXG4gICAqL1xuICBzdGF0aWMgZ2V0Q29pbkZhbWlseUZyb21TZWVkKHNlZWQ6IHN0cmluZyk6IENvaW5GYW1pbHkgfCB1bmRlZmluZWQge1xuICAgIGxldCBjb2luOiBDb2luRmFtaWx5IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgLy8gaWYgdGhpcyBjYW4gYmUgaW1wbGVtZW50ZWQgaW4gbW9yZSB0aGFuIG9uZSBjb21wZXRpbmcgc2VlZCBmb3JtYXQsIHRoYXQgY291bGQgYmUgYW4gaXNzdWVcbiAgICBpZiAoIVNlZWRWYWxpZGF0b3IuaGFzQ29tcGV0aW5nU2VlZEZvcm1hdHMoc2VlZCkpIHtcbiAgICAgIC8vIG9yZGVyaW5nIGdlbmVyYWxseSBtYXR0ZXJzIGhlcmUgLSBoYmFyIGlzIHRoZSBsZWFzdCBwZXJtaXNzaXZlIGZvciBzZWVkIGNoZWNraW5nLCBhbGdvIGFuZFxuICAgICAgLy8gc3RlbGxhciBoYXZlIGNoZWNrc3Vtcy4gY29pbiBpcyBndWFyYW50ZWVkIHRvIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBieSB0aGVcbiAgICAgIC8vIGNvbXBldGluZyBzZWVkIGZvcm1hdCBjaGVja1xuXG4gICAgICBpZiAoYWxnb1V0aWxzLmlzVmFsaWRTZWVkKHNlZWQpKSBjb2luID0gQ29pbkZhbWlseS5BTEdPO1xuICAgICAgaWYgKHN0ZWxsYXIuU3RyS2V5LmlzVmFsaWRFZDI1NTE5U2VjcmV0U2VlZChzZWVkKSkgY29pbiA9IENvaW5GYW1pbHkuWExNO1xuICAgICAgaWYgKFNlZWRWYWxpZGF0b3IuaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQpKSBjb2luID0gQ29pbkZhbWlseS5IQkFSO1xuICAgIH1cblxuICAgIHJldHVybiBjb2luO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoaXMgaXMgYSB2YWxpZCBzZWVkIGZvciB0aGlzIGNvaW4gZmFtaWx5IHR5cGUuXG4gICAqIEBwYXJhbSBzZWVkIC0gc2VlZFxuICAgKiBAcGFyYW0gY29pbkZhbWlseSAtIHRoZSBjb2luRmFtaWx5IG9mIHRoZSBjb2luIHdlJ3JlIHdvcmtpbmcgd2l0aFxuICAgKi9cbiAgc3RhdGljIGlzVmFsaWRFZDI1NTE5U2VlZEZvckNvaW4oc2VlZDogc3RyaW5nLCBjb2luRmFtaWx5OiBDb2luRmFtaWx5KTogYm9vbGVhbiB7XG4gICAgY29uc3QgZ3Vlc3NlZENvaW4gPSBTZWVkVmFsaWRhdG9yLmdldENvaW5GYW1pbHlGcm9tU2VlZChzZWVkKTtcbiAgICByZXR1cm4gY29pbkZhbWlseSA9PT0gZ3Vlc3NlZENvaW47XG4gIH1cblxuICAvKipcbiAgICogV2UgbmVlZCB0byBlbnN1cmUgdGhlcmUgaXMgbm8gb3ZlcmxhcCBmb3IgYW55IHR3byBzZWVkcyB3ZSBwdXQgaW50byB0aGlzIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uc1xuICAgKiBpbnRlbnRpb24gaXMgZm9yIGdhdGluZyB3aGV0aGVyIHRoaXMgc2VlZCBjb3VsZCBwb3NzaWJseSBtYXRjaCB0d28gZm9ybWF0cyBvciBpcyBpbnZhbGlkIGl0c2VsZi5cbiAgICogQHBhcmFtIHNlZWRcbiAgICovXG4gIHN0YXRpYyBoYXNDb21wZXRpbmdTZWVkRm9ybWF0cyhzZWVkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0FsZ29TZWVkID0gYWxnb1V0aWxzLmlzVmFsaWRTZWVkKHNlZWQpO1xuICAgIGNvbnN0IGlzU3RlbGxhclNlZWQgPSBzdGVsbGFyLlN0cktleS5pc1ZhbGlkRWQyNTUxOVNlY3JldFNlZWQoc2VlZCk7XG4gICAgY29uc3QgaXNIYmFyU2VlZCA9IFNlZWRWYWxpZGF0b3IuaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQpO1xuXG4gICAgcmV0dXJuIF8uc3VtKFtpc0FsZ29TZWVkLCBpc1N0ZWxsYXJTZWVkLCBpc0hiYXJTZWVkXSkgIT09IDE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaXMgYSB2YWxpZCBIYmFyIHBydi4gVGhlc2UgY2FuIGJlIGVuY29kZWQgZGlmZmVyZW50bHkuXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBQcml2YXRlS2V5LmZyb21TdHJpbmcoc2VlZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo/sdk-coin-algo",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.49",
|
|
4
4
|
"description": "BitGo SDK coin library for Algorand",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
]
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@bitgo/sdk-core": "^28.
|
|
44
|
-
"@bitgo/statics": "^50.
|
|
43
|
+
"@bitgo/sdk-core": "^28.15.1",
|
|
44
|
+
"@bitgo/statics": "^50.12.0",
|
|
45
45
|
"@hashgraph/cryptography": "1.1.2",
|
|
46
46
|
"@stablelib/hex": "^1.0.0",
|
|
47
47
|
"algosdk": "1.23.1",
|
|
@@ -54,10 +54,10 @@
|
|
|
54
54
|
"tweetnacl": "^1.0.3"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@bitgo/sdk-api": "^1.
|
|
58
|
-
"@bitgo/sdk-test": "^8.0.
|
|
57
|
+
"@bitgo/sdk-api": "^1.57.0",
|
|
58
|
+
"@bitgo/sdk-test": "^8.0.56",
|
|
59
59
|
"should": "^13.1.3",
|
|
60
60
|
"sinon": "^7.5.0"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "468038e97633249365d8361415fd04c52edb47a0"
|
|
63
63
|
}
|