@witnet/sdk 1.2.7 → 3.0.2
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/.env_witnet +18 -18
- package/LICENSE +21 -21
- package/README.md +116 -116
- package/dist/package.json +14 -3
- package/dist/src/bin/helpers.d.ts +1 -0
- package/dist/src/bin/helpers.d.ts.map +1 -1
- package/dist/src/bin/helpers.js +31 -54
- package/dist/src/lib/crypto/account.d.ts.map +1 -1
- package/dist/src/lib/crypto/account.js +3 -9
- package/dist/src/lib/crypto/coinbase.d.ts.map +1 -1
- package/dist/src/lib/crypto/coinbase.js +2 -2
- package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
- package/dist/src/lib/crypto/interfaces.js +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +4 -6
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.js +20 -71
- package/dist/src/lib/crypto/payloads/StakePayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/StakePayload.js +4 -9
- package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/UnstakePayload.js +4 -7
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +4 -9
- package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads.js +6 -13
- package/dist/src/lib/crypto/signer.d.ts.map +1 -1
- package/dist/src/lib/crypto/signer.js +2 -2
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/DataRequests.js +2 -2
- package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/StakeDeposits.js +2 -2
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +2 -2
- package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/ValueTransfers.js +2 -2
- package/dist/src/lib/crypto/transmitters.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters.js +22 -31
- package/dist/src/lib/crypto/types.d.ts.map +1 -1
- package/dist/src/lib/crypto/types.js +6 -13
- package/dist/src/lib/crypto/utils.d.ts.map +1 -1
- package/dist/src/lib/crypto/utils.js +5 -9
- package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
- package/dist/src/lib/crypto/wallet.js +9 -23
- package/dist/src/lib/radon/ccdr/eth.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/eth.js +12 -32
- package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/wit.js +3 -6
- package/dist/src/lib/radon/index.d.ts.map +1 -1
- package/dist/src/lib/radon/index.js +18 -41
- package/dist/src/lib/radon/reducers.js +2 -2
- package/dist/src/lib/radon/types.d.ts.map +1 -1
- package/dist/src/lib/radon/types.js +6 -32
- package/dist/src/lib/radon/utils.d.ts +1 -1
- package/dist/src/lib/radon/utils.d.ts.map +1 -1
- package/dist/src/lib/radon/utils.js +8 -9
- package/dist/src/lib/rest/kermit.d.ts.map +1 -1
- package/dist/src/lib/rest/kermit.js +1 -1
- package/dist/src/lib/rpc/nodes.d.ts.map +1 -1
- package/dist/src/lib/rpc/nodes.js +8 -28
- package/dist/src/lib/rpc/provider.d.ts.map +1 -1
- package/dist/src/lib/rpc/provider.js +16 -38
- package/dist/src/lib/rpc/types.d.ts.map +1 -1
- package/dist/src/lib/rpc/types.js +1 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +2 -5
- package/dist/witnet/assets/index.cjs +1 -1
- package/dist/witnet/assets/modals/index.cjs +1 -1
- package/dist/witnet/assets/modals/web3/eth.cjs +2 -2
- package/dist/witnet/assets/modals/web3/ipfs.cjs +2 -2
- package/dist/witnet/assets/modals/web3/wit.cjs +4 -11
- package/dist/witnet/assets/requests.cjs +3 -11
- package/package.json +7 -3
- package/src/bin/bots/watcher.cjs +27 -93
- package/src/bin/cli/inspect.js +30 -119
- package/src/bin/cli/network.js +46 -202
- package/src/bin/cli/nodes.js +12 -58
- package/src/bin/cli/radon.js +161 -396
- package/src/bin/cli/wallet.js +69 -241
- package/src/bin/helpers.js +66 -162
- package/src/bin/index.js +23 -52
- package/witnet/assets/_index.cjs +5 -5
- package/witnet/assets/_requests.cjs +25 -25
- package/witnet/assets/_sources.cjs +36 -36
- package/witnet/assets/_templates.cjs +36 -36
- package/witnet/assets/index.cjs +4 -4
- package/witnet/assets/modals/index.cjs +7 -7
- package/witnet/assets/modals/web3/eth.cjs +22 -27
- package/witnet/assets/modals/web3/ipfs.cjs +17 -22
- package/witnet/assets/modals/web3/wit.cjs +16 -28
- package/witnet/assets/requests.cjs +41 -49
|
@@ -25,7 +25,7 @@ export class Signer {
|
|
|
25
25
|
const now = Math.floor(Date.now() / 1000);
|
|
26
26
|
let expendable = 0n;
|
|
27
27
|
let timelock = Number.MAX_SAFE_INTEGER;
|
|
28
|
-
this.utxos.
|
|
28
|
+
this.utxos.forEach((utxo) => {
|
|
29
29
|
if (utxo.timelock > now) {
|
|
30
30
|
if (utxo.timelock < timelock) {
|
|
31
31
|
timelock = utxo.timelock;
|
|
@@ -189,4 +189,4 @@ export class Signer {
|
|
|
189
189
|
};
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFRakQsT0FBTyxLQUFLLEtBQUssTUFBTSxhQUFhLENBQUM7QUFFckMsT0FBTyxFQUdOLFNBQVMsRUFFVCxvQkFBb0IsRUFHcEIscUJBQXFCLEdBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsTUFBTSxPQUFPLE1BQU07SUFDUixJQUFJLENBQVM7SUFDYixLQUFLLEdBQWdCLEVBQUUsQ0FBQztJQUMxQixZQUFZLENBQVU7SUFFZCxRQUFRLENBQW1CO0lBQ3BDLFFBQVEsQ0FBd0I7SUFFdkMsWUFDQyxJQUFZLEVBQ1osUUFBMEIsRUFDMUIsUUFBZ0M7UUFFaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUkscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsTUFBTSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCxtSEFBbUg7SUFFbkgsSUFBVyxTQUFTO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFL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QUM3QyxPQUFPO1lBQ04sT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFLFNBQVMsQ0FBQyxZQUFZLENBQ2hDLGNBQWMsQ0FBQyxVQUFVLENBQ3pCLENBQUMsV0FBVyxFQUFFO1lBQ2YsU0FBUyxFQUFFLG9CQUFvQixDQUFDLGtCQUFrQixDQUNqRCxjQUFjLEVBQ2QsTUFBTSxDQUNOLENBQUMsV0FBVyxFQUFFO1NBQ2YsQ0FBQztJQUNILENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV0aGVycyB9IGZyb20gXCJldGhlcnNcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMga2VjY2FrMjU2IH0gZnJvbSBcImtlY2NhazI1NlwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBzZWNwMjU2azEgfSBmcm9tIFwic2VjcDI1NmsxXCI7XG5pbXBvcnQgdHlwZSB7XG5cdEJhbGFuY2UsXG5cdEhleFN0cmluZyxcblx0TmV0d29yayxcblx0UXVlcnlTdGFrZXNPcmRlcixcblx0U3Rha2VFbnRyeSxcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcbmltcG9ydCB0eXBlIHsgSUJJUDMyLCBJSnNvblJwY1Byb3ZpZGVyLCBJU2lnbmVyIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy5qc1wiO1xuaW1wb3J0IHtcblx0dHlwZSBDb2lucyxcblx0dHlwZSBLZXllZFNpZ25hdHVyZSxcblx0UHVibGljS2V5LFxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFJlY292ZXJhYmxlU2lnbmF0dXJlLFxuXHR0eXBlIFV0eG8sXG5cdHR5cGUgVXR4b0NhY2hlSW5mbyxcblx0VXR4b1NlbGVjdGlvblN0cmF0ZWd5LFxufSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgc2VsZWN0VXR4b3MgfSBmcm9tIFwiLi91dGlscy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgU2lnbmVyIGltcGxlbWVudHMgSVNpZ25lciB7XG5cdHByb3RlY3RlZCBub2RlOiBJQklQMzI7XG5cdHByb3RlY3RlZCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcblx0cHJpdmF0ZSBfaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG5cblx0cHVibGljIHJlYWRvbmx5IHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyO1xuXHRwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRub2RlOiBJQklQMzIsXG5cdFx0cHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXIsXG5cdFx0c3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksXG5cdCkge1xuXHRcdHRoaXMubm9kZSA9IG5vZGU7XG5cdFx0dGhpcy5wcm92aWRlciA9IHByb3ZpZGVyO1xuXHRcdHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU2xpbUZpdDtcblx0XHRpZiAoIXByb3ZpZGVyLm5ldHdvcmspIHtcblx0XHRcdHRocm93IEVycm9yKGBTaWduZXI6IGludGVybmFsIGVycm9yOiB1bmludGlhbGl6ZWQgcHJvdmlkZXIuYCk7XG5cdFx0fVxuXHRcdHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdC8vIC0tLSBJTGVkZ2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgZ2V0IGNhY2hlSW5mbygpOiBVdHhvQ2FjaGVJbmZvIHtcblx0XHRjb25zdCBub3cgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcblx0XHRsZXQgZXhwZW5kYWJsZTogYmlnaW50ID0gMG47XG5cdFx0bGV0IHRpbWVsb2NrOiBudW1iZXIgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcblx0XHR0aGlzLnV0eG9zLm1hcCgodXR4bykgPT4ge1xuXHRcdFx0aWYgKHV0eG8udGltZWxvY2sgPiBub3cpIHtcblx0XHRcdFx0aWYgKHV0eG8udGltZWxvY2sgPCB0aW1lbG9jaykge1xuXHRcdFx0XHRcdHRpbWVsb2NrID0gdXR4by50aW1lbG9jaztcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZXhwZW5kYWJsZSArPSB1dHhvLnZhbHVlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGlmICh0aW1lbG9jayA9PT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHRpbWVsb2NrID0gMDtcblx0XHRyZXR1cm4geyBleHBlbmRhYmxlLCB0aW1lbG9jaywgc2l6ZTogdGhpcy51dHhvcy5sZW5ndGggfTtcblx0fVxuXG5cdHB1YmxpYyBnZXQgY2hhbmdlUGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnBraDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgbmV0d29yaygpOiBOZXR3b3JrIHtcblx0XHRyZXR1cm4gdGhpcy5wcm92aWRlci5uZXR3b3JrIHx8IFwibWFpbm5ldFwiO1xuXHR9XG5cblx0cHVibGljIGdldCBwa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMucHVibGljS2V5Lmhhc2goKS50b0JlY2gzMih0aGlzLm5ldHdvcmspO1xuXHR9XG5cblx0cHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gUHVibGljS2V5LmZyb21VaW50OEFycmF5KHRoaXMubm9kZS5wdWJsaWNLZXkpO1xuXHR9XG5cblx0cHVibGljIGdldCBwcml2YXRlS2V5KCk6IEhleFN0cmluZyB7XG5cdFx0cmV0dXJuIHV0aWxzLnRvSGV4U3RyaW5nKHRoaXMubm9kZT8ucHJpdmF0ZUtleSwgdHJ1ZSk7XG5cdH1cblxuXHRwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KToge1xuXHRcdGV4Y2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0XHRpbmNsdWRlZDogQXJyYXk8VXR4bz47XG5cdH0ge1xuXHRcdGNvbnN0IGV4Y2x1ZGVkOiBBcnJheTxVdHhvPiA9IFtdO1xuXHRcdGNvbnN0IGV4aXN0aW5nUG9pbnRlcnMgPSBuZXcgU2V0KFxuXHRcdFx0dGhpcy51dHhvcy5tYXAoKGNhY2hlZCkgPT4gY2FjaGVkLm91dHB1dF9wb2ludGVyKSxcblx0XHQpO1xuXHRcdGNvbnN0IGluY2x1ZGVkOiBBcnJheTxVdHhvPiA9IHV0eG9zLmZpbHRlcigodXR4bykgPT4ge1xuXHRcdFx0aWYgKHV0eG8uc2lnbmVyID09PSB0aGlzLnBraCkge1xuXHRcdFx0XHQvLyBhdm9pZCBhZGRpbmcgZHVwbGljYXRlc1xuXHRcdFx0XHRpZiAoIWV4aXN0aW5nUG9pbnRlcnMuaGFzKHV0eG8ub3V0cHV0X3BvaW50ZXIpKSB7XG5cdFx0XHRcdFx0ZXhpc3RpbmdQb2ludGVycy5hZGQodXR4by5vdXRwdXRfcG9pbnRlcik7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRleGNsdWRlZC5wdXNoKHV0eG8pO1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0dGhpcy51dHhvcy5wdXNoKC4uLmluY2x1ZGVkKTtcblx0XHRyZXR1cm4geyBleGNsdWRlZCwgaW5jbHVkZWQgfTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdW1lVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogQXJyYXk8VXR4bz4ge1xuXHRcdHRoaXMudXR4b3MgPSB0aGlzLnV0eG9zLmZpbHRlcigoY2FjaGVkKSA9PiB7XG5cdFx0XHRjb25zdCBpbmNvbWluZ0luZGV4ID0gdXR4b3MuZmluZEluZGV4KFxuXHRcdFx0XHQoaW5jb21pbmcpID0+IGNhY2hlZC5vdXRwdXRfcG9pbnRlciA9PT0gaW5jb21pbmcub3V0cHV0X3BvaW50ZXIsXG5cdFx0XHQpO1xuXHRcdFx0aWYgKGluY29taW5nSW5kZXggPj0gMCkge1xuXHRcdFx0XHR1dHhvcy5zcGxpY2UoaW5jb21pbmdJbmRleCwgMSk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiB1dHhvcztcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKCk6IFByb21pc2U8QmFsYW5jZT4ge1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLmdldEJhbGFuY2UodGhpcy5wa2gpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldERlbGVnYXRlZXMoXG5cdFx0b3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLFxuXHQpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXIuc3Rha2VzKHtcblx0XHRcdGZpbHRlcjogeyB3aXRoZHJhd2VyOiB0aGlzLnBraCB9LFxuXHRcdFx0cGFyYW1zOiB7IG9yZGVyIH0sXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0U2lnbmVyKHBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBJU2lnbmVyIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gIXBraCB8fCBwa2ggPT09IHRoaXMucGtoID8gdGhpcyA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRVdHhvcyhyZWxvYWQgPSBmYWxzZSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcblx0XHRpZiAocmVsb2FkIHx8ICF0aGlzLl9pbml0aWFsaXplZCkge1xuXHRcdFx0dGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuXHRcdFx0dGhpcy51dHhvcyA9IChhd2FpdCB0aGlzLnByb3ZpZGVyLmdldFV0eG9zKHRoaXMucGtoKSkubWFwKCh1dHhvKSA9PiAoe1xuXHRcdFx0XHQuLi51dHhvLFxuXHRcdFx0XHRzaWduZXI6IHRoaXMucGtoLFxuXHRcdFx0fSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy51dHhvcztcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBzZWxlY3RVdHhvcyhzcGVjcz86IHtcblx0XHR2YWx1ZT86IENvaW5zO1xuXHRcdHJlbG9hZD86IGJvb2xlYW47XG5cdFx0c3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3k7XG5cdH0pOiBQcm9taXNlPEFycmF5PFV0eG8+PiB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0VXR4b3Moc3BlY3M/LnJlbG9hZCkudGhlbigodXR4b3MpID0+XG5cdFx0XHRzZWxlY3RVdHhvcyh7XG5cdFx0XHRcdHV0eG9zLFxuXHRcdFx0XHR2YWx1ZTogc3BlY3M/LnZhbHVlLFxuXHRcdFx0XHRzdHJhdGVneTogc3BlY3M/LnN0cmF0ZWd5IHx8IHRoaXMuc3RyYXRlZ3ksXG5cdFx0XHR9KSxcblx0XHQpO1xuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyAtLS0gSVNpZ25lciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHVibGljIGF1dGhvcml6ZUV2bUFkZHJlc3MoZXZtQWRkcmVzczogSGV4U3RyaW5nKTogYW55IHtcblx0XHRjb25zdCBhZGRyID0gdXRpbHMuZnJvbUhleFN0cmluZyhldm1BZGRyZXNzKTtcblx0XHRjb25zdCBoYXNoID0ga2VjY2FrMjU2KEJ1ZmZlci5mcm9tKGFkZHIpKTtcblxuXHRcdGlmICh0aGlzLm5vZGUucHJpdmF0ZUtleSkge1xuXHRcdFx0Y29uc3Qgc2lnbmluZ0tleSA9IG5ldyBldGhlcnMuU2lnbmluZ0tleSh0aGlzLm5vZGUucHJpdmF0ZUtleSk7XG5cdFx0XHRjb25zdCBzaWduYXR1cmUgPSBzaWduaW5nS2V5LnNpZ24oaGFzaCk7XG5cdFx0XHRjb25zdCBzaWcgPSBgMHgke3NpZ25hdHVyZS5yLnNsaWNlKDIpfSR7c2lnbmF0dXJlLnMuc2xpY2UoMil9JHtzaWduYXR1cmUudi50b1N0cmluZygxNil9YDtcblx0XHRcdHJldHVybiBzaWc7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldFN0YWtlRW50cnlOb25jZShcblx0XHR2YWxpZGF0b3I6IFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdCk6IFByb21pc2U8bnVtYmVyPiB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXJcblx0XHRcdC5zdGFrZXMoe1xuXHRcdFx0XHRmaWx0ZXI6IHtcblx0XHRcdFx0XHR2YWxpZGF0b3IsXG5cdFx0XHRcdFx0d2l0aGRyYXdlcjogdGhpcy5wa2gsXG5cdFx0XHRcdH0sXG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKFtlbnRyeV0pID0+IGVudHJ5LnZhbHVlLm5vbmNlKTtcblx0fVxuXG5cdHB1YmxpYyBzaWduSGFzaChoYXNoOiBhbnkpOiBLZXllZFNpZ25hdHVyZSB7XG5cdFx0bGV0IGJ1ZmZlcjogQnVmZmVyO1xuXHRcdGlmIChoYXNoIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuXHRcdFx0YnVmZmVyID0gQnVmZmVyLmZyb20oaGFzaCk7XG5cdFx0fSBlbHNlIGlmIChoYXNoIGluc3RhbmNlb2YgQnVmZmVyKSB7XG5cdFx0XHRidWZmZXIgPSBoYXNoO1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIGhhc2ggPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHV0aWxzLmZyb21IZXhTdHJpbmcoaGFzaCkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHVuc3VwcG9ydGVkIGhhc2ggdmFsdWU6ICR7aGFzaH1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKCFidWZmZXIgfHwgYnVmZmVyLmxlbmd0aCAhPT0gMzIpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW52YWxpZCBoYXNoIGxlbmd0aDogJHtidWZmZXIubGVuZ3RofSAhPSAzMmAsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5ub2RlLnByaXZhdGVLZXkpIHtcblx0XHRcdGNvbnN0IG1zZyA9IFVpbnQ4QXJyYXkuZnJvbShidWZmZXIpO1xuXHRcdFx0Y29uc3QgcHJpdmF0ZUtleSA9IFVpbnQ4QXJyYXkuZnJvbShCdWZmZXIuZnJvbSh0aGlzLm5vZGUucHJpdmF0ZUtleSkpO1xuXHRcdFx0Y29uc3Qgc2lnbmF0dXJlID0gc2VjcDI1NmsxLmVjZHNhU2lnbihtc2csIHByaXZhdGVLZXkpLnNpZ25hdHVyZTtcblx0XHRcdGNvbnN0IGRlciA9IHNlY3AyNTZrMS5zaWduYXR1cmVFeHBvcnQoc2lnbmF0dXJlKTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHB1YmxpY19rZXk6IHtcblx0XHRcdFx0XHRjb21wcmVzc2VkOiB0aGlzLnB1YmxpY0tleS5jb21wcmVzc2VkLFxuXHRcdFx0XHRcdGJ5dGVzOiBBcnJheS5mcm9tKHRoaXMucHVibGljS2V5LmJ5dGVzKSxcblx0XHRcdFx0fSxcblx0XHRcdFx0c2lnbmF0dXJlOiB7XG5cdFx0XHRcdFx0U2VjcDI1NmsxOiB7XG5cdFx0XHRcdFx0XHRkZXI6IEFycmF5LmZyb20oZGVyKSxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9LFxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgRXJyb3IoYFNpZ25lcjogaW52YWxpZCBCSVAzMiBub2RlOiBubyBwcml2YXRlIGtleWApO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzaWduTWVzc2FnZSh0ZXh0OiBzdHJpbmcpOiB7XG5cdFx0YWRkcmVzczogc3RyaW5nO1xuXHRcdG1lc3NhZ2U6IHN0cmluZztcblx0XHRwdWJsaWNLZXk6IEhleFN0cmluZztcblx0XHRzaWduYXR1cmU6IEhleFN0cmluZztcblx0fSB7XG5cdFx0Y29uc3QgZGlnZXN0ID0gdXRpbHMuZGlnZXN0TWVzc2FnZSh0ZXh0KTtcblx0XHRjb25zdCBrZXllZFNpZ25hdHVyZSA9IHRoaXMuc2lnbkhhc2goZGlnZXN0KTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0YWRkcmVzczogdGhpcy5wa2gsXG5cdFx0XHRtZXNzYWdlOiB0ZXh0LFxuXHRcdFx0cHVibGljS2V5OiBQdWJsaWNLZXkuZnJvbVByb3RvYnVmKFxuXHRcdFx0XHRrZXllZFNpZ25hdHVyZS5wdWJsaWNfa2V5LFxuXHRcdFx0KS50b0hleFN0cmluZygpLFxuXHRcdFx0c2lnbmF0dXJlOiBSZWNvdmVyYWJsZVNpZ25hdHVyZS5mcm9tS2V5ZWRTaWduYXR1cmUoXG5cdFx0XHRcdGtleWVkU2lnbmF0dXJlLFxuXHRcdFx0XHRkaWdlc3QsXG5cdFx0XHQpLnRvSGV4U3RyaW5nKCksXG5cdFx0fTtcblx0fVxufVxuIl19
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFakQsT0FBTyxLQUFLLEtBQUssTUFBTSxhQUFhLENBQUM7QUFFckMsT0FBTyxFQUdOLFNBQVMsRUFFVCxvQkFBb0IsRUFHcEIscUJBQXFCLEdBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsTUFBTSxPQUFPLE1BQU07SUFDUixJQUFJLENBQVM7SUFDYixLQUFLLEdBQWdCLEVBQUUsQ0FBQztJQUMxQixZQUFZLENBQVU7SUFFZCxRQUFRLENBQW1CO0lBQ3BDLFFBQVEsQ0FBd0I7SUFFdkMsWUFBWSxJQUFZLEVBQUUsUUFBMEIsRUFBRSxRQUFnQztRQUNyRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQyxPQUFPLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixNQUFNLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsbUhBQW1IO0lBQ25ILG1IQUFtSDtJQUVuSCxJQUFXLFNBQVM7UUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUss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T0FBTztZQUNOLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRztZQUNqQixPQUFPLEVBQUUsSUFBSTtZQUNiLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDMUUsU0FBUyxFQUFFLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUU7U0FDeEYsQ0FBQztJQUNILENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV0aGVycyB9IGZyb20gXCJldGhlcnNcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMga2VjY2FrMjU2IH0gZnJvbSBcImtlY2NhazI1NlwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBzZWNwMjU2azEgfSBmcm9tIFwic2VjcDI1NmsxXCI7XG5pbXBvcnQgdHlwZSB7IEJhbGFuY2UsIEhleFN0cmluZywgTmV0d29yaywgUXVlcnlTdGFrZXNPcmRlciwgU3Rha2VFbnRyeSB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IElCSVAzMiwgSUpzb25ScGNQcm92aWRlciwgSVNpZ25lciB9IGZyb20gXCIuL2ludGVyZmFjZXMuanNcIjtcbmltcG9ydCB7XG5cdHR5cGUgQ29pbnMsXG5cdHR5cGUgS2V5ZWRTaWduYXR1cmUsXG5cdFB1YmxpY0tleSxcblx0dHlwZSBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuXHRSZWNvdmVyYWJsZVNpZ25hdHVyZSxcblx0dHlwZSBVdHhvLFxuXHR0eXBlIFV0eG9DYWNoZUluZm8sXG5cdFV0eG9TZWxlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcbmltcG9ydCB7IHNlbGVjdFV0eG9zIH0gZnJvbSBcIi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIFNpZ25lciBpbXBsZW1lbnRzIElTaWduZXIge1xuXHRwcm90ZWN0ZWQgbm9kZTogSUJJUDMyO1xuXHRwcm90ZWN0ZWQgdXR4b3M6IEFycmF5PFV0eG8+ID0gW107XG5cdHByaXZhdGUgX2luaXRpYWxpemVkOiBib29sZWFuO1xuXG5cdHB1YmxpYyByZWFkb25seSBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcjtcblx0cHVibGljIHN0cmF0ZWd5OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3k7XG5cblx0Y29uc3RydWN0b3Iobm9kZTogSUJJUDMyLCBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlciwgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kpIHtcblx0XHR0aGlzLm5vZGUgPSBub2RlO1xuXHRcdHRoaXMucHJvdmlkZXIgPSBwcm92aWRlcjtcblx0XHR0aGlzLnN0cmF0ZWd5ID0gc3RyYXRlZ3kgfHwgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNsaW1GaXQ7XG5cdFx0aWYgKCFwcm92aWRlci5uZXR3b3JrKSB7XG5cdFx0XHR0aHJvdyBFcnJvcihgU2lnbmVyOiBpbnRlcm5hbCBlcnJvcjogdW5pbnRpYWxpemVkIHByb3ZpZGVyLmApO1xuXHRcdH1cblx0XHR0aGlzLl9pbml0aWFsaXplZCA9IGZhbHNlO1xuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyAtLS0gSUxlZGdlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHVibGljIGdldCBjYWNoZUluZm8oKTogVXR4b0NhY2hlSW5mbyB7XG5cdFx0Y29uc3Qgbm93ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG5cdFx0bGV0IGV4cGVuZGFibGU6IGJpZ2ludCA9IDBuO1xuXHRcdGxldCB0aW1lbG9jazogbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG5cdFx0dGhpcy51dHhvcy5mb3JFYWNoKCh1dHhvKSA9PiB7XG5cdFx0XHRpZiAodXR4by50aW1lbG9jayA+IG5vdykge1xuXHRcdFx0XHRpZiAodXR4by50aW1lbG9jayA8IHRpbWVsb2NrKSB7XG5cdFx0XHRcdFx0dGltZWxvY2sgPSB1dHhvLnRpbWVsb2NrO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRleHBlbmRhYmxlICs9IHV0eG8udmFsdWU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0aWYgKHRpbWVsb2NrID09PSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikgdGltZWxvY2sgPSAwO1xuXHRcdHJldHVybiB7IGV4cGVuZGFibGUsIHRpbWVsb2NrLCBzaXplOiB0aGlzLnV0eG9zLmxlbmd0aCB9O1xuXHR9XG5cblx0cHVibGljIGdldCBjaGFuZ2VQa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsge1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcmsgfHwgXCJtYWlubmV0XCI7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHBraCgpOiBQdWJsaWNLZXlIYXNoU3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5wdWJsaWNLZXkuaGFzaCgpLnRvQmVjaDMyKHRoaXMubmV0d29yayk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHB1YmxpY0tleSgpOiBQdWJsaWNLZXkge1xuXHRcdHJldHVybiBQdWJsaWNLZXkuZnJvbVVpbnQ4QXJyYXkodGhpcy5ub2RlLnB1YmxpY0tleSk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHByaXZhdGVLZXkoKTogSGV4U3RyaW5nIHtcblx0XHRyZXR1cm4gdXRpbHMudG9IZXhTdHJpbmcodGhpcy5ub2RlPy5wcml2YXRlS2V5LCB0cnVlKTtcblx0fVxuXG5cdHB1YmxpYyBhZGRVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiB7XG5cdFx0ZXhjbHVkZWQ6IEFycmF5PFV0eG8+O1xuXHRcdGluY2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0fSB7XG5cdFx0Y29uc3QgZXhjbHVkZWQ6IEFycmF5PFV0eG8+ID0gW107XG5cdFx0Y29uc3QgZXhpc3RpbmdQb2ludGVycyA9IG5ldyBTZXQodGhpcy51dHhvcy5tYXAoKGNhY2hlZCkgPT4gY2FjaGVkLm91dHB1dF9wb2ludGVyKSk7XG5cdFx0Y29uc3QgaW5jbHVkZWQ6IEFycmF5PFV0eG8+ID0gdXR4b3MuZmlsdGVyKCh1dHhvKSA9PiB7XG5cdFx0XHRpZiAodXR4by5zaWduZXIgPT09IHRoaXMucGtoKSB7XG5cdFx0XHRcdC8vIGF2b2lkIGFkZGluZyBkdXBsaWNhdGVzXG5cdFx0XHRcdGlmICghZXhpc3RpbmdQb2ludGVycy5oYXModXR4by5vdXRwdXRfcG9pbnRlcikpIHtcblx0XHRcdFx0XHRleGlzdGluZ1BvaW50ZXJzLmFkZCh1dHhvLm91dHB1dF9wb2ludGVyKTtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGV4Y2x1ZGVkLnB1c2godXR4byk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHR0aGlzLnV0eG9zLnB1c2goLi4uaW5jbHVkZWQpO1xuXHRcdHJldHVybiB7IGV4Y2x1ZGVkLCBpbmNsdWRlZCB9O1xuXHR9XG5cblx0cHVibGljIGNvbnN1bWVVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiBBcnJheTxVdHhvPiB7XG5cdFx0dGhpcy51dHhvcyA9IHRoaXMudXR4b3MuZmlsdGVyKChjYWNoZWQpID0+IHtcblx0XHRcdGNvbnN0IGluY29taW5nSW5kZXggPSB1dHhvcy5maW5kSW5kZXgoKGluY29taW5nKSA9PiBjYWNoZWQub3V0cHV0X3BvaW50ZXIgPT09IGluY29taW5nLm91dHB1dF9wb2ludGVyKTtcblx0XHRcdGlmIChpbmNvbWluZ0luZGV4ID49IDApIHtcblx0XHRcdFx0dXR4b3Muc3BsaWNlKGluY29taW5nSW5kZXgsIDEpO1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gdXR4b3M7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0QmFsYW5jZSgpOiBQcm9taXNlPEJhbGFuY2U+IHtcblx0XHRyZXR1cm4gdGhpcy5wcm92aWRlci5nZXRCYWxhbmNlKHRoaXMucGtoKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXREZWxlZ2F0ZWVzKG9yZGVyPzogUXVlcnlTdGFrZXNPcmRlcik6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+IHtcblx0XHRyZXR1cm4gdGhpcy5wcm92aWRlci5zdGFrZXMoe1xuXHRcdFx0ZmlsdGVyOiB7IHdpdGhkcmF3ZXI6IHRoaXMucGtoIH0sXG5cdFx0XHRwYXJhbXM6IHsgb3JkZXIgfSxcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBnZXRTaWduZXIocGtoPzogUHVibGljS2V5SGFzaFN0cmluZyk6IElTaWduZXIgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiAhcGtoIHx8IHBraCA9PT0gdGhpcy5wa2ggPyB0aGlzIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldFV0eG9zKHJlbG9hZCA9IGZhbHNlKTogUHJvbWlzZTxBcnJheTxVdHhvPj4ge1xuXHRcdGlmIChyZWxvYWQgfHwgIXRoaXMuX2luaXRpYWxpemVkKSB7XG5cdFx0XHR0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG5cdFx0XHR0aGlzLnV0eG9zID0gKGF3YWl0IHRoaXMucHJvdmlkZXIuZ2V0VXR4b3ModGhpcy5wa2gpKS5tYXAoKHV0eG8pID0+ICh7XG5cdFx0XHRcdC4uLnV0eG8sXG5cdFx0XHRcdHNpZ25lcjogdGhpcy5wa2gsXG5cdFx0XHR9KSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnV0eG9zO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNlbGVjdFV0eG9zKHNwZWNzPzoge1xuXHRcdHZhbHVlPzogQ29pbnM7XG5cdFx0cmVsb2FkPzogYm9vbGVhbjtcblx0XHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblx0fSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcblx0XHRyZXR1cm4gdGhpcy5nZXRVdHhvcyhzcGVjcz8ucmVsb2FkKS50aGVuKCh1dHhvcykgPT5cblx0XHRcdHNlbGVjdFV0eG9zKHtcblx0XHRcdFx0dXR4b3MsXG5cdFx0XHRcdHZhbHVlOiBzcGVjcz8udmFsdWUsXG5cdFx0XHRcdHN0cmF0ZWd5OiBzcGVjcz8uc3RyYXRlZ3kgfHwgdGhpcy5zdHJhdGVneSxcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdC8vIC0tLSBJU2lnbmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzOiBIZXhTdHJpbmcpOiBhbnkge1xuXHRcdGNvbnN0IGFkZHIgPSB1dGlscy5mcm9tSGV4U3RyaW5nKGV2bUFkZHJlc3MpO1xuXHRcdGNvbnN0IGhhc2ggPSBrZWNjYWsyNTYoQnVmZmVyLmZyb20oYWRkcikpO1xuXG5cdFx0aWYgKHRoaXMubm9kZS5wcml2YXRlS2V5KSB7XG5cdFx0XHRjb25zdCBzaWduaW5nS2V5ID0gbmV3IGV0aGVycy5TaWduaW5nS2V5KHRoaXMubm9kZS5wcml2YXRlS2V5KTtcblx0XHRcdGNvbnN0IHNpZ25hdHVyZSA9IHNpZ25pbmdLZXkuc2lnbihoYXNoKTtcblx0XHRcdGNvbnN0IHNpZyA9IGAweCR7c2lnbmF0dXJlLnIuc2xpY2UoMil9JHtzaWduYXR1cmUucy5zbGljZSgyKX0ke3NpZ25hdHVyZS52LnRvU3RyaW5nKDE2KX1gO1xuXHRcdFx0cmV0dXJuIHNpZztcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0U3Rha2VFbnRyeU5vbmNlKHZhbGlkYXRvcjogUHVibGljS2V5SGFzaFN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXJcblx0XHRcdC5zdGFrZXMoe1xuXHRcdFx0XHRmaWx0ZXI6IHtcblx0XHRcdFx0XHR2YWxpZGF0b3IsXG5cdFx0XHRcdFx0d2l0aGRyYXdlcjogdGhpcy5wa2gsXG5cdFx0XHRcdH0sXG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKFtlbnRyeV0pID0+IGVudHJ5LnZhbHVlLm5vbmNlKTtcblx0fVxuXG5cdHB1YmxpYyBzaWduSGFzaChoYXNoOiBhbnkpOiBLZXllZFNpZ25hdHVyZSB7XG5cdFx0bGV0IGJ1ZmZlcjogQnVmZmVyO1xuXHRcdGlmIChoYXNoIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuXHRcdFx0YnVmZmVyID0gQnVmZmVyLmZyb20oaGFzaCk7XG5cdFx0fSBlbHNlIGlmIChoYXNoIGluc3RhbmNlb2YgQnVmZmVyKSB7XG5cdFx0XHRidWZmZXIgPSBoYXNoO1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIGhhc2ggPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHV0aWxzLmZyb21IZXhTdHJpbmcoaGFzaCkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogdW5zdXBwb3J0ZWQgaGFzaCB2YWx1ZTogJHtoYXNofWApO1xuXHRcdH1cblx0XHRpZiAoIWJ1ZmZlciB8fCBidWZmZXIubGVuZ3RoICE9PSAzMikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludmFsaWQgaGFzaCBsZW5ndGg6ICR7YnVmZmVyLmxlbmd0aH0gIT0gMzJgKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMubm9kZS5wcml2YXRlS2V5KSB7XG5cdFx0XHRjb25zdCBtc2cgPSBVaW50OEFycmF5LmZyb20oYnVmZmVyKTtcblx0XHRcdGNvbnN0IHByaXZhdGVLZXkgPSBVaW50OEFycmF5LmZyb20oQnVmZmVyLmZyb20odGhpcy5ub2RlLnByaXZhdGVLZXkpKTtcblx0XHRcdGNvbnN0IHNpZ25hdHVyZSA9IHNlY3AyNTZrMS5lY2RzYVNpZ24obXNnLCBwcml2YXRlS2V5KS5zaWduYXR1cmU7XG5cdFx0XHRjb25zdCBkZXIgPSBzZWNwMjU2azEuc2lnbmF0dXJlRXhwb3J0KHNpZ25hdHVyZSk7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRwdWJsaWNfa2V5OiB7XG5cdFx0XHRcdFx0Y29tcHJlc3NlZDogdGhpcy5wdWJsaWNLZXkuY29tcHJlc3NlZCxcblx0XHRcdFx0XHRieXRlczogQXJyYXkuZnJvbSh0aGlzLnB1YmxpY0tleS5ieXRlcyksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNpZ25hdHVyZToge1xuXHRcdFx0XHRcdFNlY3AyNTZrMToge1xuXHRcdFx0XHRcdFx0ZGVyOiBBcnJheS5mcm9tKGRlciksXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSxcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IEVycm9yKGBTaWduZXI6IGludmFsaWQgQklQMzIgbm9kZTogbm8gcHJpdmF0ZSBrZXlgKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgc2lnbk1lc3NhZ2UodGV4dDogc3RyaW5nKToge1xuXHRcdGFkZHJlc3M6IHN0cmluZztcblx0XHRtZXNzYWdlOiBzdHJpbmc7XG5cdFx0cHVibGljS2V5OiBIZXhTdHJpbmc7XG5cdFx0c2lnbmF0dXJlOiBIZXhTdHJpbmc7XG5cdH0ge1xuXHRcdGNvbnN0IGRpZ2VzdCA9IHV0aWxzLmRpZ2VzdE1lc3NhZ2UodGV4dCk7XG5cdFx0Y29uc3Qga2V5ZWRTaWduYXR1cmUgPSB0aGlzLnNpZ25IYXNoKGRpZ2VzdCk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGFkZHJlc3M6IHRoaXMucGtoLFxuXHRcdFx0bWVzc2FnZTogdGV4dCxcblx0XHRcdHB1YmxpY0tleTogUHVibGljS2V5LmZyb21Qcm90b2J1ZihrZXllZFNpZ25hdHVyZS5wdWJsaWNfa2V5KS50b0hleFN0cmluZygpLFxuXHRcdFx0c2lnbmF0dXJlOiBSZWNvdmVyYWJsZVNpZ25hdHVyZS5mcm9tS2V5ZWRTaWduYXR1cmUoa2V5ZWRTaWduYXR1cmUsIGRpZ2VzdCkudG9IZXhTdHJpbmcoKSxcblx0XHR9O1xuXHR9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataRequests.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/DataRequests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"DataRequests.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/DataRequests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,qBAAa,YAAa,SAAQ,mBAAmB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAC3F,OAAc,UAAU,SAAiC;WAE3C,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,GAAG,aAAa,GAAG,YAAY;gBAI7E,QAAQ,EAAE,YAAY,GAAG,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,mBAAmB;IAIpG,IAAW,OAAO,IAAI,YAAY,GAAG,SAAS,CAE7C;IAED,IAAW,QAAQ,IAAI,aAAa,GAAG,SAAS,CAE/C;CACD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataRequestPayload
|
|
1
|
+
import { DataRequestPayload } from "../payloads/DataRequestPayload.js";
|
|
2
2
|
import { TransmitterMultiSig } from "../transmitters.js";
|
|
3
3
|
export class DataRequests extends TransmitterMultiSig {
|
|
4
4
|
static MAX_WEIGHT = DataRequestPayload.MAX_WEIGHT;
|
|
@@ -15,4 +15,4 @@ export class DataRequests extends TransmitterMultiSig {
|
|
|
15
15
|
return this._payload.template;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVJlcXVlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vdHJhbnNtaXR0ZXJzL0RhdGFSZXF1ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQTBCLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLekQsTUFBTSxPQUFPLFlBQWEsU0FBUSxtQkFBMEQ7SUFDcEYsTUFBTSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7SUFFbEQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFlLEVBQUUsUUFBc0M7UUFDekUsT0FBTyxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFlBQVksUUFBc0MsRUFBRSxNQUFlLEVBQUUsU0FBK0I7UUFDbkcsS0FBSyxDQUFDLGVBQWUsRUFBRSxJQUFJLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJhZG9uUmVxdWVzdCwgUmFkb25UZW1wbGF0ZSB9IGZyb20gXCIuLi8uLi9yYWRvbi9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBJTGVkZ2VyIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMuanNcIjtcbmltcG9ydCB7IHR5cGUgRGF0YVJlcXVlc3RQYXJhbXMsIERhdGFSZXF1ZXN0UGF5bG9hZCB9IGZyb20gXCIuLi9wYXlsb2Fkcy9EYXRhUmVxdWVzdFBheWxvYWQuanNcIjtcbmltcG9ydCB7IFRyYW5zbWl0dGVyTXVsdGlTaWcgfSBmcm9tIFwiLi4vdHJhbnNtaXR0ZXJzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFB1YmxpY0tleUhhc2hTdHJpbmcgfSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IHsgRGF0YVJlcXVlc3RQYXJhbXMgfSBmcm9tIFwiLi4vcGF5bG9hZHMvRGF0YVJlcXVlc3RQYXlsb2FkLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBEYXRhUmVxdWVzdHMgZXh0ZW5kcyBUcmFuc21pdHRlck11bHRpU2lnPERhdGFSZXF1ZXN0UGFyYW1zLCBEYXRhUmVxdWVzdFBheWxvYWQ+IHtcblx0cHVibGljIHN0YXRpYyBNQVhfV0VJR0hUID0gRGF0YVJlcXVlc3RQYXlsb2FkLk1BWF9XRUlHSFQ7XG5cblx0cHVibGljIHN0YXRpYyBmcm9tKGxlZGdlcjogSUxlZGdlciwgYXJ0aWZhY3Q6IFJhZG9uUmVxdWVzdCB8IFJhZG9uVGVtcGxhdGUpOiBEYXRhUmVxdWVzdHMge1xuXHRcdHJldHVybiBuZXcgRGF0YVJlcXVlc3RzKGFydGlmYWN0LCBsZWRnZXIpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoYXJ0aWZhY3Q6IFJhZG9uUmVxdWVzdCB8IFJhZG9uVGVtcGxhdGUsIGxlZGdlcjogSUxlZGdlciwgY2hhbmdlUGtoPzogUHVibGljS2V5SGFzaFN0cmluZykge1xuXHRcdHN1cGVyKFwiRFJUcmFuc2FjdGlvblwiLCBuZXcgRGF0YVJlcXVlc3RQYXlsb2FkKFwiRFJUcmFuc2FjdGlvbkJvZHlcIiwgYXJ0aWZhY3QpLCBsZWRnZXIsIGNoYW5nZVBraCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHJlcXVlc3QoKTogUmFkb25SZXF1ZXN0IHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fcGF5bG9hZC5yZXF1ZXN0O1xuXHR9XG5cblx0cHVibGljIGdldCB0ZW1wbGF0ZSgpOiBSYWRvblRlbXBsYXRlIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fcGF5bG9hZC50ZW1wbGF0ZTtcblx0fVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StakeDeposits.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/StakeDeposits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"StakeDeposits.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/StakeDeposits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,KAAK,kBAAkB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,qBAAa,aAAc,SAAQ,mBAAmB,CAAC,kBAAkB,EAAE,YAAY,CAAC;IACvF,OAAc,UAAU,SAA2B;IACnD,OAAc,SAAS,SAA0B;WAEnC,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa;gBAItC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,mBAAmB;CAG5D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StakePayload
|
|
1
|
+
import { StakePayload } from "../payloads/StakePayload.js";
|
|
2
2
|
import { TransmitterMultiSig } from "../transmitters.js";
|
|
3
3
|
export class StakeDeposits extends TransmitterMultiSig {
|
|
4
4
|
static MAX_WEIGHT = StakePayload.MAX_WEIGHT;
|
|
@@ -10,4 +10,4 @@ export class StakeDeposits extends TransmitterMultiSig {
|
|
|
10
10
|
super("StakeTransaction", new StakePayload("StakeTransactionBody"), ledger, changePkh);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Rha2VEZXBvc2l0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL3RyYW5zbWl0dGVycy9TdGFrZURlcG9zaXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBMkIsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLekQsTUFBTSxPQUFPLGFBQWMsU0FBUSxtQkFBcUQ7SUFDaEYsTUFBTSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUUxQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQWU7UUFDakMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWSxNQUFlLEVBQUUsU0FBK0I7UUFDM0QsS0FBSyxDQUFDLGtCQUFrQixFQUFFLElBQUksWUFBWSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElMZWRnZXIgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy5qc1wiO1xuaW1wb3J0IHsgdHlwZSBTdGFrZURlcG9zaXRQYXJhbXMsIFN0YWtlUGF5bG9hZCB9IGZyb20gXCIuLi9wYXlsb2Fkcy9TdGFrZVBheWxvYWQuanNcIjtcbmltcG9ydCB7IFRyYW5zbWl0dGVyTXVsdGlTaWcgfSBmcm9tIFwiLi4vdHJhbnNtaXR0ZXJzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFB1YmxpY0tleUhhc2hTdHJpbmcgfSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IHsgU3Rha2VEZXBvc2l0UGFyYW1zIH0gZnJvbSBcIi4uL3BheWxvYWRzL1N0YWtlUGF5bG9hZC5qc1wiO1xuXG5leHBvcnQgY2xhc3MgU3Rha2VEZXBvc2l0cyBleHRlbmRzIFRyYW5zbWl0dGVyTXVsdGlTaWc8U3Rha2VEZXBvc2l0UGFyYW1zLCBTdGFrZVBheWxvYWQ+IHtcblx0cHVibGljIHN0YXRpYyBNQVhfV0VJR0hUID0gU3Rha2VQYXlsb2FkLk1BWF9XRUlHSFQ7XG5cdHB1YmxpYyBzdGF0aWMgTUlOX1ZBTFVFID0gU3Rha2VQYXlsb2FkLk1JTl9WQUxVRTtcblxuXHRwdWJsaWMgc3RhdGljIGZyb20obGVkZ2VyOiBJTGVkZ2VyKTogU3Rha2VEZXBvc2l0cyB7XG5cdFx0cmV0dXJuIG5ldyBTdGFrZURlcG9zaXRzKGxlZGdlcik7XG5cdH1cblxuXHRjb25zdHJ1Y3RvcihsZWRnZXI6IElMZWRnZXIsIGNoYW5nZVBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcpIHtcblx0XHRzdXBlcihcIlN0YWtlVHJhbnNhY3Rpb25cIiwgbmV3IFN0YWtlUGF5bG9hZChcIlN0YWtlVHJhbnNhY3Rpb25Cb2R5XCIpLCBsZWRnZXIsIGNoYW5nZVBraCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StakeWithdrawals.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/StakeWithdrawals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"StakeWithdrawals.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/StakeWithdrawals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,KAAK,qBAAqB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,qBAAqB,EAAE,cAAc,CAAC;IACvF,OAAc,iBAAiB,SAAoC;IACnE,OAAc,MAAM,SAAyB;WAE/B,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB;gBAIzC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,mBAAmB;IAI/C,eAAe,CAAC,MAAM,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIpG,uBAAuB,IAAI,IAAI;IAmBtC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,GAAG;IASzC,SAAS,CAAC,WAAW,IAAI,GAAG;CAS5B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UnstakePayload
|
|
1
|
+
import { UnstakePayload } from "../payloads/UnstakePayload.js";
|
|
2
2
|
import { Transmitter } from "../transmitters.js";
|
|
3
3
|
export class StakeWithdrawals extends Transmitter {
|
|
4
4
|
static MIN_TIMELOCK_SECS = UnstakePayload.MIN_TIMELOCK_SECS;
|
|
@@ -46,4 +46,4 @@ export class StakeWithdrawals extends Transmitter {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Rha2VXaXRoZHJhd2Fscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL3RyYW5zbWl0dGVycy9TdGFrZVdpdGhkcmF3YWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBOEIsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS2pELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFrRDtJQUNoRixNQUFNLENBQUMsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLGlCQUFpQixDQUFDO0lBQzVELE1BQU0sQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUV0QyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQWU7UUFDakMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZLE1BQWUsRUFBRSxTQUErQjtRQUMzRCxLQUFLLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxjQUFjLENBQUMsd0JBQXdCLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBOEIsRUFBRSxNQUFnQjtRQUM1RSxPQUFPLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSx1QkFBdUI7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1gsTUFBTSxLQUFLLENBQ1YsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksZ0RBQWdELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3RHLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNQLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkMsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLE1BQU0sS0FBSyxDQUNWLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGdEQUFnRCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FDMUgsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNiLENBQUM7SUFDRixDQUFDO0lBRVMsT0FBTyxDQUFDLFFBQWlCO1FBQ2xDLE9BQU87WUFDTixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2dCQUNwQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDOUI7U0FDRCxDQUFDO0lBQ0gsQ0FBQztJQUVTLFdBQVc7UUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPO2dCQUNOLElBQUk7Z0JBQ0osU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2FBQzlCLENBQUM7UUFDSCxDQUFDO0lBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSGFzaCB9IGZyb20gXCIuLi8uLi90eXBlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBJTGVkZ2VyIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMuanNcIjtcbmltcG9ydCB7IHR5cGUgU3Rha2VXaXRoZHJhd2FsUGFyYW1zLCBVbnN0YWtlUGF5bG9hZCB9IGZyb20gXCIuLi9wYXlsb2Fkcy9VbnN0YWtlUGF5bG9hZC5qc1wiO1xuaW1wb3J0IHsgVHJhbnNtaXR0ZXIgfSBmcm9tIFwiLi4vdHJhbnNtaXR0ZXJzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFB1YmxpY0tleUhhc2hTdHJpbmcsIFRyYW5zYWN0aW9uUmVjZWlwdCB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuXG5leHBvcnQgeyBTdGFrZVdpdGhkcmF3YWxQYXJhbXMgfSBmcm9tIFwiLi4vcGF5bG9hZHMvVW5zdGFrZVBheWxvYWQuanNcIjtcblxuZXhwb3J0IGNsYXNzIFN0YWtlV2l0aGRyYXdhbHMgZXh0ZW5kcyBUcmFuc21pdHRlcjxTdGFrZVdpdGhkcmF3YWxQYXJhbXMsIFVuc3Rha2VQYXlsb2FkPiB7XG5cdHB1YmxpYyBzdGF0aWMgTUlOX1RJTUVMT0NLX1NFQ1MgPSBVbnN0YWtlUGF5bG9hZC5NSU5fVElNRUxPQ0tfU0VDUztcblx0cHVibGljIHN0YXRpYyBXRUlHSFQgPSBVbnN0YWtlUGF5bG9hZC5XRUlHSFQ7XG5cblx0cHVibGljIHN0YXRpYyBmcm9tKGxlZGdlcjogSUxlZGdlcik6IFN0YWtlV2l0aGRyYXdhbHMge1xuXHRcdHJldHVybiBuZXcgU3Rha2VXaXRoZHJhd2FscyhsZWRnZXIpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IobGVkZ2VyOiBJTGVkZ2VyLCBjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKSB7XG5cdFx0c3VwZXIoXCJVbnN0YWtlVHJhbnNhY3Rpb25cIiwgbmV3IFVuc3Rha2VQYXlsb2FkKFwiVW5zdGFrZVRyYW5zYWN0aW9uQm9keVwiKSwgbGVkZ2VyLCBjaGFuZ2VQa2gpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNpZ25UcmFuc2FjdGlvbihwYXJhbXM/OiBTdGFrZVdpdGhkcmF3YWxQYXJhbXMsIHJlbG9hZD86IGJvb2xlYW4pOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD4ge1xuXHRcdHJldHVybiBzdXBlci5zaWduVHJhbnNhY3Rpb24ocGFyYW1zLCByZWxvYWQpO1xuXHR9XG5cblx0cHVibGljIF9zaWduVHJhbnNhY3Rpb25QYXlsb2FkKCk6IEhhc2gge1xuXHRcdGNvbnN0IGhhc2ggPSB0aGlzLl9wYXlsb2FkLmhhc2g7XG5cdFx0aWYgKCFoYXNoKSB7XG5cdFx0XHR0aHJvdyBFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW50ZXJuYWwgZXJyb3I6IHVuYWJsZSB0byBoYXNoaWZ5IHBheWxvYWQ6ICR7dGhpcy5fcGF5bG9hZC50b0pTT04odHJ1ZSl9fS5gLFxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3Qgc2lnbmVyID0gdGhpcy5sZWRnZXIuZ2V0U2lnbmVyKCk7XG5cdFx0XHRpZiAoc2lnbmVyKSB7XG5cdFx0XHRcdHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduZXIuc2lnbkhhc2goaGFzaCkpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW50ZXJuYWwgZXJyb3I6IG5vIGRlZmF1bHQgU2lnbmVyIGZvdW5kIGluICR7dGhpcy5sZWRnZXIuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmxlZGdlci5wa2h9LmAsXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gaGFzaDtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3RvSlNPTihodW1hbml6ZTogYm9vbGVhbik6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFt0aGlzLnR5cGVdOiB7XG5cdFx0XHRcdGJvZHk6IHRoaXMuX3BheWxvYWQudG9KU09OKGh1bWFuaXplKSxcblx0XHRcdFx0c2lnbmF0dXJlOiB0aGlzLl9zaWduYXR1cmVzWzBdLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0cHJvdGVjdGVkIF90b1Byb3RvYnVmKCk6IGFueSB7XG5cdFx0Y29uc3QgYm9keSA9IHRoaXMuX3BheWxvYWQudG9Qcm90b2J1ZigpO1xuXHRcdGlmIChib2R5ICYmIHRoaXMuX3NpZ25hdHVyZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Ym9keSxcblx0XHRcdFx0c2lnbmF0dXJlOiB0aGlzLl9zaWduYXR1cmVzWzBdLFxuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueTransfers.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/ValueTransfers.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ValueTransfers.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/transmitters/ValueTransfers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAErG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,cAAe,SAAQ,mBAAmB,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IACjG,OAAc,UAAU,SAAmC;WAE7C,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc;gBAIvC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,mBAAmB;CAG5D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueTransferPayload
|
|
1
|
+
import { ValueTransferPayload } from "../payloads/ValueTransferPayload.js";
|
|
2
2
|
import { TransmitterMultiSig } from "../transmitters.js";
|
|
3
3
|
export class ValueTransfers extends TransmitterMultiSig {
|
|
4
4
|
static MAX_WEIGHT = ValueTransferPayload.MAX_WEIGHT;
|
|
@@ -9,4 +9,4 @@ export class ValueTransfers extends TransmitterMultiSig {
|
|
|
9
9
|
super("VTTransaction", new ValueTransferPayload("VTTransactionBody"), ledger, changePkh);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsdWVUcmFuc2ZlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by90cmFuc21pdHRlcnMvVmFsdWVUcmFuc2ZlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBS3JHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3pELE1BQU0sT0FBTyxjQUFlLFNBQVEsbUJBQThEO0lBQzFGLE1BQU0sQ0FBQyxVQUFVLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxDQUFDO0lBRXBELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBZTtRQUNqQyxPQUFPLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZLE1BQWUsRUFBRSxTQUErQjtRQUMzRCxLQUFLLENBQUMsZUFBZSxFQUFFLElBQUksb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDMUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgVmFsdWVUcmFuc2ZlclBhcmFtcywgVmFsdWVUcmFuc2ZlclBheWxvYWQgfSBmcm9tIFwiLi4vcGF5bG9hZHMvVmFsdWVUcmFuc2ZlclBheWxvYWQuanNcIjtcblxuZXhwb3J0IHsgVmFsdWVUcmFuc2ZlclBhcmFtcyB9IGZyb20gXCIuLi9wYXlsb2Fkcy9WYWx1ZVRyYW5zZmVyUGF5bG9hZC5qc1wiO1xuXG5pbXBvcnQgdHlwZSB7IElMZWRnZXIgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy5qc1wiO1xuaW1wb3J0IHsgVHJhbnNtaXR0ZXJNdWx0aVNpZyB9IGZyb20gXCIuLi90cmFuc21pdHRlcnMuanNcIjtcbmltcG9ydCB0eXBlIHsgUHVibGljS2V5SGFzaFN0cmluZyB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuXG5leHBvcnQgY2xhc3MgVmFsdWVUcmFuc2ZlcnMgZXh0ZW5kcyBUcmFuc21pdHRlck11bHRpU2lnPFZhbHVlVHJhbnNmZXJQYXJhbXMsIFZhbHVlVHJhbnNmZXJQYXlsb2FkPiB7XG5cdHB1YmxpYyBzdGF0aWMgTUFYX1dFSUdIVCA9IFZhbHVlVHJhbnNmZXJQYXlsb2FkLk1BWF9XRUlHSFQ7XG5cblx0cHVibGljIHN0YXRpYyBmcm9tKGxlZGdlcjogSUxlZGdlcik6IFZhbHVlVHJhbnNmZXJzIHtcblx0XHRyZXR1cm4gbmV3IFZhbHVlVHJhbnNmZXJzKGxlZGdlcik7XG5cdH1cblxuXHRjb25zdHJ1Y3RvcihsZWRnZXI6IElMZWRnZXIsIGNoYW5nZVBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcpIHtcblx0XHRzdXBlcihcIlZUVHJhbnNhY3Rpb25cIiwgbmV3IFZhbHVlVHJhbnNmZXJQYXlsb2FkKFwiVlRUcmFuc2FjdGlvbkJvZHlcIiksIGxlZGdlciwgY2hhbmdlUGtoKTtcblx0fVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transmitters.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/transmitters.ts"],"names":[],"mappings":"AAQA,OAAO,QAAQ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"transmitters.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/transmitters.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,9 +49,7 @@ export class Transmitter {
|
|
|
49
49
|
if (this._signatures.length > 0) {
|
|
50
50
|
return (this._signatures
|
|
51
51
|
.map((ks) => {
|
|
52
|
-
const pkh = PublicKey.fromProtobuf(ks.public_key)
|
|
53
|
-
.hash()
|
|
54
|
-
.toBech32(this.network);
|
|
52
|
+
const pkh = PublicKey.fromProtobuf(ks.public_key).hash().toBech32(this.network);
|
|
55
53
|
return this.ledger.getSigner(pkh)?.pkh || this.ledger.pkh;
|
|
56
54
|
})
|
|
57
55
|
// avoid repetitions
|
|
@@ -62,9 +60,7 @@ export class Transmitter {
|
|
|
62
60
|
}
|
|
63
61
|
}
|
|
64
62
|
get _prepared() {
|
|
65
|
-
return
|
|
66
|
-
!!this._signatures &&
|
|
67
|
-
this._signatures.length > 0);
|
|
63
|
+
return this._payload.prepared && !!this._signatures && this._signatures.length > 0;
|
|
68
64
|
}
|
|
69
65
|
async sendTransaction(target) {
|
|
70
66
|
let receipt = this._getInflightReceipt();
|
|
@@ -125,9 +121,7 @@ export class Transmitter {
|
|
|
125
121
|
// if not yet prepared, try to cover transaction expenses with existing utxos on signers:
|
|
126
122
|
let change = 0n;
|
|
127
123
|
if (!this._payload.prepared) {
|
|
128
|
-
change = await this._payload
|
|
129
|
-
.consumeUtxos(this.ledger, reloadUtxos)
|
|
130
|
-
.catch((err) => {
|
|
124
|
+
change = await this._payload.consumeUtxos(this.ledger, reloadUtxos).catch((err) => {
|
|
131
125
|
throw Error(`${this.constructor.name}: cannot consume UTXOs from ${this.ledger.constructor.name} ${this.ledger.pkh}: ${err}.`);
|
|
132
126
|
});
|
|
133
127
|
}
|
|
@@ -178,8 +172,7 @@ export class Transmitter {
|
|
|
178
172
|
shouldContinue: (error, report) => {
|
|
179
173
|
const status = receipt.status;
|
|
180
174
|
receipt.error = error;
|
|
181
|
-
if (error instanceof Error &&
|
|
182
|
-
error.message.indexOf("ItemNotFound") >= 0) {
|
|
175
|
+
if (error instanceof Error && error.message.indexOf("ItemNotFound") >= 0) {
|
|
183
176
|
receipt.status = "removed";
|
|
184
177
|
}
|
|
185
178
|
else
|
|
@@ -187,9 +180,9 @@ export class Transmitter {
|
|
|
187
180
|
case "relayed":
|
|
188
181
|
if (report?.blockHash && isHexString(report.blockHash)) {
|
|
189
182
|
receipt.confirmations = report.confirmations;
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
183
|
+
receipt.blockHash = report.blockHash;
|
|
184
|
+
receipt.blockEpoch = report.blockEpoch;
|
|
185
|
+
receipt.blockTimestamp = report.blockTimestamp;
|
|
193
186
|
receipt.status = report.confirmed
|
|
194
187
|
? "finalized"
|
|
195
188
|
: report?.confirmations >= confirmations
|
|
@@ -198,8 +191,7 @@ export class Transmitter {
|
|
|
198
191
|
}
|
|
199
192
|
break;
|
|
200
193
|
case "mined":
|
|
201
|
-
if (!report?.blockHash ||
|
|
202
|
-
report.blockHash !== receipt.blockHash) {
|
|
194
|
+
if (!report?.blockHash || report.blockHash !== receipt.blockHash) {
|
|
203
195
|
delete receipt.blockHash;
|
|
204
196
|
delete receipt.blockEpoch;
|
|
205
197
|
delete receipt.blockMiner;
|
|
@@ -225,8 +217,7 @@ export class Transmitter {
|
|
|
225
217
|
}
|
|
226
218
|
if (status !== receipt.status) {
|
|
227
219
|
receipt.timestamp = Math.floor(Date.now() / 1000);
|
|
228
|
-
if (!["confirmed", "finalized"].includes(receipt.status) &&
|
|
229
|
-
options?.onStatusChange)
|
|
220
|
+
if (!["confirmed", "finalized"].includes(receipt.status) && options?.onStatusChange)
|
|
230
221
|
try {
|
|
231
222
|
options.onStatusChange(receipt);
|
|
232
223
|
}
|
|
@@ -246,12 +237,10 @@ export class Transmitter {
|
|
|
246
237
|
const signatures = receipt.tx[receipt.type].signatures;
|
|
247
238
|
const utxos = [];
|
|
248
239
|
if (inputs.length === signatures.length) {
|
|
249
|
-
inputs.
|
|
240
|
+
utxos.push(...inputs.map((metadata, index) => ({
|
|
250
241
|
...metadata,
|
|
251
|
-
signer: PublicKey.fromProtobuf(signatures[index].public_key)
|
|
252
|
-
|
|
253
|
-
.toBech32(this.network),
|
|
254
|
-
}));
|
|
242
|
+
signer: PublicKey.fromProtobuf(signatures[index].public_key).hash().toBech32(this.network),
|
|
243
|
+
})));
|
|
255
244
|
}
|
|
256
245
|
this.ledger.addUtxos(...utxos);
|
|
257
246
|
}
|
|
@@ -282,13 +271,15 @@ export class Transmitter {
|
|
|
282
271
|
}
|
|
283
272
|
else {
|
|
284
273
|
const outputs = receipt.tx[receipt.type].body?.outputs || [];
|
|
285
|
-
outputs.forEach((vto, index) =>
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
274
|
+
outputs.forEach((vto, index) => {
|
|
275
|
+
utxos.push({
|
|
276
|
+
output_pointer: `${receipt.hash}:${index}`,
|
|
277
|
+
timelock: vto.time_lock,
|
|
278
|
+
utxo_mature: true,
|
|
279
|
+
value: BigInt(vto.value),
|
|
280
|
+
signer: vto.pkh,
|
|
281
|
+
});
|
|
282
|
+
});
|
|
292
283
|
}
|
|
293
284
|
this.ledger.addUtxos(...utxos);
|
|
294
285
|
}
|
|
@@ -426,4 +417,4 @@ export class TransmitterMultiSig extends Transmitter {
|
|
|
426
417
|
}
|
|
427
418
|
}
|
|
428
419
|
}
|
|
429
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNtaXR0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vdHJhbnNtaXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUVsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUNuQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FDNUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU9sRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBVTFDLE9BQU8sRUFFTixZQUFZLEVBQ1osU0FBUyxFQUVULFlBQVksRUFLWixpQkFBaUIsR0FFakIsTUFBTSxZQUFZLENBQUM7QUFFcEIsTUFBTSxPQUFnQixXQUFXO0lBS2hCLE1BQU0sQ0FBVTtJQUNoQixTQUFTLENBQXNCO0lBRXJDLFFBQVEsQ0FBVTtJQUNsQixTQUFTLENBQWdCO0lBQ3pCLFdBQVcsR0FBMEIsRUFBRSxDQUFDO0lBQ3hDLGFBQWEsR0FBZ0IsRUFBRSxDQUFDO0lBRTFDLFlBQ0MsYUFBcUIsRUFDckIsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLFNBQStCO1FBRS9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FB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RVMsV0FBVztRQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QixPQUFPO2dCQUNOLElBQUk7Z0JBQ0osVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQzVCLENBQUM7UUFDSCxDQUFDO0lBQ0YsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBQcm9taXNlUG9sbGVyIH0gZnJvbSBcInByb21pc2UtcG9sbGVyXCI7XG5cbmNvbnN0IHByb21pc2VQb2xsZXIgPSBQcm9taXNlUG9sbGVyLmRlZmF1bHQ7XG5cbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcblxuY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuaW1wb3J0IHByb3RvYnVmIGZyb20gXCJwcm90b2J1ZmpzXCI7XG5cbmNvbnN0IHsgUm9vdDogUHJvdG9Sb290IH0gPSBwcm90b2J1ZjtcbmNvbnN0IHByb3RvUm9vdCA9IFByb3RvUm9vdC5mcm9tSlNPTihcblx0cmVxdWlyZShcIi4uLy4uLy4uL3dpdG5ldC93aXRuZXQucHJvdG8uanNvblwiKSxcbik7XG5cbmltcG9ydCB7IEpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi9ycGMvaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHtcblx0VHJhbnNhY3Rpb25SZXBvcnQsXG5cdFV0eG9NZXRhZGF0YSxcblx0VmFsdWVUcmFuc2Zlck91dHB1dCxcbn0gZnJvbSBcIi4uL3JwYy90eXBlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIYXNoLCBOZXR3b3JrIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBpc0hleFN0cmluZyB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG5pbXBvcnQgdHlwZSB7XG5cdElKc29uUnBjUHJvdmlkZXIsXG5cdElMZWRnZXIsXG5cdElUcmFuc2FjdGlvblBheWxvYWQsXG5cdElUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZyxcblx0SVRyYW5zbWl0dGVyLFxufSBmcm9tIFwiLi9pbnRlcmZhY2VzLmpzXCI7XG5cbmltcG9ydCB7XG5cdHR5cGUgS2V5ZWRTaWduYXR1cmUsXG5cdE1lbXBvb2xFcnJvcixcblx0UHVibGljS2V5LFxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFRpbWVvdXRFcnJvcixcblx0dHlwZSBUcmFuc2FjdGlvbkNhbGxiYWNrLFxuXHR0eXBlIFRyYW5zYWN0aW9uUmVjZWlwdCxcblx0dHlwZSBUcmFuc2FjdGlvblN0YXR1cyxcblx0dHlwZSBUcmFuc21pc3Npb24sXG5cdFRyYW5zbWlzc2lvbkVycm9yLFxuXHR0eXBlIFV0eG8sXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc21pdHRlcjxcblx0U3BlY3MsXG5cdFBheWxvYWQgZXh0ZW5kcyBJVHJhbnNhY3Rpb25QYXlsb2FkPFNwZWNzPixcbj4gaW1wbGVtZW50cyBJVHJhbnNtaXR0ZXJcbntcblx0cHVibGljIHJlYWRvbmx5IGxlZGdlcjogSUxlZGdlcjtcblx0cHVibGljIHJlYWRvbmx5IGNoYW5nZVBraDogUHVibGljS2V5SGFzaFN0cmluZztcblxuXHRwcm90ZWN0ZWQgX3BheWxvYWQ6IFBheWxvYWQ7XG5cdHByb3RlY3RlZCBfcHJvdG9CdWY6IHByb3RvYnVmLlR5cGU7XG5cdHByb3RlY3RlZCBfc2lnbmF0dXJlczogQXJyYXk8S2V5ZWRTaWduYXR1cmU+ID0gW107XG5cdHByb3RlY3RlZCBfdHJhbnNhY3Rpb25zOiBBcnJheTxIYXNoPiA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByb3RvVHlwZU5hbWU6IHN0cmluZyxcblx0XHRwYXlsb2FkOiBQYXlsb2FkLFxuXHRcdGxlZGdlcjogSUxlZGdlcixcblx0XHRjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuXHQpIHtcblx0XHR0aGlzLl9wcm90b0J1ZiA9IHByb3RvUm9vdC5sb29rdXBUeXBlKHByb3RvVHlwZU5hbWUpO1xuXHRcdHRoaXMuX3BheWxvYWQgPSBwYXlsb2FkO1xuXHRcdHRoaXMubGVkZ2VyID0gbGVkZ2VyO1xuXHRcdGlmICghbGVkZ2VyLnByb3ZpZGVyLm5ldHdvcmspIHtcblx0XHRcdHRocm93IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogbGVkZ2VyJ3MgcHJvdmlkZXIgaXMgbm90IGluaXRpYWxpemVkLmAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHR0aGlzLmNoYW5nZVBraCA9IGNoYW5nZVBraCB8fCBsZWRnZXIuY2hhbmdlUGtoO1xuXHRcdGlmICghbGVkZ2VyLmdldFNpZ25lcih0aGlzLmNoYW5nZVBraCkpIHtcblx0XHRcdHRocm93IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogbGVkZ2VyIGhvbGRzIG5vIFNpZ25lciBmb3IgY2hhbmdlIGFkZHJlc3MgJHt0aGlzLmNoYW5nZVBraH0uYCxcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldCBwYXlsb2FkKCk6IFBheWxvYWQgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9wYXlsb2FkLnByZXBhcmVkID8gdGhpcy5fcGF5bG9hZCA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcHJvdmlkZXIoKTogSUpzb25ScGNQcm92aWRlciB7XG5cdFx0cmV0dXJuIHRoaXMubGVkZ2VyLnByb3ZpZGVyO1xuXHR9XG5cblx0cHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsge1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcmsgfHwgXCJtYWlubmV0XCI7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHRyYW5zYWN0aW9ucygpOiBBcnJheTxIYXNoPiB7XG5cdFx0cmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9ucztcblx0fVxuXG5cdHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLl9wYXlsb2FkLmNvbnN0cnVjdG9yLm5hbWVcblx0XHRcdC5zcGxpdCgvKFthLXpdKD89W0EtWl0pKS9nKVxuXHRcdFx0LnNsaWNlKDAsIC0xKVxuXHRcdFx0LmpvaW4oXCJcIik7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZ2V0IF9mcm9tKCk6IEFycmF5PFB1YmxpY0tleUhhc2hTdHJpbmc+IHwgdW5kZWZpbmVkIHtcblx0XHRpZiAodGhpcy5fc2lnbmF0dXJlcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0aGlzLl9zaWduYXR1cmVzXG5cdFx0XHRcdFx0Lm1hcCgoa3MpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IHBraCA9IFB1YmxpY0tleS5mcm9tUHJvdG9idWYoa3MucHVibGljX2tleSlcblx0XHRcdFx0XHRcdFx0Lmhhc2goKVxuXHRcdFx0XHRcdFx0XHQudG9CZWNoMzIodGhpcy5uZXR3b3JrKTtcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmxlZGdlci5nZXRTaWduZXIocGtoKT8ucGtoIHx8IHRoaXMubGVkZ2VyLnBraDtcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC8vIGF2b2lkIHJlcGV0aXRpb25zXG5cdFx0XHRcdFx0LmZpbHRlcigocGtoLCBpbmRleCwgYXJyYXkpID0+IGluZGV4ID09PSBhcnJheS5pbmRleE9mKHBraCkpXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBnZXQgX3ByZXBhcmVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHR0aGlzLl9wYXlsb2FkLnByZXBhcmVkICYmXG5cdFx0XHQhIXRoaXMuX3NpZ25hdHVyZXMgJiZcblx0XHRcdHRoaXMuX3NpZ25hdHVyZXMubGVuZ3RoID4gMFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgc2VuZFRyYW5zYWN0aW9uKHRhcmdldD86IFNwZWNzKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQ+IHtcblx0XHRsZXQgcmVjZWlwdCA9IHRoaXMuX2dldEluZmxpZ2h0UmVjZWlwdCgpO1xuXHRcdGlmICghcmVjZWlwdCB8fCB0YXJnZXQpIHtcblx0XHRcdC8vIGlmIGluZmxpZ2h0IG5vdCB5ZXQgcHJlcGFyZWQsIG9yIHByZXBhcmVkIGJ1dCBub3QgeWV0IHRyYW5zbWl0dGVkLFxuXHRcdFx0Ly8gcHJlcGFyZSBhIG5ldyBpbmZsaWdodCBlaXRoZXIgd2l0aCBzcGVjaWZpZWQgcGFyYW1zIChpZiBhbnkpLFxuXHRcdFx0Ly8gb3IgcHJldmlvdXNseSBwcmVwYXJlZCBpbmZsaWdodCAoaWYga25vd24pLlxuXHRcdFx0cmVjZWlwdCA9IGF3YWl0IHRoaXMuc2lnblRyYW5zYWN0aW9uKHRhcmdldCB8fCAocmVjZWlwdCBhcyBTcGVjcykpO1xuXHRcdH1cblx0XHRpZiAocmVjZWlwdD8uc3RhdHVzICYmIHJlY2VpcHQuc3RhdHVzICE9PSBcInNpZ25lZFwiICYmICFyZWNlaXB0Py5lcnJvcikge1xuXHRcdFx0Ly8gaWYgY3VycmVudCBpbmZsaWdodCB3YXMgYWxyZWFkeSB0cmFuc21pdHRlZCBhbmQgaXQncyBub3QgeWV0IGtub3duIHRvIGZhaWwgLi4uXG5cdFx0XHRyZXR1cm4gcmVjZWlwdDtcblx0XHR9XG5cdFx0Ly8gaWYgd2UgcmVhY2ggdGhpcyBwb2ludCBpcyBiZWNhdXNlIGFuIGluZmxpZ2h0IHRyYW5zYWN0aW9uIGlzXG5cdFx0Ly8gcmVhZHkgdG8gYmUgdHJhbnNtaXR0ZWRcblx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5zdGF0dXMgPSBcInBlbmRpbmdcIjtcblx0XHRkZWxldGUgSnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW3JlY2VpcHQuaGFzaF0uZXJyb3I7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXJcblx0XHRcdC5zZW5kUmF3VHJhbnNhY3Rpb24odGhpcy5fdG9KU09OKGZhbHNlKSlcblx0XHRcdC5jYXRjaCgoZXJyKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGVycm9yID0gbmV3IFRyYW5zbWlzc2lvbkVycm9yKFxuXHRcdFx0XHRcdHRoaXMuX2dldEluZmxpZ2h0VHJhbnNtaXNzaW9uKCksXG5cdFx0XHRcdFx0ZXJyLFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5lcnJvciA9IGVycm9yO1xuXHRcdFx0XHR0aHJvdyBlcnJvcjtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoYWNjZXB0ZWQpID0+IHtcblx0XHRcdFx0aWYgKGFjY2VwdGVkKSB7XG5cdFx0XHRcdFx0SnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW3JlY2VpcHQuaGFzaF0uc3RhdHVzID0gXCJyZWxheWVkXCI7XG5cdFx0XHRcdFx0cmV0dXJuIEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1tyZWNlaXB0Lmhhc2hdO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnN0IGVycm9yID0gbmV3IFRyYW5zbWlzc2lvbkVycm9yKFxuXHRcdFx0XHRcdFx0dGhpcy5fZ2V0SW5mbGlnaHRUcmFuc21pc3Npb24oKSxcblx0XHRcdFx0XHRcdEVycm9yKGBSZWplY3RlZCBmb3IgdW5rbm93biByZWFzb25zYCksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5lcnJvciA9IGVycm9yO1xuXHRcdFx0XHRcdHRocm93IGVycm9yO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBzaWduVHJhbnNhY3Rpb24oXG5cdFx0dGFyZ2V0PzogU3BlY3MsXG5cdFx0cmVsb2FkVXR4b3MgPSBmYWxzZSxcblx0KTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQ+IHtcblx0XHR0YXJnZXQgPSBhd2FpdCB0aGlzLl9wYXlsb2FkLnZhbGlkYXRlVGFyZ2V0KHRhcmdldCk7XG5cdFx0aWYgKCF0YXJnZXQpIHtcblx0XHRcdC8vIGUuZy4gaWYgY2FsbGVkIGZyb20gdGhpcy5zZW5kKCkgd2l0aCBubyBwYXJhbXNcblx0XHRcdHRocm93IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogY2Fubm90IHNpZ24gYSB0cmFuc2FjdGlvbiBpZiBubyBwYXJhbXMgd2VyZSBwcmV2aW91c2x5IHNwZWNpZmllZC5gLFxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRjb25zdCBpbmZsaWdodCA9IHRoaXMuX2dldEluZmxpZ2h0UmVjZWlwdCgpO1xuXHRcdGlmIChpbmZsaWdodCkge1xuXHRcdFx0Ly8gY29uc29sZS5sb2coXCJzaWduLnBlbmRpbmdSZWNlaXB0ID0+XCIsIGluZmxpZ2h0KVxuXHRcdFx0aWYgKCFpbmZsaWdodD8uc3RhdHVzIHx8IGluZmxpZ2h0LnN0YXR1cyA9PT0gXCJzaWduZWRcIikge1xuXHRcdFx0XHQvLyByZWNvdmVyIGlucHV0IHV0eG9zIGlmIHByZXZpb3VzbHkgc2lnbmVkIHBhcmFtcyB3ZXJlIG5vdCBldmVuIGF0dGVtcHRlZCB0byBiZSBzZW50XG5cdFx0XHRcdGlmICghcmVsb2FkVXR4b3MpIHRoaXMuX3JlY292ZXJJbnB1dFV0eG9zKCk7XG5cdFx0XHR9IGVsc2UgaWYgKGluZmxpZ2h0LnN0YXR1cyA9PT0gXCJwZW5kaW5nXCIgJiYgIWluZmxpZ2h0LmVycm9yKSB7XG5cdFx0XHRcdC8vIHRocm93IGV4Y2VwdGlvbiBpZiBhIGZvcm1lcmx5IHNpZ25lZCB0cmFuc2FjdGlvbiBpcyBzdGlsbCB3YWl0aW5nIHRvIGJlIHJlbGF5ZWQgYnkgYSBwcm92aWRlclxuXHRcdFx0XHR0aHJvdyBFcnJvcihcblx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbi1mbGlnaHQgdHggYmVpbmcgcmVsYXllZDogJHtpbmZsaWdodC5oYXNofWAsXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gY2xlYW4gY3VycmVudCBzaWduYXR1cmVzLCBzbyBuZXcgVVRYT3MgY2FuIGJlIGNvbnN1bWVkIGFuZCB0aGVyZWZvcmUgYSBuZXcgdHJhbnNhY3Rpb24gaGFzaCBiZSBpbmNlcHRlZFxuXHRcdHRoaXMuX2NsZWFuU2lnbmF0dXJlcyh0YXJnZXQpO1xuXG5cdFx0Ly8gaWYgbm90IHlldCBwcmVwYXJlZCwgdHJ5IHRvIGNvdmVyIHRyYW5zYWN0aW9uIGV4cGVuc2VzIHdpdGggZXhpc3RpbmcgdXR4b3Mgb24gc2lnbmVyczpcblx0XHRsZXQgY2hhbmdlID0gMG47XG5cdFx0aWYgKCF0aGlzLl9wYXlsb2FkLnByZXBhcmVkKSB7XG5cdFx0XHRjaGFuZ2UgPSBhd2FpdCB0aGlzLl9wYXlsb2FkXG5cdFx0XHRcdC5jb25zdW1lVXR4b3ModGhpcy5sZWRnZXIsIHJlbG9hZFV0eG9zKVxuXHRcdFx0XHQuY2F0Y2goKGVycjogYW55KSA9PiB7XG5cdFx0XHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBjYW5ub3QgY29uc3VtZSBVVFhPcyBmcm9tICR7dGhpcy5sZWRnZXIuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmxlZGdlci5wa2h9OiAke2Vycn0uYCxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuX3BheWxvYWQucHJlcGFyZWQpIHtcblx0XHRcdC8vIHRocm93cyBleGVjZXB0aW9uIGlmIG5vdCBlbm91Z2ggdXR4b3Mgd2VyZSBmb3VuZCB0byBjb3ZlciB0cmFuc2FjdGlvbiBleHBlbnNlczpcblx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnN1ZmZpY2llbnQgZnVuZHMgb24gJHt0aGlzLmxlZGdlci5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMubGVkZ2VyLnBraH0ke2NoYW5nZSA8IDAgPyBgOiByZXF1aXJlcyBleHRyYSAkey1jaGFuZ2V9ICRuYW5vd2l0cy5gIDogXCIuXCJ9YCxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Ly8gZG91YmxlLWNoZWNrIHdlaWdodCBkb2VzIG5vdCBleGNlZWRzIGJsb2NrIGxpbWl0Li4uXG5cdFx0aWYgKHRoaXMuX3BheWxvYWQud2VpZ2h0ID4gdGhpcy5fcGF5bG9hZC5tYXhXZWlnaHQpIHtcblx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB0cmFuc2FjdGlvbiB3ZWlnaHQgZXhjZWVkZWQgYmxvY2sgbGltaXQ6ICR7dGhpcy5fcGF5bG9hZC53ZWlnaHR9ID4gJHt0aGlzLl9wYXlsb2FkLm1heFdlaWdodH0uYCxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Ly8gc2lnbmluZyB0aGUgdHJhbnNhY3Rpb24gcGF5bG9hZCBnZW5lcmF0ZXMgdGhlIHRyYW5zYWN0aW9uIGhhc2gsIGFuZCB0aGUgcmVjZWlwdFxuXHRcdHJldHVybiB0aGlzLl91cHNlcnRUcmFuc2FjdGlvblJlY2VpcHQoXG5cdFx0XHR0aGlzLl9zaWduVHJhbnNhY3Rpb25QYXlsb2FkKCksXG5cdFx0XHR0YXJnZXQsXG5cdFx0XHRcInNpZ25lZFwiLFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgY29uZmlybVRyYW5zYWN0aW9uKFxuXHRcdGhhc2g6IEhhc2gsXG5cdFx0b3B0aW9ucz86IHtcblx0XHRcdGNvbmZpcm1hdGlvbnM/OiBudW1iZXI7XG5cdFx0XHR0aW1lb3V0U2Vjcz86IG51bWJlcjtcblx0XHRcdG9uQ2hlY2twb2ludD86IFRyYW5zYWN0aW9uQ2FsbGJhY2s7XG5cdFx0XHRvblN0YXR1c0NoYW5nZT86IFRyYW5zYWN0aW9uQ2FsbGJhY2s7XG5cdFx0fSxcblx0KTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQgfCB1bmtub3duPiB7XG5cdFx0Y29uc3QgcmVjZWlwdCA9IEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXTtcblx0XHRpZiAoIXJlY2VpcHQgfHwgcmVjZWlwdC5oYXNoICE9PSBoYXNoKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHRyYW5zYWN0aW9uIG5vdCBmb3VuZDogJHtoYXNofWAsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAoW1wic2lnbmVkXCIsIFwicGVuZGluZ1wiXS5pbmNsdWRlcyhyZWNlaXB0LnN0YXR1cykpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogdHJhbnNhY3Rpb24gc3RhdHVzIFwiJHtyZWNlaXB0LnN0YXR1c31cIjogJHtoYXNofWAsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAocmVjZWlwdC5zdGF0dXMgPT09IFwicmVtb3ZlZFwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgTWVtcG9vbEVycm9yKFxuXHRcdFx0XHRyZWNlaXB0LFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB0cmFuc2FjdGlvbiByZW1vdmVkIGZyb20gbWVtcG9vbDogJHtoYXNofWAsXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAocmVjZWlwdC5zdGF0dXMgPT09IFwicmVsYXllZFwiICYmIG9wdGlvbnM/Lm9uU3RhdHVzQ2hhbmdlKVxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0b3B0aW9ucy5vblN0YXR1c0NoYW5nZShyZWNlaXB0KTtcblx0XHRcdH0gY2F0Y2gge31cblxuXHRcdGNvbnN0IGdsb2JhbFRpbWVyID0gKHN0YXJ0OiBudW1iZXIsIG1zOiBudW1iZXIpID0+IHtcblx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KSA9PiB7XG5cdFx0XHRcdHNldFRpbWVvdXQoXG5cdFx0XHRcdFx0KCkgPT5cblx0XHRcdFx0XHRcdHJlamVjdChcblx0XHRcdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogcG9sbGluZyB0aW1lb3V0IGFmdGVyICR7TWF0aC5mbG9vcigoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDApfSBzZWNzKS5gLFxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRtcyxcblx0XHRcdFx0KTtcblx0XHRcdH0pO1xuXHRcdH07XG5cblx0XHRjb25zdCBbY29uZmlybWF0aW9ucywgaW50ZXJ2YWwsIHRpbWVvdXQsIGdsb2JhbFRpbWVvdXRdID0gW1xuXHRcdFx0b3B0aW9ucz8uY29uZmlybWF0aW9ucyB8fCAwLFxuXHRcdFx0MTAwMDAsXG5cdFx0XHQ1MDAwLFxuXHRcdFx0KG9wdGlvbnM/LnRpbWVvdXRTZWNzIHx8IDYwMCkgKiAxMDAwLFxuXHRcdF07XG5cblx0XHRyZXR1cm4gUHJvbWlzZS5yYWNlKFtcblx0XHRcdGdsb2JhbFRpbWVyKERhdGUubm93KCksIGdsb2JhbFRpbWVvdXQpLmNhdGNoKChyZWFzb246IGFueSkgPT4ge1xuXHRcdFx0XHR0aHJvdyBuZXcgVGltZW91dEVycm9yKGdsb2JhbFRpbWVvdXQsIHJlY2VpcHQsIHJlYXNvbik7XG5cdFx0XHR9KSxcblxuXHRcdFx0cHJvbWlzZVBvbGxlcih7XG5cdFx0XHRcdHRhc2tGbjogKCkgPT4gdGhpcy5wcm92aWRlci5nZXRUcmFuc2FjdGlvbihoYXNoKS5jYXRjaCgoZXJyKSA9PiBlcnIpLFxuXHRcdFx0XHRzaG91bGRDb250aW51ZTogKGVycm9yOiBhbnksIHJlcG9ydDogVHJhbnNhY3Rpb25SZXBvcnQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBzdGF0dXMgPSByZWNlaXB0LnN0YXR1cztcblx0XHRcdFx0XHRyZWNlaXB0LmVycm9yID0gZXJyb3I7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJlxuXHRcdFx0XHRcdFx0ZXJyb3IubWVzc2FnZS5pbmRleE9mKFwiSXRlbU5vdEZvdW5kXCIpID49IDBcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdHJlY2VpcHQuc3RhdHVzID0gXCJyZW1vdmVkXCI7XG5cdFx0XHRcdFx0fSBlbHNlXG5cdFx0XHRcdFx0XHRzd2l0Y2ggKHJlY2VpcHQuc3RhdHVzKSB7XG5cdFx0XHRcdFx0XHRcdGNhc2UgXCJyZWxheWVkXCI6XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHJlcG9ydD8uYmxvY2tIYXNoICYmIGlzSGV4U3RyaW5nKHJlcG9ydC5ibG9ja0hhc2gpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWNlaXB0LmNvbmZpcm1hdGlvbnMgPSByZXBvcnQuY29uZmlybWF0aW9ucztcblx0XHRcdFx0XHRcdFx0XHRcdChyZWNlaXB0LmJsb2NrSGFzaCA9IHJlcG9ydC5ibG9ja0hhc2gpLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQocmVjZWlwdC5ibG9ja0Vwb2NoID0gcmVwb3J0LmJsb2NrRXBvY2gpLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQocmVjZWlwdC5ibG9ja1RpbWVzdGFtcCA9IHJlcG9ydC5ibG9ja1RpbWVzdGFtcCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWNlaXB0LnN0YXR1cyA9IHJlcG9ydC5jb25maXJtZWRcblx0XHRcdFx0XHRcdFx0XHRcdFx0PyBcImZpbmFsaXplZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDogcmVwb3J0Py5jb25maXJtYXRpb25zID49IGNvbmZpcm1hdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ/IFwiY29uZmlybWVkXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ6IFwibWluZWRcIjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0XHRcdFx0Y2FzZSBcIm1pbmVkXCI6XG5cdFx0XHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHRcdFx0IXJlcG9ydD8uYmxvY2tIYXNoIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnQuYmxvY2tIYXNoICE9PSByZWNlaXB0LmJsb2NrSGFzaFxuXHRcdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGVsZXRlIHJlY2VpcHQuYmxvY2tIYXNoO1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGVsZXRlIHJlY2VpcHQuYmxvY2tFcG9jaDtcblx0XHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSByZWNlaXB0LmJsb2NrTWluZXI7XG5cdFx0XHRcdFx0XHRcdFx0XHRkZWxldGUgcmVjZWlwdC5ibG9ja1RpbWVzdGFtcDtcblx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuc3RhdHVzID0gXCJyZWxheWVkXCI7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuc3RhdHVzID0gcmVwb3J0LmNvbmZpcm1lZFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ/IFwiZmluYWxpemVkXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0OiByZXBvcnQ/LmNvbmZpcm1hdGlvbnMgPj0gY29uZmlybWF0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gXCJjb25maXJtZWRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogXCJtaW5lZFwiO1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHJlcG9ydD8uY29uZmlybWF0aW9ucyAhPT0gcmVjZWlwdC5jb25maXJtYXRpb25zKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuY29uZmlybWF0aW9ucyA9IHJlcG9ydC5jb25maXJtYXRpb25zO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAocmVjZWlwdC5zdGF0dXMgPT09IFwibWluZWRcIiAmJiBvcHRpb25zPy5vbkNoZWNrcG9pbnQpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25DaGVja3BvaW50KHJlY2VpcHQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gY2F0Y2gge31cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoc3RhdHVzICE9PSByZWNlaXB0LnN0YXR1cykge1xuXHRcdFx0XHRcdFx0cmVjZWlwdC50aW1lc3RhbXAgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcblx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0IVtcImNvbmZpcm1lZFwiLCBcImZpbmFsaXplZFwiXS5pbmNsdWRlcyhyZWNlaXB0LnN0YXR1cykgJiZcblx0XHRcdFx0XHRcdFx0b3B0aW9ucz8ub25TdGF0dXNDaGFuZ2Vcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRvcHRpb25zLm9uU3RhdHVzQ2hhbmdlKHJlY2VpcHQpO1xuXHRcdFx0XHRcdFx0XHR9IGNhdGNoIHt9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXSA9IHJlY2VpcHQ7XG5cdFx0XHRcdFx0cmV0dXJuIFtcInJlbGF5ZWRcIiwgXCJtaW5lZFwiXS5pbmNsdWRlcyhyZWNlaXB0LnN0YXR1cyk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGludGVydmFsLFxuXHRcdFx0XHR0aW1lb3V0LFxuXHRcdFx0fSkudGhlbihhc3luYyAoKSA9PiB7XG5cdFx0XHRcdGlmIChyZWNlaXB0LnN0YXR1cyA9PT0gXCJyZW1vdmVkXCIgJiYgcmVjZWlwdC50eXBlICE9PSBcIlVuc3Rha2VcIikge1xuXHRcdFx0XHRcdC8vIFRSQU5TQUNUSU9OIFJFTU9WRUQgRlJPTSBNRU1QT09MIC8vXG5cdFx0XHRcdFx0Ly8gMS4gVHJ5IHRvIHJlY292ZXIgaW5wdXQgdXR4b3MgYmVsb25naW5nIHRvIGxlZGdlcidzIGFkZHJlc3Nlczpcblx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0Y29uc3QgaW5wdXRzOiBBcnJheTxVdHhvTWV0YWRhdGE+ID1cblx0XHRcdFx0XHRcdFx0cmVjZWlwdC50eFtyZWNlaXB0LnR5cGVdLmJvZHkuaW5wdXRzO1xuXHRcdFx0XHRcdFx0Y29uc3Qgc2lnbmF0dXJlczogQXJyYXk8S2V5ZWRTaWduYXR1cmU+ID1cblx0XHRcdFx0XHRcdFx0cmVjZWlwdC50eFtyZWNlaXB0LnR5cGVdLnNpZ25hdHVyZXM7XG5cdFx0XHRcdFx0XHRjb25zdCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcblx0XHRcdFx0XHRcdGlmIChpbnB1dHMubGVuZ3RoID09PSBzaWduYXR1cmVzLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRpbnB1dHMuZm9yRWFjaCgobWV0YWRhdGEsIGluZGV4KSA9PiAoe1xuXHRcdFx0XHRcdFx0XHRcdC4uLm1ldGFkYXRhLFxuXHRcdFx0XHRcdFx0XHRcdHNpZ25lcjogUHVibGljS2V5LmZyb21Qcm90b2J1ZihzaWduYXR1cmVzW2luZGV4XS5wdWJsaWNfa2V5KVxuXHRcdFx0XHRcdFx0XHRcdFx0Lmhhc2goKVxuXHRcdFx0XHRcdFx0XHRcdFx0LnRvQmVjaDMyKHRoaXMubmV0d29yayksXG5cdFx0XHRcdFx0XHRcdH0pKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMubGVkZ2VyLmFkZFV0eG9zKC4uLnV0eG9zKTtcblx0XHRcdFx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHdhcm5pbmc6IGNhbm5vdCByZWNvdmVyIGlucHV0IFVUWE9TIGZyb20gdHggJHtoYXNofTogJHtlcnJ9YCxcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIDIuIFRocm93IE1lbXBvb2xFcnJvclxuXHRcdFx0XHRcdHRocm93IG5ldyBNZW1wb29sRXJyb3IoXG5cdFx0XHRcdFx0XHRyZWNlaXB0LFxuXHRcdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogdHJhbnNhY3Rpb24gcmVtb3ZlZCBmcm9tIG1lbXBvb2w6ICR7aGFzaH1gLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gVFJBTlNBQ1RJT04gRUlUSEVSIENPTkZJUk1FRCBPUiBGSU5BTElaRUQgLy9cblx0XHRcdFx0XHQvLyAxLiBUcnkgdG8gbG9hZCB2YWx1ZSB0cmFuc2ZlciBvdXRwdXRzIGludG8gdGhlIGxlZGdlcidzIGxvY2FsIGNhY2hlOlxuXHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRjb25zdCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcblx0XHRcdFx0XHRcdGlmIChbXCJTdGFrZVwiLCBcIlVuc3Rha2VcIl0uaW5jbHVkZXMocmVjZWlwdC50eXBlKSkge1xuXHRcdFx0XHRcdFx0XHRjb25zdCB2dG86IFZhbHVlVHJhbnNmZXJPdXRwdXQgPVxuXHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQudHlwZSA9PT0gXCJTdGFrZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHQ/IHJlY2VpcHQudHhbcmVjZWlwdC50eXBlXS5ib2R5Py5vdXRwdXRcblx0XHRcdFx0XHRcdFx0XHRcdDogcmVjZWlwdC50eFtyZWNlaXB0LnR5cGVdLmJvZHk/LndpdGhkcmF3YWw7XG5cdFx0XHRcdFx0XHRcdGlmICh2dG8pIHtcblx0XHRcdFx0XHRcdFx0XHR1dHhvcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0XHRcdG91dHB1dF9wb2ludGVyOiBgJHtyZWNlaXB0Lmhhc2h9OjBgLFxuXHRcdFx0XHRcdFx0XHRcdFx0dGltZWxvY2s6IHZ0by50aW1lX2xvY2ssXG5cdFx0XHRcdFx0XHRcdFx0XHR1dHhvX21hdHVyZTogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBCaWdJbnQodnRvLnZhbHVlKSxcblx0XHRcdFx0XHRcdFx0XHRcdHNpZ25lcjogdnRvLnBraCxcblx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgb3V0cHV0czogQXJyYXk8VmFsdWVUcmFuc2Zlck91dHB1dD4gPVxuXHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQudHhbcmVjZWlwdC50eXBlXS5ib2R5Py5vdXRwdXRzIHx8IFtdO1xuXHRcdFx0XHRcdFx0XHRvdXRwdXRzLmZvckVhY2goKHZ0bywgaW5kZXgpID0+XG5cdFx0XHRcdFx0XHRcdFx0dXR4b3MucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRvdXRwdXRfcG9pbnRlcjogYCR7cmVjZWlwdC5oYXNofToke2luZGV4fWAsXG5cdFx0XHRcdFx0XHRcdFx0XHR0aW1lbG9jazogdnRvLnRpbWVfbG9jayxcblx0XHRcdFx0XHRcdFx0XHRcdHV0eG9fbWF0dXJlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6IEJpZ0ludCh2dG8udmFsdWUpLFxuXHRcdFx0XHRcdFx0XHRcdFx0c2lnbmVyOiB2dG8ucGtoLFxuXHRcdFx0XHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5sZWRnZXIuYWRkVXR4b3MoLi4udXR4b3MpO1xuXHRcdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihcblx0XHRcdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogd2FybmluZzogY2Fubm90IHJlY292ZXIgb3V0cHV0IFVUWE9zIGZyb20gJHtoYXNofTogJHtlcnJ9YCxcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIDIuIEFkZCBibG9ja01pbmVyIGFkZHJlc3MgdG8gdGhlIHRyYW5zYWN0aW9uIHJlY2VpcHQ6XG5cdFx0XHRcdFx0aWYgKHJlY2VpcHQ/LmJsb2NrSGFzaCAmJiBpc0hleFN0cmluZyhyZWNlaXB0LmJsb2NrSGFzaCkpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5wcm92aWRlci5nZXRCbG9jayhyZWNlaXB0LmJsb2NrSGFzaCB8fCBcIlwiKTtcblx0XHRcdFx0XHRcdEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXS5ibG9ja01pbmVyID0gUHVibGljS2V5LmZyb21Qcm90b2J1Zihcblx0XHRcdFx0XHRcdFx0YmxvY2suYmxvY2tfc2lnLnB1YmxpY19rZXksXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdC5oYXNoKClcblx0XHRcdFx0XHRcdFx0LnRvQmVjaDMyKHRoaXMubmV0d29yayk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChvcHRpb25zPy5vblN0YXR1c0NoYW5nZSlcblx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdG9wdGlvbnMub25TdGF0dXNDaGFuZ2UocmVjZWlwdCk7XG5cdFx0XHRcdFx0XHR9IGNhdGNoIHt9XG5cdFx0XHRcdFx0Ly8gMy4gUmV0dXJuIHRyYW5zYWN0aW9uIHJlY2VpcHQ6XG5cdFx0XHRcdFx0cmV0dXJuIEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXTtcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgX2NsZWFuU2lnbmF0dXJlcyhuZXdUYXJnZXQ6IFNwZWNzKTogYW55IHtcblx0XHR0aGlzLl9wYXlsb2FkLnJlc2V0VGFyZ2V0KG5ld1RhcmdldCk7XG5cdFx0dGhpcy5fc2lnbmF0dXJlcyA9IFtdO1xuXHR9XG5cblx0cHJvdGVjdGVkIF9nZXRJbmZsaWdodEJ5dGVjb2RlKCk6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG9iaiA9IHRoaXMuX3RvUHJvdG9idWYoKTtcblx0XHRjb25zdCBlcnIgPSB0aGlzLl9wcm90b0J1Zi52ZXJpZnkob2JqKTtcblx0XHRpZiAoIWVycikge1xuXHRcdFx0Y29uc3QgbWVzc2FnZSA9IHRoaXMuX3Byb3RvQnVmLmZyb21PYmplY3Qob2JqKTtcblx0XHRcdHJldHVybiB0aGlzLl9wcm90b0J1Zi5lbmNvZGUobWVzc2FnZSkuZmluaXNoKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIF9nZXRJbmZsaWdodFJlY2VpcHQoKTogVHJhbnNhY3Rpb25SZWNlaXB0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBoYXNoID0gdGhpcy5fcGF5bG9hZC5oYXNoO1xuXHRcdGlmIChoYXNoKSB7XG5cdFx0XHRyZXR1cm4gSnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW2hhc2hdO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBfZ2V0SW5mbGlnaHRUcmFuc21pc3Npb24oKTogVHJhbnNtaXNzaW9uIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Ynl0ZWNvZGU6IHRoaXMuX2dldEluZmxpZ2h0Qnl0ZWNvZGUoKSxcblx0XHRcdGhhc2g6IHRoaXMuX3BheWxvYWQuaGFzaCxcblx0XHRcdG1lc3NhZ2U6IHRoaXMuX3RvSlNPTih0cnVlKSxcblx0XHR9O1xuXHR9XG5cblx0cHJvdGVjdGVkIF9yZWNvdmVySW5wdXRVdHhvcygpOiBhbnkge31cblx0cHJvdGVjdGVkIF9yZWNvdmVyT3V0cHV0VXR4b3MoKTogYW55IHt9XG5cblx0cHJvdGVjdGVkIF91cHNlcnRUcmFuc2FjdGlvblJlY2VpcHQoXG5cdFx0aGFzaDogSGFzaCxcblx0XHR0YXJnZXQ6IFNwZWNzLFxuXHRcdHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXMsXG5cdCk6IFRyYW5zYWN0aW9uUmVjZWlwdCB7XG5cdFx0SnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW2hhc2hdID0ge1xuXHRcdFx0Li4udGhpcy5fcGF5bG9hZC5pbnRvUmVjZWlwdCh0YXJnZXQsIHRoaXMubmV0d29yayksXG5cdFx0XHRoYXNoLFxuXHRcdFx0Y2hhbmdlOiB0aGlzLl9wYXlsb2FkLmNoYW5nZSxcblx0XHRcdGZlZXM6IHRoaXMuX3BheWxvYWQuZmVlcyxcblx0XHRcdGZyb206IHRoaXMuX2Zyb20sXG5cdFx0XHRzdGF0dXMsXG5cdFx0XHR0aW1lc3RhbXA6IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApLFxuXHRcdFx0dHg6IHRoaXMuX3RvSlNPTih0cnVlKSxcblx0XHRcdHR5cGU6IHRoaXMudHlwZSxcblx0XHRcdHZhbHVlOiB0aGlzLl9wYXlsb2FkLnZhbHVlLFxuXHRcdFx0d2VpZ2h0OiB0aGlzLl9wYXlsb2FkLndlaWdodCxcblx0XHR9O1xuXHRcdHJldHVybiBKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbaGFzaF07XG5cdH1cblxuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgX3NpZ25UcmFuc2FjdGlvblBheWxvYWQoKTogSGFzaDtcblx0cHJvdGVjdGVkIGFic3RyYWN0IF90b0pTT04oX2h1bWFuaXplOiBib29sZWFuKTogYW55O1xuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgX3RvUHJvdG9idWYoKTogYW55O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNtaXR0ZXJNdWx0aVNpZzxcblx0U3BlY3MsXG5cdFBheWxvYWQgZXh0ZW5kcyBJVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8U3BlY3M+LFxuPiBleHRlbmRzIFRyYW5zbWl0dGVyPFNwZWNzLCBQYXlsb2FkPiB7XG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByb3RvVHlwZU5hbWU6IHN0cmluZyxcblx0XHRwYXlsb2FkOiBQYXlsb2FkLFxuXHRcdGxlZGdlcjogSUxlZGdlcixcblx0XHRjaGFuZ2VQa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuXHQpIHtcblx0XHRzdXBlcihwcm90b1R5cGVOYW1lLCBwYXlsb2FkLCBsZWRnZXIsIGNoYW5nZVBraCk7XG5cdFx0dGhpcy5fcGF5bG9hZCA9IHBheWxvYWQ7XG5cdH1cblxuXHQvLy8gUmVjb3ZlciBmb3JtZXJseSBjb25zdW1lZCBVVFhPcyBieSBhIGZhaWxpbmcgdHJhbnNhY3Rpb24gYmFjayB0byB0aGVpciByZXNwZWN0aXZlIHNpZ25lcidzIFVUWE8gcG9vbFxuXHRwcm90ZWN0ZWQgX3JlY292ZXJJbnB1dFV0eG9zKCk6IGFueSB7XG5cdFx0aWYgKHRoaXMuX3BheWxvYWQuaW5wdXRzKSB7XG5cdFx0XHR0aGlzLmxlZGdlci5hZGRVdHhvcyguLi50aGlzLl9wYXlsb2FkLmlucHV0cyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8vIFJlY292ZXIgc2VsZi10YXJnZXRlZCBvdXRwdXRzIGFzIGV4cGVuZGFibGUgdXR4b3Mgb24gdGhlaXIgcmVzcGVjdGl2ZSBzaWduZXIncyBtZW1vaXplZCBjYWNoZVxuXHRwcm90ZWN0ZWQgX3JlY292ZXJPdXRwdXRVdHhvcygpOiBhbnkge1xuXHRcdGlmICh0aGlzLl9wYXlsb2FkLmhhc2ggJiYgdGhpcy5fcGF5bG9hZC5vdXRwdXRzKSB7XG5cdFx0XHRjb25zdCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcblx0XHRcdHRoaXMuX3BheWxvYWQub3V0cHV0cy5mb3JFYWNoKCh2dG8sIGluZGV4KSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLmxlZGdlci5nZXRTaWduZXIodnRvLnBraCkpXG5cdFx0XHRcdFx0dXR4b3MucHVzaCh7XG5cdFx0XHRcdFx0XHRzaWduZXI6IHZ0by5wa2gsXG5cdFx0XHRcdFx0XHRvdXRwdXRfcG9pbnRlcjogYCR7dGhpcy5fcGF5bG9hZC5oYXNofToke2luZGV4fWAsXG5cdFx0XHRcdFx0XHR0aW1lbG9jazogdnRvLnRpbWVfbG9jayxcblx0XHRcdFx0XHRcdHZhbHVlOiB2dG8udmFsdWUsXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMubGVkZ2VyLmFkZFV0eG9zKC4uLnV0eG9zKTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3NpZ25UcmFuc2FjdGlvblBheWxvYWQoKTogSGFzaCB7XG5cdFx0Y29uc3QgaGFzaCA9IHRoaXMuX3BheWxvYWQuaGFzaDtcblx0XHRpZiAoIWhhc2gpIHtcblx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnRlcm5hbCBlcnJvcjogdW5hYmxlIHRvIGhhc2hpZnkgcGF5bG9hZDogJHt0aGlzLl9wYXlsb2FkLnRvSlNPTih0cnVlLCB0aGlzLm5ldHdvcmspfX0uYCxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX3BheWxvYWQuaW5wdXRzLmZvckVhY2goKHV0eG8pID0+IHtcblx0XHRcdFx0Y29uc3Qgc2lnbmVyID0gdGhpcy5sZWRnZXIuZ2V0U2lnbmVyKHV0eG8uc2lnbmVyKTtcblx0XHRcdFx0aWYgKCFzaWduZXIpXG5cdFx0XHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnRlcm5hbCBlcnJvcjogY2Fubm90IGZpbmQgU2lnbmVyICR7dXR4by5zaWduZXJ9IGluICR7dGhpcy5sZWRnZXIuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmxlZGdlci5wa2h9LmAsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coYC4uLnNpZ25lciAke3NpZ25lci5wa2h9IHNpZ25pbmcgaGFzaCAke2hhc2h9Li4uYClcblx0XHRcdFx0XHR0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmVyLnNpZ25IYXNoKGhhc2gpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gaGFzaDtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3RvSlNPTihodW1hbml6ZTogYm9vbGVhbik6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFt0aGlzLnR5cGVdOiB7XG5cdFx0XHRcdGJvZHk6IHRoaXMuX3BheWxvYWQudG9KU09OKGh1bWFuaXplLCB0aGlzLm5ldHdvcmspLFxuXHRcdFx0XHRzaWduYXR1cmVzOiB0aGlzLl9zaWduYXR1cmVzLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0cHJvdGVjdGVkIF90b1Byb3RvYnVmKCk6IGFueSB7XG5cdFx0Y29uc3QgYm9keSA9IHRoaXMuX3BheWxvYWQudG9Qcm90b2J1ZigpO1xuXHRcdGlmIChib2R5ICYmIHRoaXMuX3NpZ25hdHVyZXMpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGJvZHksXG5cdFx0XHRcdHNpZ25hdHVyZXM6IHRoaXMuX3NpZ25hdHVyZXMsXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuIl19
|
|
420
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNtaXR0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vdHJhbnNtaXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUVsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUM7QUFFbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFVMUMsT0FBTyxFQUVOLFlBQVksRUFDWixTQUFTLEVBRVQsWUFBWSxFQUtaLGlCQUFpQixHQUVqQixNQUFNLFlBQVksQ0FBQztBQUVwQixNQUFNLE9BQWdCLFdBQVc7SUFDaEIsTUFBTSxDQUFVO0lBQ2hCLFNBQVMsQ0FBc0I7SUFFckMsUUFBUSxDQUFVO0lBQ2xCLFNBQVMsQ0FBZ0I7SUFDekIsV0FBVyxHQUEwQixFQUFFLENBQUM7SUFDeEMsYUFBYSxHQUFnQixFQUFFLENBQUM7SUFFMUMsWUFBWSxhQUFxQixFQUFFLE9BQWdCLEVBQUUsTUFBZSxFQUFFLFNBQStCO1FBQ3BHLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztR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QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QixPQUFPO2dCQUNOLElBQUk7Z0JBQ0osVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQzVCLENBQUM7UUFDSCxDQUFDO0lBQ0YsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBQcm9taXNlUG9sbGVyIH0gZnJvbSBcInByb21pc2UtcG9sbGVyXCI7XG5cbmNvbnN0IHByb21pc2VQb2xsZXIgPSBQcm9taXNlUG9sbGVyLmRlZmF1bHQ7XG5cbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcblxuY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuaW1wb3J0IHByb3RvYnVmIGZyb20gXCJwcm90b2J1ZmpzXCI7XG5cbmNvbnN0IHsgUm9vdDogUHJvdG9Sb290IH0gPSBwcm90b2J1ZjtcbmNvbnN0IHByb3RvUm9vdCA9IFByb3RvUm9vdC5mcm9tSlNPTihyZXF1aXJlKFwiLi4vLi4vLi4vd2l0bmV0L3dpdG5ldC5wcm90by5qc29uXCIpKTtcblxuaW1wb3J0IHsgSnNvblJwY1Byb3ZpZGVyIH0gZnJvbSBcIi4uL3JwYy9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2FjdGlvblJlcG9ydCwgVXR4b01ldGFkYXRhLCBWYWx1ZVRyYW5zZmVyT3V0cHV0IH0gZnJvbSBcIi4uL3JwYy90eXBlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIYXNoLCBOZXR3b3JrIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBpc0hleFN0cmluZyB9IGZyb20gXCIuLi91dGlscy5qc1wiO1xuXG5pbXBvcnQgdHlwZSB7XG5cdElKc29uUnBjUHJvdmlkZXIsXG5cdElMZWRnZXIsXG5cdElUcmFuc2FjdGlvblBheWxvYWQsXG5cdElUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZyxcblx0SVRyYW5zbWl0dGVyLFxufSBmcm9tIFwiLi9pbnRlcmZhY2VzLmpzXCI7XG5cbmltcG9ydCB7XG5cdHR5cGUgS2V5ZWRTaWduYXR1cmUsXG5cdE1lbXBvb2xFcnJvcixcblx0UHVibGljS2V5LFxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFRpbWVvdXRFcnJvcixcblx0dHlwZSBUcmFuc2FjdGlvbkNhbGxiYWNrLFxuXHR0eXBlIFRyYW5zYWN0aW9uUmVjZWlwdCxcblx0dHlwZSBUcmFuc2FjdGlvblN0YXR1cyxcblx0dHlwZSBUcmFuc21pc3Npb24sXG5cdFRyYW5zbWlzc2lvbkVycm9yLFxuXHR0eXBlIFV0eG8sXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc21pdHRlcjxTcGVjcywgUGF5bG9hZCBleHRlbmRzIElUcmFuc2FjdGlvblBheWxvYWQ8U3BlY3M+PiBpbXBsZW1lbnRzIElUcmFuc21pdHRlciB7XG5cdHB1YmxpYyByZWFkb25seSBsZWRnZXI6IElMZWRnZXI7XG5cdHB1YmxpYyByZWFkb25seSBjaGFuZ2VQa2g6IFB1YmxpY0tleUhhc2hTdHJpbmc7XG5cblx0cHJvdGVjdGVkIF9wYXlsb2FkOiBQYXlsb2FkO1xuXHRwcm90ZWN0ZWQgX3Byb3RvQnVmOiBwcm90b2J1Zi5UeXBlO1xuXHRwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IEFycmF5PEtleWVkU2lnbmF0dXJlPiA9IFtdO1xuXHRwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uczogQXJyYXk8SGFzaD4gPSBbXTtcblxuXHRjb25zdHJ1Y3Rvcihwcm90b1R5cGVOYW1lOiBzdHJpbmcsIHBheWxvYWQ6IFBheWxvYWQsIGxlZGdlcjogSUxlZGdlciwgY2hhbmdlUGtoPzogUHVibGljS2V5SGFzaFN0cmluZykge1xuXHRcdHRoaXMuX3Byb3RvQnVmID0gcHJvdG9Sb290Lmxvb2t1cFR5cGUocHJvdG9UeXBlTmFtZSk7XG5cdFx0dGhpcy5fcGF5bG9hZCA9IHBheWxvYWQ7XG5cdFx0dGhpcy5sZWRnZXIgPSBsZWRnZXI7XG5cdFx0aWYgKCFsZWRnZXIucHJvdmlkZXIubmV0d29yaykge1xuXHRcdFx0dGhyb3cgVHlwZUVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGxlZGdlcidzIHByb3ZpZGVyIGlzIG5vdCBpbml0aWFsaXplZC5gKTtcblx0XHR9XG5cdFx0dGhpcy5jaGFuZ2VQa2ggPSBjaGFuZ2VQa2ggfHwgbGVkZ2VyLmNoYW5nZVBraDtcblx0XHRpZiAoIWxlZGdlci5nZXRTaWduZXIodGhpcy5jaGFuZ2VQa2gpKSB7XG5cdFx0XHR0aHJvdyBUeXBlRXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogbGVkZ2VyIGhvbGRzIG5vIFNpZ25lciBmb3IgY2hhbmdlIGFkZHJlc3MgJHt0aGlzLmNoYW5nZVBraH0uYCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldCBwYXlsb2FkKCk6IFBheWxvYWQgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9wYXlsb2FkLnByZXBhcmVkID8gdGhpcy5fcGF5bG9hZCA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcHJvdmlkZXIoKTogSUpzb25ScGNQcm92aWRlciB7XG5cdFx0cmV0dXJuIHRoaXMubGVkZ2VyLnByb3ZpZGVyO1xuXHR9XG5cblx0cHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsge1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcmsgfHwgXCJtYWlubmV0XCI7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHRyYW5zYWN0aW9ucygpOiBBcnJheTxIYXNoPiB7XG5cdFx0cmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9ucztcblx0fVxuXG5cdHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLl9wYXlsb2FkLmNvbnN0cnVjdG9yLm5hbWVcblx0XHRcdC5zcGxpdCgvKFthLXpdKD89W0EtWl0pKS9nKVxuXHRcdFx0LnNsaWNlKDAsIC0xKVxuXHRcdFx0LmpvaW4oXCJcIik7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZ2V0IF9mcm9tKCk6IEFycmF5PFB1YmxpY0tleUhhc2hTdHJpbmc+IHwgdW5kZWZpbmVkIHtcblx0XHRpZiAodGhpcy5fc2lnbmF0dXJlcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHR0aGlzLl9zaWduYXR1cmVzXG5cdFx0XHRcdFx0Lm1hcCgoa3MpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IHBraCA9IFB1YmxpY0tleS5mcm9tUHJvdG9idWYoa3MucHVibGljX2tleSkuaGFzaCgpLnRvQmVjaDMyKHRoaXMubmV0d29yayk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5sZWRnZXIuZ2V0U2lnbmVyKHBraCk/LnBraCB8fCB0aGlzLmxlZGdlci5wa2g7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQvLyBhdm9pZCByZXBldGl0aW9uc1xuXHRcdFx0XHRcdC5maWx0ZXIoKHBraCwgaW5kZXgsIGFycmF5KSA9PiBpbmRleCA9PT0gYXJyYXkuaW5kZXhPZihwa2gpKVxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgZ2V0IF9wcmVwYXJlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5fcGF5bG9hZC5wcmVwYXJlZCAmJiAhIXRoaXMuX3NpZ25hdHVyZXMgJiYgdGhpcy5fc2lnbmF0dXJlcy5sZW5ndGggPiAwO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNlbmRUcmFuc2FjdGlvbih0YXJnZXQ/OiBTcGVjcyk6IFByb21pc2U8VHJhbnNhY3Rpb25SZWNlaXB0PiB7XG5cdFx0bGV0IHJlY2VpcHQgPSB0aGlzLl9nZXRJbmZsaWdodFJlY2VpcHQoKTtcblx0XHRpZiAoIXJlY2VpcHQgfHwgdGFyZ2V0KSB7XG5cdFx0XHQvLyBpZiBpbmZsaWdodCBub3QgeWV0IHByZXBhcmVkLCBvciBwcmVwYXJlZCBidXQgbm90IHlldCB0cmFuc21pdHRlZCxcblx0XHRcdC8vIHByZXBhcmUgYSBuZXcgaW5mbGlnaHQgZWl0aGVyIHdpdGggc3BlY2lmaWVkIHBhcmFtcyAoaWYgYW55KSxcblx0XHRcdC8vIG9yIHByZXZpb3VzbHkgcHJlcGFyZWQgaW5mbGlnaHQgKGlmIGtub3duKS5cblx0XHRcdHJlY2VpcHQgPSBhd2FpdCB0aGlzLnNpZ25UcmFuc2FjdGlvbih0YXJnZXQgfHwgKHJlY2VpcHQgYXMgU3BlY3MpKTtcblx0XHR9XG5cdFx0aWYgKHJlY2VpcHQ/LnN0YXR1cyAmJiByZWNlaXB0LnN0YXR1cyAhPT0gXCJzaWduZWRcIiAmJiAhcmVjZWlwdD8uZXJyb3IpIHtcblx0XHRcdC8vIGlmIGN1cnJlbnQgaW5mbGlnaHQgd2FzIGFscmVhZHkgdHJhbnNtaXR0ZWQgYW5kIGl0J3Mgbm90IHlldCBrbm93biB0byBmYWlsIC4uLlxuXHRcdFx0cmV0dXJuIHJlY2VpcHQ7XG5cdFx0fVxuXHRcdC8vIGlmIHdlIHJlYWNoIHRoaXMgcG9pbnQgaXMgYmVjYXVzZSBhbiBpbmZsaWdodCB0cmFuc2FjdGlvbiBpc1xuXHRcdC8vIHJlYWR5IHRvIGJlIHRyYW5zbWl0dGVkXG5cdFx0SnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW3JlY2VpcHQuaGFzaF0uc3RhdHVzID0gXCJwZW5kaW5nXCI7XG5cdFx0ZGVsZXRlIEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1tyZWNlaXB0Lmhhc2hdLmVycm9yO1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyXG5cdFx0XHQuc2VuZFJhd1RyYW5zYWN0aW9uKHRoaXMuX3RvSlNPTihmYWxzZSkpXG5cdFx0XHQuY2F0Y2goKGVycikgPT4ge1xuXHRcdFx0XHRjb25zdCBlcnJvciA9IG5ldyBUcmFuc21pc3Npb25FcnJvcih0aGlzLl9nZXRJbmZsaWdodFRyYW5zbWlzc2lvbigpLCBlcnIpO1xuXHRcdFx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbcmVjZWlwdC5oYXNoXS5lcnJvciA9IGVycm9yO1xuXHRcdFx0XHR0aHJvdyBlcnJvcjtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoYWNjZXB0ZWQpID0+IHtcblx0XHRcdFx0aWYgKGFjY2VwdGVkKSB7XG5cdFx0XHRcdFx0SnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW3JlY2VpcHQuaGFzaF0uc3RhdHVzID0gXCJyZWxheWVkXCI7XG5cdFx0XHRcdFx0cmV0dXJuIEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1tyZWNlaXB0Lmhhc2hdO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnN0IGVycm9yID0gbmV3IFRyYW5zbWlzc2lvbkVycm9yKHRoaXMuX2dldEluZmxpZ2h0VHJhbnNtaXNzaW9uKCksIEVycm9yKGBSZWplY3RlZCBmb3IgdW5rbm93biByZWFzb25zYCkpO1xuXHRcdFx0XHRcdEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1tyZWNlaXB0Lmhhc2hdLmVycm9yID0gZXJyb3I7XG5cdFx0XHRcdFx0dGhyb3cgZXJyb3I7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNpZ25UcmFuc2FjdGlvbih0YXJnZXQ/OiBTcGVjcywgcmVsb2FkVXR4b3MgPSBmYWxzZSk6IFByb21pc2U8VHJhbnNhY3Rpb25SZWNlaXB0PiB7XG5cdFx0dGFyZ2V0ID0gYXdhaXQgdGhpcy5fcGF5bG9hZC52YWxpZGF0ZVRhcmdldCh0YXJnZXQpO1xuXHRcdGlmICghdGFyZ2V0KSB7XG5cdFx0XHQvLyBlLmcuIGlmIGNhbGxlZCBmcm9tIHRoaXMuc2VuZCgpIHdpdGggbm8gcGFyYW1zXG5cdFx0XHR0aHJvdyBUeXBlRXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogY2Fubm90IHNpZ24gYSB0cmFuc2FjdGlvbiBpZiBubyBwYXJhbXMgd2VyZSBwcmV2aW91c2x5IHNwZWNpZmllZC5gKTtcblx0XHR9XG5cblx0XHRjb25zdCBpbmZsaWdodCA9IHRoaXMuX2dldEluZmxpZ2h0UmVjZWlwdCgpO1xuXHRcdGlmIChpbmZsaWdodCkge1xuXHRcdFx0Ly8gY29uc29sZS5sb2coXCJzaWduLnBlbmRpbmdSZWNlaXB0ID0+XCIsIGluZmxpZ2h0KVxuXHRcdFx0aWYgKCFpbmZsaWdodD8uc3RhdHVzIHx8IGluZmxpZ2h0LnN0YXR1cyA9PT0gXCJzaWduZWRcIikge1xuXHRcdFx0XHQvLyByZWNvdmVyIGlucHV0IHV0eG9zIGlmIHByZXZpb3VzbHkgc2lnbmVkIHBhcmFtcyB3ZXJlIG5vdCBldmVuIGF0dGVtcHRlZCB0byBiZSBzZW50XG5cdFx0XHRcdGlmICghcmVsb2FkVXR4b3MpIHRoaXMuX3JlY292ZXJJbnB1dFV0eG9zKCk7XG5cdFx0XHR9IGVsc2UgaWYgKGluZmxpZ2h0LnN0YXR1cyA9PT0gXCJwZW5kaW5nXCIgJiYgIWluZmxpZ2h0LmVycm9yKSB7XG5cdFx0XHRcdC8vIHRocm93IGV4Y2VwdGlvbiBpZiBhIGZvcm1lcmx5IHNpZ25lZCB0cmFuc2FjdGlvbiBpcyBzdGlsbCB3YWl0aW5nIHRvIGJlIHJlbGF5ZWQgYnkgYSBwcm92aWRlclxuXHRcdFx0XHR0aHJvdyBFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbi1mbGlnaHQgdHggYmVpbmcgcmVsYXllZDogJHtpbmZsaWdodC5oYXNofWApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIGNsZWFuIGN1cnJlbnQgc2lnbmF0dXJlcywgc28gbmV3IFVUWE9zIGNhbiBiZSBjb25zdW1lZCBhbmQgdGhlcmVmb3JlIGEgbmV3IHRyYW5zYWN0aW9uIGhhc2ggYmUgaW5jZXB0ZWRcblx0XHR0aGlzLl9jbGVhblNpZ25hdHVyZXModGFyZ2V0KTtcblxuXHRcdC8vIGlmIG5vdCB5ZXQgcHJlcGFyZWQsIHRyeSB0byBjb3ZlciB0cmFuc2FjdGlvbiBleHBlbnNlcyB3aXRoIGV4aXN0aW5nIHV0eG9zIG9uIHNpZ25lcnM6XG5cdFx0bGV0IGNoYW5nZSA9IDBuO1xuXHRcdGlmICghdGhpcy5fcGF5bG9hZC5wcmVwYXJlZCkge1xuXHRcdFx0Y2hhbmdlID0gYXdhaXQgdGhpcy5fcGF5bG9hZC5jb25zdW1lVXR4b3ModGhpcy5sZWRnZXIsIHJlbG9hZFV0eG9zKS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcblx0XHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogY2Fubm90IGNvbnN1bWUgVVRYT3MgZnJvbSAke3RoaXMubGVkZ2VyLmNvbnN0cnVjdG9yLm5hbWV9ICR7dGhpcy5sZWRnZXIucGtofTogJHtlcnJ9LmAsXG5cdFx0XHRcdCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuX3BheWxvYWQucHJlcGFyZWQpIHtcblx0XHRcdC8vIHRocm93cyBleGVjZXB0aW9uIGlmIG5vdCBlbm91Z2ggdXR4b3Mgd2VyZSBmb3VuZCB0byBjb3ZlciB0cmFuc2FjdGlvbiBleHBlbnNlczpcblx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnN1ZmZpY2llbnQgZnVuZHMgb24gJHt0aGlzLmxlZGdlci5jb25zdHJ1Y3Rvci5uYW1lfSAke3RoaXMubGVkZ2VyLnBraH0ke2NoYW5nZSA8IDAgPyBgOiByZXF1aXJlcyBleHRyYSAkey1jaGFuZ2V9ICRuYW5vd2l0cy5gIDogXCIuXCJ9YCxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Ly8gZG91YmxlLWNoZWNrIHdlaWdodCBkb2VzIG5vdCBleGNlZWRzIGJsb2NrIGxpbWl0Li4uXG5cdFx0aWYgKHRoaXMuX3BheWxvYWQud2VpZ2h0ID4gdGhpcy5fcGF5bG9hZC5tYXhXZWlnaHQpIHtcblx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB0cmFuc2FjdGlvbiB3ZWlnaHQgZXhjZWVkZWQgYmxvY2sgbGltaXQ6ICR7dGhpcy5fcGF5bG9hZC53ZWlnaHR9ID4gJHt0aGlzLl9wYXlsb2FkLm1heFdlaWdodH0uYCxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Ly8gc2lnbmluZyB0aGUgdHJhbnNhY3Rpb24gcGF5bG9hZCBnZW5lcmF0ZXMgdGhlIHRyYW5zYWN0aW9uIGhhc2gsIGFuZCB0aGUgcmVjZWlwdFxuXHRcdHJldHVybiB0aGlzLl91cHNlcnRUcmFuc2FjdGlvblJlY2VpcHQodGhpcy5fc2lnblRyYW5zYWN0aW9uUGF5bG9hZCgpLCB0YXJnZXQsIFwic2lnbmVkXCIpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGNvbmZpcm1UcmFuc2FjdGlvbihcblx0XHRoYXNoOiBIYXNoLFxuXHRcdG9wdGlvbnM/OiB7XG5cdFx0XHRjb25maXJtYXRpb25zPzogbnVtYmVyO1xuXHRcdFx0dGltZW91dFNlY3M/OiBudW1iZXI7XG5cdFx0XHRvbkNoZWNrcG9pbnQ/OiBUcmFuc2FjdGlvbkNhbGxiYWNrO1xuXHRcdFx0b25TdGF0dXNDaGFuZ2U/OiBUcmFuc2FjdGlvbkNhbGxiYWNrO1xuXHRcdH0sXG5cdCk6IFByb21pc2U8VHJhbnNhY3Rpb25SZWNlaXB0IHwgdW5rbm93bj4ge1xuXHRcdGNvbnN0IHJlY2VpcHQgPSBKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbaGFzaF07XG5cdFx0aWYgKCFyZWNlaXB0IHx8IHJlY2VpcHQuaGFzaCAhPT0gaGFzaCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHRyYW5zYWN0aW9uIG5vdCBmb3VuZDogJHtoYXNofWApO1xuXHRcdH0gZWxzZSBpZiAoW1wic2lnbmVkXCIsIFwicGVuZGluZ1wiXS5pbmNsdWRlcyhyZWNlaXB0LnN0YXR1cykpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB0cmFuc2FjdGlvbiBzdGF0dXMgXCIke3JlY2VpcHQuc3RhdHVzfVwiOiAke2hhc2h9YCk7XG5cdFx0fSBlbHNlIGlmIChyZWNlaXB0LnN0YXR1cyA9PT0gXCJyZW1vdmVkXCIpIHtcblx0XHRcdHRocm93IG5ldyBNZW1wb29sRXJyb3IocmVjZWlwdCwgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogdHJhbnNhY3Rpb24gcmVtb3ZlZCBmcm9tIG1lbXBvb2w6ICR7aGFzaH1gKTtcblx0XHR9IGVsc2UgaWYgKHJlY2VpcHQuc3RhdHVzID09PSBcInJlbGF5ZWRcIiAmJiBvcHRpb25zPy5vblN0YXR1c0NoYW5nZSlcblx0XHRcdHRyeSB7XG5cdFx0XHRcdG9wdGlvbnMub25TdGF0dXNDaGFuZ2UocmVjZWlwdCk7XG5cdFx0XHR9IGNhdGNoIHt9XG5cblx0XHRjb25zdCBnbG9iYWxUaW1lciA9IChzdGFydDogbnVtYmVyLCBtczogbnVtYmVyKSA9PiB7XG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4ge1xuXHRcdFx0XHRzZXRUaW1lb3V0KFxuXHRcdFx0XHRcdCgpID0+XG5cdFx0XHRcdFx0XHRyZWplY3QoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogcG9sbGluZyB0aW1lb3V0IGFmdGVyICR7TWF0aC5mbG9vcigoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDApfSBzZWNzKS5gKSxcblx0XHRcdFx0XHRtcyxcblx0XHRcdFx0KTtcblx0XHRcdH0pO1xuXHRcdH07XG5cblx0XHRjb25zdCBbY29uZmlybWF0aW9ucywgaW50ZXJ2YWwsIHRpbWVvdXQsIGdsb2JhbFRpbWVvdXRdID0gW1xuXHRcdFx0b3B0aW9ucz8uY29uZmlybWF0aW9ucyB8fCAwLFxuXHRcdFx0MTAwMDAsXG5cdFx0XHQ1MDAwLFxuXHRcdFx0KG9wdGlvbnM/LnRpbWVvdXRTZWNzIHx8IDYwMCkgKiAxMDAwLFxuXHRcdF07XG5cblx0XHRyZXR1cm4gUHJvbWlzZS5yYWNlKFtcblx0XHRcdGdsb2JhbFRpbWVyKERhdGUubm93KCksIGdsb2JhbFRpbWVvdXQpLmNhdGNoKChyZWFzb246IGFueSkgPT4ge1xuXHRcdFx0XHR0aHJvdyBuZXcgVGltZW91dEVycm9yKGdsb2JhbFRpbWVvdXQsIHJlY2VpcHQsIHJlYXNvbik7XG5cdFx0XHR9KSxcblxuXHRcdFx0cHJvbWlzZVBvbGxlcih7XG5cdFx0XHRcdHRhc2tGbjogKCkgPT4gdGhpcy5wcm92aWRlci5nZXRUcmFuc2FjdGlvbihoYXNoKS5jYXRjaCgoZXJyKSA9PiBlcnIpLFxuXHRcdFx0XHRzaG91bGRDb250aW51ZTogKGVycm9yOiBhbnksIHJlcG9ydDogVHJhbnNhY3Rpb25SZXBvcnQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBzdGF0dXMgPSByZWNlaXB0LnN0YXR1cztcblx0XHRcdFx0XHRyZWNlaXB0LmVycm9yID0gZXJyb3I7XG5cdFx0XHRcdFx0aWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyb3IubWVzc2FnZS5pbmRleE9mKFwiSXRlbU5vdEZvdW5kXCIpID49IDApIHtcblx0XHRcdFx0XHRcdHJlY2VpcHQuc3RhdHVzID0gXCJyZW1vdmVkXCI7XG5cdFx0XHRcdFx0fSBlbHNlXG5cdFx0XHRcdFx0XHRzd2l0Y2ggKHJlY2VpcHQuc3RhdHVzKSB7XG5cdFx0XHRcdFx0XHRcdGNhc2UgXCJyZWxheWVkXCI6XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHJlcG9ydD8uYmxvY2tIYXNoICYmIGlzSGV4U3RyaW5nKHJlcG9ydC5ibG9ja0hhc2gpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWNlaXB0LmNvbmZpcm1hdGlvbnMgPSByZXBvcnQuY29uZmlybWF0aW9ucztcblx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuYmxvY2tIYXNoID0gcmVwb3J0LmJsb2NrSGFzaDtcblx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuYmxvY2tFcG9jaCA9IHJlcG9ydC5ibG9ja0Vwb2NoO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVjZWlwdC5ibG9ja1RpbWVzdGFtcCA9IHJlcG9ydC5ibG9ja1RpbWVzdGFtcDtcblx0XHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQuc3RhdHVzID0gcmVwb3J0LmNvbmZpcm1lZFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ/IFwiZmluYWxpemVkXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0OiByZXBvcnQ/LmNvbmZpcm1hdGlvbnMgPj0gY29uZmlybWF0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gXCJjb25maXJtZWRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogXCJtaW5lZFwiO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdFx0XHRjYXNlIFwibWluZWRcIjpcblx0XHRcdFx0XHRcdFx0XHRpZiAoIXJlcG9ydD8uYmxvY2tIYXNoIHx8IHJlcG9ydC5ibG9ja0hhc2ggIT09IHJlY2VpcHQuYmxvY2tIYXNoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRkZWxldGUgcmVjZWlwdC5ibG9ja0hhc2g7XG5cdFx0XHRcdFx0XHRcdFx0XHRkZWxldGUgcmVjZWlwdC5ibG9ja0Vwb2NoO1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGVsZXRlIHJlY2VpcHQuYmxvY2tNaW5lcjtcblx0XHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSByZWNlaXB0LmJsb2NrVGltZXN0YW1wO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVjZWlwdC5zdGF0dXMgPSBcInJlbGF5ZWRcIjtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVjZWlwdC5zdGF0dXMgPSByZXBvcnQuY29uZmlybWVkXG5cdFx0XHRcdFx0XHRcdFx0XHRcdD8gXCJmaW5hbGl6ZWRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ6IHJlcG9ydD8uY29uZmlybWF0aW9ucyA+PSBjb25maXJtYXRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PyBcImNvbmZpcm1lZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0OiBcIm1pbmVkXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAocmVwb3J0Py5jb25maXJtYXRpb25zICE9PSByZWNlaXB0LmNvbmZpcm1hdGlvbnMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVjZWlwdC5jb25maXJtYXRpb25zID0gcmVwb3J0LmNvbmZpcm1hdGlvbnM7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChyZWNlaXB0LnN0YXR1cyA9PT0gXCJtaW5lZFwiICYmIG9wdGlvbnM/Lm9uQ2hlY2twb2ludClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0b3B0aW9ucy5vbkNoZWNrcG9pbnQocmVjZWlwdCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSBjYXRjaCB7fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChzdGF0dXMgIT09IHJlY2VpcHQuc3RhdHVzKSB7XG5cdFx0XHRcdFx0XHRyZWNlaXB0LnRpbWVzdGFtcCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuXHRcdFx0XHRcdFx0aWYgKCFbXCJjb25maXJtZWRcIiwgXCJmaW5hbGl6ZWRcIl0uaW5jbHVkZXMocmVjZWlwdC5zdGF0dXMpICYmIG9wdGlvbnM/Lm9uU3RhdHVzQ2hhbmdlKVxuXHRcdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25TdGF0dXNDaGFuZ2UocmVjZWlwdCk7XG5cdFx0XHRcdFx0XHRcdH0gY2F0Y2gge31cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0SnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW2hhc2hdID0gcmVjZWlwdDtcblx0XHRcdFx0XHRyZXR1cm4gW1wicmVsYXllZFwiLCBcIm1pbmVkXCJdLmluY2x1ZGVzKHJlY2VpcHQuc3RhdHVzKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0aW50ZXJ2YWwsXG5cdFx0XHRcdHRpbWVvdXQsXG5cdFx0XHR9KS50aGVuKGFzeW5jICgpID0+IHtcblx0XHRcdFx0aWYgKHJlY2VpcHQuc3RhdHVzID09PSBcInJlbW92ZWRcIiAmJiByZWNlaXB0LnR5cGUgIT09IFwiVW5zdGFrZVwiKSB7XG5cdFx0XHRcdFx0Ly8gVFJBTlNBQ1RJT04gUkVNT1ZFRCBGUk9NIE1FTVBPT0wgLy9cblx0XHRcdFx0XHQvLyAxLiBUcnkgdG8gcmVjb3ZlciBpbnB1dCB1dHhvcyBiZWxvbmdpbmcgdG8gbGVkZ2VyJ3MgYWRkcmVzc2VzOlxuXHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRjb25zdCBpbnB1dHM6IEFycmF5PFV0eG9NZXRhZGF0YT4gPSByZWNlaXB0LnR4W3JlY2VpcHQudHlwZV0uYm9keS5pbnB1dHM7XG5cdFx0XHRcdFx0XHRjb25zdCBzaWduYXR1cmVzOiBBcnJheTxLZXllZFNpZ25hdHVyZT4gPSByZWNlaXB0LnR4W3JlY2VpcHQudHlwZV0uc2lnbmF0dXJlcztcblx0XHRcdFx0XHRcdGNvbnN0IHV0eG9zOiBBcnJheTxVdHhvPiA9IFtdO1xuXHRcdFx0XHRcdFx0aWYgKGlucHV0cy5sZW5ndGggPT09IHNpZ25hdHVyZXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdHV0eG9zLnB1c2goXG5cdFx0XHRcdFx0XHRcdFx0Li4uaW5wdXRzLm1hcCgobWV0YWRhdGEsIGluZGV4KSA9PiAoe1xuXHRcdFx0XHRcdFx0XHRcdFx0Li4ubWV0YWRhdGEsXG5cdFx0XHRcdFx0XHRcdFx0XHRzaWduZXI6IFB1YmxpY0tleS5mcm9tUHJvdG9idWYoc2lnbmF0dXJlc1tpbmRleF0ucHVibGljX2tleSkuaGFzaCgpLnRvQmVjaDMyKHRoaXMubmV0d29yayksXG5cdFx0XHRcdFx0XHRcdFx0fSkpLFxuXHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5sZWRnZXIuYWRkVXR4b3MoLi4udXR4b3MpO1xuXHRcdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB3YXJuaW5nOiBjYW5ub3QgcmVjb3ZlciBpbnB1dCBVVFhPUyBmcm9tIHR4ICR7aGFzaH06ICR7ZXJyfWApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyAyLiBUaHJvdyBNZW1wb29sRXJyb3Jcblx0XHRcdFx0XHR0aHJvdyBuZXcgTWVtcG9vbEVycm9yKHJlY2VpcHQsIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IHRyYW5zYWN0aW9uIHJlbW92ZWQgZnJvbSBtZW1wb29sOiAke2hhc2h9YCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gVFJBTlNBQ1RJT04gRUlUSEVSIENPTkZJUk1FRCBPUiBGSU5BTElaRUQgLy9cblx0XHRcdFx0XHQvLyAxLiBUcnkgdG8gbG9hZCB2YWx1ZSB0cmFuc2ZlciBvdXRwdXRzIGludG8gdGhlIGxlZGdlcidzIGxvY2FsIGNhY2hlOlxuXHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRjb25zdCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcblx0XHRcdFx0XHRcdGlmIChbXCJTdGFrZVwiLCBcIlVuc3Rha2VcIl0uaW5jbHVkZXMocmVjZWlwdC50eXBlKSkge1xuXHRcdFx0XHRcdFx0XHRjb25zdCB2dG86IFZhbHVlVHJhbnNmZXJPdXRwdXQgPVxuXHRcdFx0XHRcdFx0XHRcdHJlY2VpcHQudHlwZSA9PT0gXCJTdGFrZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHQ/IHJlY2VpcHQudHhbcmVjZWlwdC50eXBlXS5ib2R5Py5vdXRwdXRcblx0XHRcdFx0XHRcdFx0XHRcdDogcmVjZWlwdC50eFtyZWNlaXB0LnR5cGVdLmJvZHk/LndpdGhkcmF3YWw7XG5cdFx0XHRcdFx0XHRcdGlmICh2dG8pIHtcblx0XHRcdFx0XHRcdFx0XHR1dHhvcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0XHRcdG91dHB1dF9wb2ludGVyOiBgJHtyZWNlaXB0Lmhhc2h9OjBgLFxuXHRcdFx0XHRcdFx0XHRcdFx0dGltZWxvY2s6IHZ0by50aW1lX2xvY2ssXG5cdFx0XHRcdFx0XHRcdFx0XHR1dHhvX21hdHVyZTogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOiBCaWdJbnQodnRvLnZhbHVlKSxcblx0XHRcdFx0XHRcdFx0XHRcdHNpZ25lcjogdnRvLnBraCxcblx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgb3V0cHV0czogQXJyYXk8VmFsdWVUcmFuc2Zlck91dHB1dD4gPSByZWNlaXB0LnR4W3JlY2VpcHQudHlwZV0uYm9keT8ub3V0cHV0cyB8fCBbXTtcblx0XHRcdFx0XHRcdFx0b3V0cHV0cy5mb3JFYWNoKCh2dG8sIGluZGV4KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dXR4b3MucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRvdXRwdXRfcG9pbnRlcjogYCR7cmVjZWlwdC5oYXNofToke2luZGV4fWAsXG5cdFx0XHRcdFx0XHRcdFx0XHR0aW1lbG9jazogdnRvLnRpbWVfbG9jayxcblx0XHRcdFx0XHRcdFx0XHRcdHV0eG9fbWF0dXJlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6IEJpZ0ludCh2dG8udmFsdWUpLFxuXHRcdFx0XHRcdFx0XHRcdFx0c2lnbmVyOiB2dG8ucGtoLFxuXHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMubGVkZ2VyLmFkZFV0eG9zKC4uLnV0eG9zKTtcblx0XHRcdFx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogd2FybmluZzogY2Fubm90IHJlY292ZXIgb3V0cHV0IFVUWE9zIGZyb20gJHtoYXNofTogJHtlcnJ9YCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vIDIuIEFkZCBibG9ja01pbmVyIGFkZHJlc3MgdG8gdGhlIHRyYW5zYWN0aW9uIHJlY2VpcHQ6XG5cdFx0XHRcdFx0aWYgKHJlY2VpcHQ/LmJsb2NrSGFzaCAmJiBpc0hleFN0cmluZyhyZWNlaXB0LmJsb2NrSGFzaCkpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5wcm92aWRlci5nZXRCbG9jayhyZWNlaXB0LmJsb2NrSGFzaCB8fCBcIlwiKTtcblx0XHRcdFx0XHRcdEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXS5ibG9ja01pbmVyID0gUHVibGljS2V5LmZyb21Qcm90b2J1ZihibG9jay5ibG9ja19zaWcucHVibGljX2tleSlcblx0XHRcdFx0XHRcdFx0Lmhhc2goKVxuXHRcdFx0XHRcdFx0XHQudG9CZWNoMzIodGhpcy5uZXR3b3JrKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKG9wdGlvbnM/Lm9uU3RhdHVzQ2hhbmdlKVxuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0b3B0aW9ucy5vblN0YXR1c0NoYW5nZShyZWNlaXB0KTtcblx0XHRcdFx0XHRcdH0gY2F0Y2gge31cblx0XHRcdFx0XHQvLyAzLiBSZXR1cm4gdHJhbnNhY3Rpb24gcmVjZWlwdDpcblx0XHRcdFx0XHRyZXR1cm4gSnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW2hhc2hdO1xuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRdKTtcblx0fVxuXG5cdHByb3RlY3RlZCBfY2xlYW5TaWduYXR1cmVzKG5ld1RhcmdldDogU3BlY3MpOiBhbnkge1xuXHRcdHRoaXMuX3BheWxvYWQucmVzZXRUYXJnZXQobmV3VGFyZ2V0KTtcblx0XHR0aGlzLl9zaWduYXR1cmVzID0gW107XG5cdH1cblxuXHRwcm90ZWN0ZWQgX2dldEluZmxpZ2h0Qnl0ZWNvZGUoKTogVWludDhBcnJheSB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgb2JqID0gdGhpcy5fdG9Qcm90b2J1ZigpO1xuXHRcdGNvbnN0IGVyciA9IHRoaXMuX3Byb3RvQnVmLnZlcmlmeShvYmopO1xuXHRcdGlmICghZXJyKSB7XG5cdFx0XHRjb25zdCBtZXNzYWdlID0gdGhpcy5fcHJvdG9CdWYuZnJvbU9iamVjdChvYmopO1xuXHRcdFx0cmV0dXJuIHRoaXMuX3Byb3RvQnVmLmVuY29kZShtZXNzYWdlKS5maW5pc2goKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgX2dldEluZmxpZ2h0UmVjZWlwdCgpOiBUcmFuc2FjdGlvblJlY2VpcHQgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGhhc2ggPSB0aGlzLl9wYXlsb2FkLmhhc2g7XG5cdFx0aWYgKGhhc2gpIHtcblx0XHRcdHJldHVybiBKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbaGFzaF07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIF9nZXRJbmZsaWdodFRyYW5zbWlzc2lvbigpOiBUcmFuc21pc3Npb24ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRieXRlY29kZTogdGhpcy5fZ2V0SW5mbGlnaHRCeXRlY29kZSgpLFxuXHRcdFx0aGFzaDogdGhpcy5fcGF5bG9hZC5oYXNoLFxuXHRcdFx0bWVzc2FnZTogdGhpcy5fdG9KU09OKHRydWUpLFxuXHRcdH07XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3JlY292ZXJJbnB1dFV0eG9zKCk6IGFueSB7fVxuXHRwcm90ZWN0ZWQgX3JlY292ZXJPdXRwdXRVdHhvcygpOiBhbnkge31cblxuXHRwcm90ZWN0ZWQgX3Vwc2VydFRyYW5zYWN0aW9uUmVjZWlwdChoYXNoOiBIYXNoLCB0YXJnZXQ6IFNwZWNzLCBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzKTogVHJhbnNhY3Rpb25SZWNlaXB0IHtcblx0XHRKc29uUnBjUHJvdmlkZXIucmVjZWlwdHNbaGFzaF0gPSB7XG5cdFx0XHQuLi50aGlzLl9wYXlsb2FkLmludG9SZWNlaXB0KHRhcmdldCwgdGhpcy5uZXR3b3JrKSxcblx0XHRcdGhhc2gsXG5cdFx0XHRjaGFuZ2U6IHRoaXMuX3BheWxvYWQuY2hhbmdlLFxuXHRcdFx0ZmVlczogdGhpcy5fcGF5bG9hZC5mZWVzLFxuXHRcdFx0ZnJvbTogdGhpcy5fZnJvbSxcblx0XHRcdHN0YXR1cyxcblx0XHRcdHRpbWVzdGFtcDogTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCksXG5cdFx0XHR0eDogdGhpcy5fdG9KU09OKHRydWUpLFxuXHRcdFx0dHlwZTogdGhpcy50eXBlLFxuXHRcdFx0dmFsdWU6IHRoaXMuX3BheWxvYWQudmFsdWUsXG5cdFx0XHR3ZWlnaHQ6IHRoaXMuX3BheWxvYWQud2VpZ2h0LFxuXHRcdH07XG5cdFx0cmV0dXJuIEpzb25ScGNQcm92aWRlci5yZWNlaXB0c1toYXNoXTtcblx0fVxuXG5cdHByb3RlY3RlZCBhYnN0cmFjdCBfc2lnblRyYW5zYWN0aW9uUGF5bG9hZCgpOiBIYXNoO1xuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgX3RvSlNPTihfaHVtYW5pemU6IGJvb2xlYW4pOiBhbnk7XG5cdHByb3RlY3RlZCBhYnN0cmFjdCBfdG9Qcm90b2J1ZigpOiBhbnk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc21pdHRlck11bHRpU2lnPFxuXHRTcGVjcyxcblx0UGF5bG9hZCBleHRlbmRzIElUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZzxTcGVjcz4sXG4+IGV4dGVuZHMgVHJhbnNtaXR0ZXI8U3BlY3MsIFBheWxvYWQ+IHtcblx0Y29uc3RydWN0b3IocHJvdG9UeXBlTmFtZTogc3RyaW5nLCBwYXlsb2FkOiBQYXlsb2FkLCBsZWRnZXI6IElMZWRnZXIsIGNoYW5nZVBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcpIHtcblx0XHRzdXBlcihwcm90b1R5cGVOYW1lLCBwYXlsb2FkLCBsZWRnZXIsIGNoYW5nZVBraCk7XG5cdFx0dGhpcy5fcGF5bG9hZCA9IHBheWxvYWQ7XG5cdH1cblxuXHQvLy8gUmVjb3ZlciBmb3JtZXJseSBjb25zdW1lZCBVVFhPcyBieSBhIGZhaWxpbmcgdHJhbnNhY3Rpb24gYmFjayB0byB0aGVpciByZXNwZWN0aXZlIHNpZ25lcidzIFVUWE8gcG9vbFxuXHRwcm90ZWN0ZWQgX3JlY292ZXJJbnB1dFV0eG9zKCk6IGFueSB7XG5cdFx0aWYgKHRoaXMuX3BheWxvYWQuaW5wdXRzKSB7XG5cdFx0XHR0aGlzLmxlZGdlci5hZGRVdHhvcyguLi50aGlzLl9wYXlsb2FkLmlucHV0cyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8vIFJlY292ZXIgc2VsZi10YXJnZXRlZCBvdXRwdXRzIGFzIGV4cGVuZGFibGUgdXR4b3Mgb24gdGhlaXIgcmVzcGVjdGl2ZSBzaWduZXIncyBtZW1vaXplZCBjYWNoZVxuXHRwcm90ZWN0ZWQgX3JlY292ZXJPdXRwdXRVdHhvcygpOiBhbnkge1xuXHRcdGlmICh0aGlzLl9wYXlsb2FkLmhhc2ggJiYgdGhpcy5fcGF5bG9hZC5vdXRwdXRzKSB7XG5cdFx0XHRjb25zdCB1dHhvczogQXJyYXk8VXR4bz4gPSBbXTtcblx0XHRcdHRoaXMuX3BheWxvYWQub3V0cHV0cy5mb3JFYWNoKCh2dG8sIGluZGV4KSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLmxlZGdlci5nZXRTaWduZXIodnRvLnBraCkpXG5cdFx0XHRcdFx0dXR4b3MucHVzaCh7XG5cdFx0XHRcdFx0XHRzaWduZXI6IHZ0by5wa2gsXG5cdFx0XHRcdFx0XHRvdXRwdXRfcG9pbnRlcjogYCR7dGhpcy5fcGF5bG9hZC5oYXNofToke2luZGV4fWAsXG5cdFx0XHRcdFx0XHR0aW1lbG9jazogdnRvLnRpbWVfbG9jayxcblx0XHRcdFx0XHRcdHZhbHVlOiB2dG8udmFsdWUsXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMubGVkZ2VyLmFkZFV0eG9zKC4uLnV0eG9zKTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3NpZ25UcmFuc2FjdGlvblBheWxvYWQoKTogSGFzaCB7XG5cdFx0Y29uc3QgaGFzaCA9IHRoaXMuX3BheWxvYWQuaGFzaDtcblx0XHRpZiAoIWhhc2gpIHtcblx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnRlcm5hbCBlcnJvcjogdW5hYmxlIHRvIGhhc2hpZnkgcGF5bG9hZDogJHt0aGlzLl9wYXlsb2FkLnRvSlNPTih0cnVlLCB0aGlzLm5ldHdvcmspfX0uYCxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX3BheWxvYWQuaW5wdXRzLmZvckVhY2goKHV0eG8pID0+IHtcblx0XHRcdFx0Y29uc3Qgc2lnbmVyID0gdGhpcy5sZWRnZXIuZ2V0U2lnbmVyKHV0eG8uc2lnbmVyKTtcblx0XHRcdFx0aWYgKCFzaWduZXIpXG5cdFx0XHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnRlcm5hbCBlcnJvcjogY2Fubm90IGZpbmQgU2lnbmVyICR7dXR4by5zaWduZXJ9IGluICR7dGhpcy5sZWRnZXIuY29uc3RydWN0b3IubmFtZX0gJHt0aGlzLmxlZGdlci5wa2h9LmAsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coYC4uLnNpZ25lciAke3NpZ25lci5wa2h9IHNpZ25pbmcgaGFzaCAke2hhc2h9Li4uYClcblx0XHRcdFx0XHR0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmVyLnNpZ25IYXNoKGhhc2gpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gaGFzaDtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3RvSlNPTihodW1hbml6ZTogYm9vbGVhbik6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFt0aGlzLnR5cGVdOiB7XG5cdFx0XHRcdGJvZHk6IHRoaXMuX3BheWxvYWQudG9KU09OKGh1bWFuaXplLCB0aGlzLm5ldHdvcmspLFxuXHRcdFx0XHRzaWduYXR1cmVzOiB0aGlzLl9zaWduYXR1cmVzLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0cHJvdGVjdGVkIF90b1Byb3RvYnVmKCk6IGFueSB7XG5cdFx0Y29uc3QgYm9keSA9IHRoaXMuX3BheWxvYWQudG9Qcm90b2J1ZigpO1xuXHRcdGlmIChib2R5ICYmIHRoaXMuX3NpZ25hdHVyZXMpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGJvZHksXG5cdFx0XHRcdHNpZ25hdHVyZXM6IHRoaXMuX3NpZ25hdHVyZXMsXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuIl19
|