@bitgo/abstract-utxo 10.18.0 → 10.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/abstractUtxoCoin.d.ts +2 -1
- package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/cjs/src/abstractUtxoCoin.js +7 -19
- package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.js +4 -4
- package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -1
- package/dist/cjs/src/impl/btc/inscriptionBuilder.js +3 -3
- package/dist/cjs/src/keychains.d.ts +3 -4
- package/dist/cjs/src/keychains.d.ts.map +1 -1
- package/dist/cjs/src/keychains.js +3 -4
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts +2 -2
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -1
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +6 -7
- package/dist/cjs/src/offlineVault/OfflineVaultSignable.d.ts +2 -2
- package/dist/cjs/src/offlineVault/OfflineVaultSignable.d.ts.map +1 -1
- package/dist/cjs/src/offlineVault/OfflineVaultSignable.js +3 -3
- package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts +2 -3
- package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -1
- package/dist/cjs/src/offlineVault/descriptor/transaction.js +1 -1
- package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/cjs/src/recovery/crossChainRecovery.js +2 -3
- package/dist/cjs/src/transaction/bip322.d.ts.map +1 -1
- package/dist/cjs/src/transaction/bip322.js +2 -3
- package/dist/cjs/src/transaction/explainTransaction.d.ts +2 -1
- package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/explainTransaction.js +3 -2
- package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +3 -5
- package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/SigningError.js +3 -5
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts +2 -2
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.js +2 -2
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +10 -6
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +24 -37
- package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts +2 -1
- package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/replayProtection.js +3 -5
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +2 -2
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +6 -5
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts +2 -3
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.js +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +3 -4
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +3 -3
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +5 -6
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signTransaction.js +4 -40
- package/dist/cjs/src/transaction/recipient.d.ts.map +1 -1
- package/dist/cjs/src/transaction/recipient.js +6 -41
- package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/signTransaction.js +3 -4
- package/dist/cjs/src/unspent.d.ts +2 -2
- package/dist/cjs/src/unspent.d.ts.map +1 -1
- package/dist/cjs/src/unspent.js +1 -1
- package/dist/cjs/src/verifyKey.d.ts +0 -8
- package/dist/cjs/src/verifyKey.d.ts.map +1 -1
- package/dist/cjs/src/verifyKey.js +6 -62
- package/dist/cjs/src/wasmUtil.d.ts +7 -2
- package/dist/cjs/src/wasmUtil.d.ts.map +1 -1
- package/dist/cjs/src/wasmUtil.js +9 -1
- package/dist/cjs/test/unit/coins.js +2 -2
- package/dist/cjs/test/unit/customChangeWallet.js +172 -111
- package/dist/cjs/test/unit/customChangeWalletFixtures.d.ts +2 -0
- package/dist/cjs/test/unit/customChangeWalletFixtures.d.ts.map +1 -0
- package/dist/cjs/test/unit/customChangeWalletFixtures.js +53 -0
- package/dist/cjs/test/unit/postProcessPrebuild.js +2 -2
- package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +7 -3
- package/dist/cjs/test/unit/recovery/crossChainRecovery.js +2 -2
- package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.js +2 -2
- package/dist/cjs/test/unit/txFormat.js +4 -32
- package/dist/cjs/test/unit/util/address.d.ts +1 -1
- package/dist/cjs/test/unit/util/transaction.d.ts +1 -1
- package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/transaction.js +9 -5
- package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/unspents.js +3 -2
- package/dist/cjs/test/unit/util/utxoCoins.d.ts +9 -0
- package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/utxoCoins.js +52 -3
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/abstractUtxoCoin.d.ts +2 -1
- package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/esm/abstractUtxoCoin.js +8 -20
- package/dist/esm/descriptor/createWallet/createDescriptorWallet.js +4 -4
- package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -1
- package/dist/esm/impl/btc/inscriptionBuilder.js +4 -4
- package/dist/esm/keychains.d.ts +3 -4
- package/dist/esm/keychains.d.ts.map +1 -1
- package/dist/esm/keychains.js +4 -5
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts +2 -2
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -1
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +6 -7
- package/dist/esm/offlineVault/OfflineVaultSignable.d.ts +2 -2
- package/dist/esm/offlineVault/OfflineVaultSignable.d.ts.map +1 -1
- package/dist/esm/offlineVault/OfflineVaultSignable.js +3 -3
- package/dist/esm/offlineVault/descriptor/transaction.d.ts +2 -3
- package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -1
- package/dist/esm/offlineVault/descriptor/transaction.js +1 -1
- package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/esm/recovery/crossChainRecovery.js +3 -4
- package/dist/esm/transaction/bip322.d.ts.map +1 -1
- package/dist/esm/transaction/bip322.js +3 -4
- package/dist/esm/transaction/explainTransaction.d.ts +2 -1
- package/dist/esm/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/explainTransaction.js +3 -2
- package/dist/esm/transaction/fixedScript/SigningError.d.ts +3 -5
- package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/SigningError.js +3 -5
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts +2 -2
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.js +2 -2
- package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/explainTransaction.js +10 -6
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/parseTransaction.js +25 -5
- package/dist/esm/transaction/fixedScript/replayProtection.d.ts +2 -1
- package/dist/esm/transaction/fixedScript/replayProtection.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/replayProtection.js +4 -6
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +2 -2
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +6 -5
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts +2 -3
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.js +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +3 -4
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtWasm.js +3 -3
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts +5 -6
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signTransaction.js +5 -8
- package/dist/esm/transaction/recipient.d.ts.map +1 -1
- package/dist/esm/transaction/recipient.js +6 -8
- package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/signTransaction.js +3 -4
- package/dist/esm/unspent.d.ts +2 -2
- package/dist/esm/unspent.d.ts.map +1 -1
- package/dist/esm/unspent.js +1 -1
- package/dist/esm/verifyKey.d.ts +0 -8
- package/dist/esm/verifyKey.d.ts.map +1 -1
- package/dist/esm/verifyKey.js +6 -29
- package/dist/esm/wasmUtil.d.ts +7 -2
- package/dist/esm/wasmUtil.d.ts.map +1 -1
- package/dist/esm/wasmUtil.js +8 -1
- package/package.json +9 -11
|
@@ -148,7 +148,7 @@ function run(sourceCoin, recoveryCoin) {
|
|
|
148
148
|
function checkRecoveryPsbtSignature(psbtHex) {
|
|
149
149
|
// Parse using wasm-utxo for signature verification
|
|
150
150
|
const wasmPsbt = wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(Buffer.from(psbtHex, 'hex'), sourceCoin.name);
|
|
151
|
-
const parsed = wasmPsbt.parseTransactionWithWalletKeys(wasmWalletKeys, { publicKeys: [] });
|
|
151
|
+
const parsed = wasmPsbt.parseTransactionWithWalletKeys(wasmWalletKeys, { replayProtection: { publicKeys: [] } });
|
|
152
152
|
const unspents = getRecoveryUnspents();
|
|
153
153
|
should.equal(parsed.inputs.length, unspents.length);
|
|
154
154
|
// Verify user key has signed each input (same pattern as backupKeyRecovery test)
|
|
@@ -295,4 +295,4 @@ describe('convertLtcAddressToLegacyFormat', function () {
|
|
|
295
295
|
assert.strictEqual(result, bech32Address);
|
|
296
296
|
});
|
|
297
297
|
});
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NDaGFpblJlY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3JlY292ZXJ5L2Nyb3NzQ2hhaW5SZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyxpQ0FBa0M7QUFDbEMsNkJBQThCO0FBRTlCLDhDQUEwQztBQUMxQyxnREFBNkU7QUFDN0UsNkNBQStCO0FBRS9CLHNDQVFzQjtBQUN0Qiw4Q0FBa0U7QUFFbEUsa0NBVWlCO0FBQ2pCLGlEQUE4QztBQUU5QyxpQ0FBd0Q7QUFFeEQsU0FBUyxRQUFRLENBQUMsQ0FBaUI7SUFDakMsT0FBTyxJQUFBLGtCQUFPLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBc0IsRUFBRSxRQUFnQixFQUFFLFVBQWtDO0lBQzlGLE9BQU87UUFDTCxJQUFBLHFCQUFTLEdBQUU7YUFDUixHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsUUFBUSxFQUFFLENBQUM7YUFDcEQsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNWLEVBQUUsRUFBRSxRQUFRO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pDLENBQUM7YUFDRCxPQUFPLEVBQUU7UUFDWixHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN0QixJQUFBLHFCQUFTLEdBQUU7YUFDUixHQUFHLENBQUMsV0FBVyxJQUFJLENB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Q25FLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLG9FQUFvRSxFQUFFO1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLG9DQUFvQyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLElBQUEscUNBQStCLEVBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXRFLGlEQUFpRDtRQUNqRCxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsNENBQTRDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsb0NBQW9DLEVBQUU7UUFDdkMsTUFBTSxhQUFhLEdBQUcsNkNBQTZDLENBQUM7UUFDcEUsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQ0FBK0IsRUFBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgc2hvdWxkID0gcmVxdWlyZSgnc2hvdWxkJyk7XG5pbXBvcnQgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBnZXRTZWVkIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCB7IGFkZHJlc3MgYXMgd2FzbUFkZHJlc3MsIGZpeGVkU2NyaXB0V2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5pbXBvcnQgKiBhcyBzaW5vbiBmcm9tICdzaW5vbic7XG5cbmltcG9ydCB7XG4gIEFic3RyYWN0VXR4b0NvaW4sXG4gIENyb3NzQ2hhaW5SZWNvdmVyeVNpZ25lZCxcbiAgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQsXG4gIGdldFdhbGxldCxcbiAgc3VwcG9ydGVkQ3Jvc3NDaGFpblJlY292ZXJpZXMsXG4gIGdlbmVyYXRlQWRkcmVzcyxcbiAgY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdCxcbn0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IGlzTWFpbm5ldENvaW4sIGlzVGVzdG5ldENvaW4gfSBmcm9tICcuLi8uLi8uLi9zcmMvbmFtZXMnO1xuaW1wb3J0IHR5cGUgeyBXYWxsZXRVbnNwZW50IH0gZnJvbSAnLi4vLi4vLi4vc3JjL3Vuc3BlbnQnO1xuaW1wb3J0IHtcbiAgZ2V0Rml4dHVyZSxcbiAga2V5Y2hhaW5zQmFzZTU4LFxuICBLZXljaGFpbkJhc2U1OCxcbiAgc2hvdWxkRXF1YWxKU09OLFxuICB1dHhvQ29pbnMsXG4gIGdldERlZmF1bHRXYXNtV2FsbGV0S2V5cyxcbiAgZGVmYXVsdEJpdEdvLFxuICBnZXRVdHhvQ29pbixcbiAgY3JlYXRlV2FzbVdhbGxldFVuc3BlbnQsXG59IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgbm9ja0JpdEdvIH0gZnJvbSAnLi4vdXRpbC9ub2NrQml0R28nO1xuXG5pbXBvcnQgeyBXYXNtQ3Jvc3NDaGFpblJlY292ZXJ5UHJvdmlkZXIgfSBmcm9tICcuL21vY2snO1xuXG5mdW5jdGlvbiBnZXRLZXlJZChrOiBLZXljaGFpbkJhc2U1OCk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRTZWVkKGsucHViKS50b1N0cmluZygnaGV4Jyk7XG59XG5cbmZ1bmN0aW9uIG5vY2tXYWxsZXQoY29pbjogQWJzdHJhY3RVdHhvQ29pbiwgd2FsbGV0SWQ6IHN0cmluZywgd2FsbGV0S2V5czogVHJpcGxlPEtleWNoYWluQmFzZTU4Pik6IG5vY2suU2NvcGVbXSB7XG4gIHJldHVybiBbXG4gICAgbm9ja0JpdEdvKClcbiAgICAgIC5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3dhbGxldC8ke3dhbGxldElkfWApXG4gICAgICAucmVwbHkoMjAwLCB7XG4gICAgICAgIGlkOiB3YWxsZXRJZCxcbiAgICAgICAgY29pbjogY29pbi5nZXRDaGFpbigpLFxuICAgICAgICBsYWJlbDogJ2Nyb3NzQ2hhaW5SZWNvdmVyeScsXG4gICAgICAgIGtleXM6IHdhbGxldEtleXMubWFwKChrKSA9PiBnZXRLZXlJZChrKSksXG4gICAgICB9KVxuICAgICAgLnBlcnNpc3QoKSxcbiAgICAuLi53YWxsZXRLZXlzLm1hcCgoaykgPT5cbiAgICAgIG5vY2tCaXRHbygpXG4gICAgICAgIC5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L2tleS8ke2dldEtleUlkKGspfWApXG4gICAgICAgIC5yZXBseSgyMDAsIGspXG4gICAgICAgIC5wZXJzaXN0KClcbiAgICApLFxuICBdO1xufVxuXG50eXBlIEFkZHJlc3MgPSB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgY2hhaW46IG51bWJlcjtcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmZ1bmN0aW9uIG5vY2tXYWxsZXRBZGRyZXNzKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldElkOiBzdHJpbmcsIGFkZHJlc3M6IEFkZHJlc3MpOiBub2NrLlNjb3BlIHtcbiAgcmV0dXJuIG5vY2tCaXRHbygpXG4gICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7d2FsbGV0SWR9L2FkZHJlc3MvJHthZGRyZXNzLmFkZHJlc3N9YClcbiAgICAucmVwbHkoMjAwLCB7XG4gICAgICBhZGRyZXNzOiBhZGRyZXNzLmFkZHJlc3MsXG4gICAgICBjaGFpbjogYWRkcmVzcy5jaGFpbixcbiAgICAgIGluZGV4OiBhZGRyZXNzLmluZGV4LFxuICAgICAgY29pbjogY29pbi5nZXRDaGFpbigpLFxuICAgICAgd2FsbGV0OiB3YWxsZXRJZCxcbiAgICB9KVxuICAgIC5wZXJzaXN0KCk7XG59XG5cbi8qKlxuICogU2V0dXAgdGVzdCBmb3IgY3Jvc3MtY2hhaW4gcmVjb3ZlcnkuXG4gKlxuICogVXNlcnMgY2FuIHJlY2VpdmUgZGVwb3NpdHMgb24gd2FsbGV0IGFkZHJlc3NlcyB0aGF0IGFyZSBvbiBhIGRpZmZlcmVudCBjaGFpbi5cbiAqXG4gKiBGb3IgaW5zdGFuY2UsIGEgdXNlciBjYW4gcmVjZWl2ZSBsaXRlY29pbiBvbiBhIGJpdGNvaW4gd2FsbGV0LlxuICogVGhpcyBtZWFucyB0aGF0IHRoZSBsaXRlY29pbiBibG9ja2NoYWluIGhhcyBhIHRyYW5zYWN0aW9uIHdpdGggb3V0cHV0cyB0aGF0IGFyZSBzcGVuZGFibGVcbiAqIHdpdGgga2V5cyB0aGF0IHdlcmUgb3JpZ2luYWxseSBjcmVhdGVkIGZvciBhIEJpdEdvIEJUQyB3YWxsZXQuXG4gKiBJbiB0aGlzIGV4YW1wbGUsIExUQyBpcyB0aGUgXCJzb3VyY2UgY29pblwiIGFuZCBCVEMgaXMgdGhlIFwicmVjb3ZlcnkgY29pblwiXG4gKiBJbiBjYXNlcyBsaWtlIHRoZXNlIHdlIG11c3QgdXNlIGNvbnN0cnVjdCBhIHRyYW5zYWN0aW9uIGZvciBsaXRlY29pbiBuZXR3b3JrIHVzaW5nIGtleXMgb2YgdGhlXG4gKiBiaXRjb2luIHdhbGxldC5cbiAqXG4gKiBAcGFyYW0gc291cmNlQ29pbiAtIHRoZSBjb2luIHRvIGNvbnN0cnVjdCB0aGUgdHJhbnNhY3Rpb24gZm9yXG4gKiBAcGFyYW0gcmVjb3ZlcnlDb2luIC0gdGhlIGNvaW4gdGhlIHJlY2VpdmluZyB3YWxsZXQgd2FzIHNldCB1cCBmb3JcbiAqL1xuLy8gR2V0IHdhc20gd2FsbGV0IGtleXMgZm9yIHNpZ25hdHVyZSB2ZXJpZmljYXRpb25cbmNvbnN0IHsgd2FsbGV0S2V5czogd2FzbVdhbGxldEtleXMsIHhwcml2cyB9ID0gZ2V0RGVmYXVsdFdhc21XYWxsZXRLZXlzKCk7XG5cbmZ1bmN0aW9uIHJ1bjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihzb3VyY2VDb2luOiBBYnN0cmFjdFV0eG9Db2luLCByZWNvdmVyeUNvaW46IEFic3RyYWN0VXR4b0NvaW4pIHtcbiAgZGVzY3JpYmUoYENyb3NzLUNoYWluIFJlY292ZXJ5IFtzb3VyY2VDb2luPSR7c291cmNlQ29pbi5nZXRDaGFpbigpfSByZWNvdmVyeUNvaW49JHtyZWNvdmVyeUNvaW4uZ2V0Q2hhaW4oKX1dYCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlY292ZXJ5V2FsbGV0SWQgPSAnNWFiYWNlYmUyOGQ3MmZiZDA3ZTBiOGNiYmEwZmYzOWUnO1xuICAgIC8vIHRoZSBhZGRyZXNzIHRoZSBhY2NpZGVudGFsIGRlcG9zaXQgd2VudCB0bywgaW4gYm90aCBzb3VyY2VDb2luIGFuZCBhZGRyZXNzQ29pbiBmb3JtYXRzXG4gICAgY29uc3QgW2RlcG9zaXRBZGRyZXNzU291cmNlQ29pbiwgZGVwb3NpdEFkZHJlc3NSZWNvdmVyeUNvaW5dID0gW3NvdXJjZUNvaW4sIHJlY292ZXJ5Q29pbl0ubWFwKChjb2luKSA9PiAoe1xuICAgICAgYWRkcmVzczogZ2VuZXJhdGVBZGRyZXNzKGNvaW4ubmFtZSwgeyBrZXljaGFpbnM6IGtleWNoYWluc0Jhc2U1OCwgY2hhaW46IDAsIGluZGV4OiAwIH0pLFxuICAgICAgY2hhaW46IDAsXG4gICAgICBpbmRleDogMCxcbiAgICB9KSk7XG4gICAgY29uc3QgY2hhaW4gPSAwO1xuICAgIGNvbnN0IGluZGV4ID0gMTtcbiAgICAvLyB0aGUgYWRkcmVzcyB3aGVyZSB3ZSB3YW50IHRvIHJlY292ZXIgb3VyIGZ1bmRzIHRvXG4gICAgY29uc3QgcmVjb3ZlcnlBZGRyZXNzID0gZ2VuZXJhdGVBZGRyZXNzKHNvdXJjZUNvaW4ubmFtZSwge1xuICAgICAga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsXG4gICAgICBjaGFpbixcbiAgICAgIGluZGV4LFxuICAgIH0pO1xuICAgIGNvbnN0IG5vY2tzOiBub2NrLlNjb3BlW10gPSBbXTtcblxuICAgIC8vIENyZWF0ZSByZWNvdmVyeSB1bnNwZW50IHVzaW5nIHdhc20tdXR4byAobm8gdXR4b2xpYiBkZXBlbmRlbmN5KVxuICAgIGZ1bmN0aW9uIGdldFJlY292ZXJ5VW5zcGVudHMoKTogV2FsbGV0VW5zcGVudDxUTnVtYmVyPltdIHtcbiAgICAgIGNvbnN0IGRlcG9zaXRWYWx1ZSA9IChzb3VyY2VDb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnID8gQmlnSW50KDFlOCkgOiAxZTgpIGFzIFROdW1iZXI7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBjcmVhdGVXYXNtV2FsbGV0VW5zcGVudDxUTnVtYmVyPihkZXBvc2l0QWRkcmVzc1NvdXJjZUNvaW4uYWRkcmVzcywgY2hhaW4sIGluZGV4LCBkZXBvc2l0VmFsdWUsIHNvdXJjZUNvaW4ubmFtZSksXG4gICAgICBdO1xuICAgIH1cblxuICAgIGJlZm9yZSgnc2V0dXAgbm9ja3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBub2Nrcy5wdXNoKC4uLm5vY2tXYWxsZXQocmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkLCBrZXljaGFpbnNCYXNlNTgpKTtcbiAgICAgIG5vY2tzLnB1c2gobm9ja1dhbGxldEFkZHJlc3MocmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkLCBkZXBvc2l0QWRkcmVzc1JlY292ZXJ5Q29pbikpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgbm9ja3MuZm9yRWFjaCgobikgPT4gbi5kb25lKCkpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgbm9jay5jbGVhbkFsbCgpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgICB9KTtcblxuICAgIGFzeW5jIGZ1bmN0aW9uIG1hdGNoRml4dHVyZShcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIHJlY292ZXJ5OiBDcm9zc0NoYWluUmVjb3ZlcnlTaWduZWQ8VE51bWJlcj4gfCBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZDxUTnVtYmVyPlxuICAgICkge1xuICAgICAgbGV0IHJlY292ZXJ5T2JqOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHsgLi4ucmVjb3ZlcnkgfTtcbiAgICAgIGlmIChzb3VyY2VDb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIHJlY292ZXJ5T2JqID0gSlNPTi5wYXJzZShcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShyZWNvdmVyeU9iaiwgKGssIHYpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBzaG91bGRFcXVhbEpTT04oXG4gICAgICAgIHJlY292ZXJ5T2JqLFxuICAgICAgICBhd2FpdCBnZXRGaXh0dXJlKHNvdXJjZUNvaW4sIGByZWNvdmVyeS9jcm9zc0NoYWluUmVjb3ZlcnktJHtyZWNvdmVyeUNvaW4uZ2V0Q2hhaW4oKX0tJHtuYW1lfWAsIHJlY292ZXJ5T2JqKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja1JlY292ZXJ5UHNidFNpZ25hdHVyZShwc2J0SGV4OiBzdHJpbmcpIHtcbiAgICAgIC8vIFBhcnNlIHVzaW5nIHdhc20tdXR4byBmb3Igc2lnbmF0dXJlIHZlcmlmaWNhdGlvblxuICAgICAgY29uc3Qgd2FzbVBzYnQgPSBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKEJ1ZmZlci5mcm9tKHBzYnRIZXgsICdoZXgnKSwgc291cmNlQ29pbi5uYW1lKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHdhc21Qc2J0LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyh3YXNtV2FsbGV0S2V5cywgeyBwdWJsaWNLZXlzOiBbXSB9KTtcbiAgICAgIGNvbnN0IHVuc3BlbnRzID0gZ2V0UmVjb3ZlcnlVbnNwZW50cygpO1xuICAgICAgc2hvdWxkLmVxdWFsKHBhcnNlZC5pbnB1dHMubGVuZ3RoLCB1bnNwZW50cy5sZW5ndGgpO1xuICAgICAgLy8gVmVyaWZ5IHVzZXIga2V5IGhhcyBzaWduZWQgZWFjaCBpbnB1dCAoc2FtZSBwYXR0ZXJuIGFzIGJhY2t1cEtleVJlY292ZXJ5IHRlc3QpXG4gICAgICBwYXJzZWQuaW5wdXRzLmZvckVhY2goKF8sIGkpID0+IHtcbiAgICAgICAgY29uc3QgdXNlclNpZ25lZCA9IHdhc21Qc2J0LnZlcmlmeVNpZ25hdHVyZShpLCB4cHJpdnNbMF0pO1xuICAgICAgICB1c2VyU2lnbmVkLnNob3VsZC5lcWwodHJ1ZSwgYElucHV0ICR7aX0gc2hvdWxkIGJlIHNpZ25lZCBieSB1c2VyIGtleWApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaXQoJ3Nob3VsZCB0ZXN0IHNpZ25lZCBjcm9zcyBjaGFpbiByZWNvdmVyeScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGRlcG9zaXRVbnNwZW50ID0gZ2V0UmVjb3ZlcnlVbnNwZW50cygpWzBdO1xuICAgICAgLy8gUGFyc2UgdHhpZCBmcm9tIHRoZSB1bnNwZW50IGlkIChmb3JtYXQ6IHR4aWQ6dm91dClcbiAgICAgIGNvbnN0IGRlcG9zaXRUeGlkID0gZGVwb3NpdFVuc3BlbnQuaWQuc3BsaXQoJzonKVswXTtcbiAgICAgIC8vIFVzZSB0aGUgZGVwb3NpdCBhZGRyZXNzIGFzIHRoZSBpbnB1dCBhZGRyZXNzIChzaW11bGF0aW5nIGEgcDJzaCBpbnB1dClcbiAgICAgIGNvbnN0IGlucHV0QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5hbWUsIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMiB9KTtcbiAgICAgIGNvbnN0IGdldFJlY292ZXJ5UHJvdmlkZXJTdHViID0gc2lub25cbiAgICAgICAgLnN0dWIoQWJzdHJhY3RVdHhvQ29pbi5wcm90b3R5cGUsICdnZXRSZWNvdmVyeVByb3ZpZGVyJylcbiAgICAgICAgLnJldHVybnMobmV3IFdhc21Dcm9zc0NoYWluUmVjb3ZlcnlQcm92aWRlcjxUTnVtYmVyPihzb3VyY2VDb2luLCBkZXBvc2l0VW5zcGVudCwgW2lucHV0QWRkcmVzc10pKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgcmVjb3ZlcnlDb2luLFxuICAgICAgICB0eGlkOiBkZXBvc2l0VHhpZCxcbiAgICAgICAgcmVjb3ZlcnlBZGRyZXNzLFxuICAgICAgICB3YWxsZXQ6IHJlY292ZXJ5V2FsbGV0SWQsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHhwcnY6IGtleWNoYWluc0Jhc2U1OFswXS5wcnYsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+O1xuICAgICAgc2hvdWxkLmVxdWFsKGdldFJlY292ZXJ5UHJvdmlkZXJTdHViLmNhbGxDb3VudCwgMSk7XG5cbiAgICAgIC8vIFZlcmlmeSBmaXh0dXJlIG1hdGNoXG4gICAgICBhd2FpdCBtYXRjaEZpeHR1cmUoJ3NpZ25lZCcsIHNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgLy8gVmVyaWZ5IFBTQlQgaGFzIHZhbGlkIHNpZ25hdHVyZXMgKHVzZXIga2V5IHNpZ25lZClcbiAgICAgIGNoZWNrUmVjb3ZlcnlQc2J0U2lnbmF0dXJlKHNpZ25lZFJlY292ZXJ5LnR4SGV4IGFzIHN0cmluZyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRlc3QgdW5zaWduZWQgY3Jvc3MgY2hhaW4gcmVjb3ZlcnknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBkZXBvc2l0VW5zcGVudCA9IGdldFJlY292ZXJ5VW5zcGVudHMoKVswXTtcbiAgICAgIC8vIFBhcnNlIHR4aWQgZnJvbSB0aGUgdW5zcGVudCBpZCAoZm9ybWF0OiB0eGlkOnZvdXQpXG4gICAgICBjb25zdCBkZXBvc2l0VHhpZCA9IGRlcG9zaXRVbnNwZW50LmlkLnNwbGl0KCc6JylbMF07XG4gICAgICAvLyBVc2UgdGhlIGRlcG9zaXQgYWRkcmVzcyBhcyB0aGUgaW5wdXQgYWRkcmVzcyAoc2ltdWxhdGluZyBhIHAyc2ggaW5wdXQpXG4gICAgICBjb25zdCBpbnB1dEFkZHJlc3MgPSBnZW5lcmF0ZUFkZHJlc3Moc291cmNlQ29pbi5uYW1lLCB7IGtleWNoYWluczoga2V5Y2hhaW5zQmFzZTU4LCBjaGFpbjogMCwgaW5kZXg6IDIgfSk7XG4gICAgICBjb25zdCBnZXRSZWNvdmVyeVByb3ZpZGVyU3R1YiA9IHNpbm9uXG4gICAgICAgIC5zdHViKEFic3RyYWN0VXR4b0NvaW4ucHJvdG90eXBlLCAnZ2V0UmVjb3ZlcnlQcm92aWRlcicpXG4gICAgICAgIC5yZXR1cm5zKG5ldyBXYXNtQ3Jvc3NDaGFpblJlY292ZXJ5UHJvdmlkZXI8VE51bWJlcj4oc291cmNlQ29pbiwgZGVwb3NpdFVuc3BlbnQsIFtpbnB1dEFkZHJlc3NdKSk7XG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHJlY292ZXJ5Q29pbixcbiAgICAgICAgdHhpZDogZGVwb3NpdFR4aWQsXG4gICAgICAgIHJlY292ZXJ5QWRkcmVzcyxcbiAgICAgICAgd2FsbGV0OiByZWNvdmVyeVdhbGxldElkLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHVuc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHNpZ25lZDogZmFsc2UsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj47XG4gICAgICBzaG91bGQuZXF1YWwoZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIuY2FsbENvdW50LCAxKTtcblxuICAgICAgLy8gVmVyaWZ5IGZpeHR1cmUgbWF0Y2hcbiAgICAgIGF3YWl0IG1hdGNoRml4dHVyZSgndW5zaWduZWQnLCB1bnNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgLy8gVmVyaWZ5IHRoZSB1bnNpZ25lZCBQU0JUIGNhbiBiZSBzaWduZWRcbiAgICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgc291cmNlQ29pbi5zaWduVHJhbnNhY3Rpb248VE51bWJlcj4oe1xuICAgICAgICB0eFByZWJ1aWxkOiB1bnNpZ25lZFJlY292ZXJ5LFxuICAgICAgICBwcnY6IGtleWNoYWluc0Jhc2U1OFswXS5wcnYsXG4gICAgICAgIHB1YnM6IGtleWNoYWluc0Jhc2U1OC5tYXAoKGspID0+IGsucHViKSBhcyBUcmlwbGU8c3RyaW5nPixcbiAgICAgIH0pO1xuICAgICAgY2hlY2tSZWNvdmVyeVBzYnRTaWduYXR1cmUoKHNpZ25lZFR4IGFzIHsgdHhIZXg6IHN0cmluZyB9KS50eEhleCk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpc1N1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyeShzb3VyY2VDb2luOiBBYnN0cmFjdFV0eG9Db2luLCByZWNvdmVyeUNvaW46IEFic3RyYWN0VXR4b0NvaW4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHN1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyaWVzW3NvdXJjZUNvaW4uZ2V0RmFtaWx5KCldPy5pbmNsdWRlcyhyZWNvdmVyeUNvaW4uZ2V0RmFtaWx5KCkpO1xufVxuXG51dHhvQ29pbnMuZm9yRWFjaCgoY29pbikgPT4ge1xuICB1dHhvQ29pbnNcbiAgICAuZmlsdGVyKFxuICAgICAgKG90aGVyQ29pbikgPT5cbiAgICAgICAgY29pbiAhPT0gb3RoZXJDb2luICYmXG4gICAgICAgIGlzU3VwcG9ydGVkQ3Jvc3NDaGFpblJlY292ZXJ5KGNvaW4sIG90aGVyQ29pbikgJiZcbiAgICAgICAgKChpc01haW5uZXRDb2luKGNvaW4ubmFtZSkgJiYgaXNNYWlubmV0Q29pbihvdGhlckNvaW4ubmFtZSkpIHx8XG4gICAgICAgICAgKGlzVGVzdG5ldENvaW4oY29pbi5uYW1lKSAmJiBpc1Rlc3RuZXRDb2luKG90aGVyQ29pbi5uYW1lKSkpXG4gICAgKVxuICAgIC5mb3JFYWNoKChvdGhlckNvaW4pID0+IHtcbiAgICAgIGlmIChjb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIHJ1bjxiaWdpbnQ+KGNvaW4sIG90aGVyQ29pbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBydW4oY29pbiwgb3RoZXJDb2luKTtcbiAgICAgIH1cbiAgICB9KTtcbn0pO1xuXG5kZXNjcmliZShgQ3Jvc3MtQ2hhaW4gUmVjb3ZlcnkgZ2V0V2FsbGV0YCwgYXN5bmMgZnVuY3Rpb24gKCkge1xuICBjb25zdCBiaXRnbyA9IGRlZmF1bHRCaXRHbztcbiAgY29uc3QgcmVjb3ZlcnlDb2luID0gZ2V0VXR4b0NvaW4oJ2J0YycpO1xuICBjb25zdCByZWNvdmVyeVdhbGxldElkID0gJzVhYmFjZWJlMjhkNzJmYmQwN2UwYjhjYmJhMGZmMzllJztcblxuICBpdCgnc2hvdWxkIHNlYXJjaCB2MSB3YWxsZXRzIGlmIHRoZSB2MiBlbmRwb2ludCByZXNwb25kcyB3aXRoIGEgNHh4IGVycm9yJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGVycm9yUmVzcG9uc2VzID0gWzQwMCwgNDA0XTtcblxuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JSZXNwb25zZXMpIHtcbiAgICAgIGNvbnN0IG5vY2tWMldhbGxldCA9IG5vY2tCaXRHbyhiaXRnbylcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke3JlY292ZXJ5Q29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtyZWNvdmVyeVdhbGxldElkfWApXG4gICAgICAgIC5yZXBseShlcnJvcik7XG4gICAgICBjb25zdCBub2NrVjFXYWxsZXQgPSBub2NrQml0R28oYml0Z28pLmdldChgL2FwaS92MS93YWxsZXQvJHtyZWNvdmVyeVdhbGxldElkfWApLnJlcGx5KGVycm9yKTtcbiAgICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKFxuICAgICAgICAoKSA9PiBnZXRXYWxsZXQoYml0Z28sIHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCksXG4gICAgICAgIEVycm9yKGBjb3VsZCBub3QgZ2V0IHdhbGxldCAke3JlY292ZXJ5V2FsbGV0SWR9IGZyb20gdjEgb3IgdjI6IEFwaVJlc3BvbnNlRXJyb3I6ICR7ZXJyb3J9YClcbiAgICAgICk7XG4gICAgICBub2NrVjJXYWxsZXQuZG9uZSgpO1xuICAgICAgbm9ja1YxV2FsbGV0LmRvbmUoKTtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHYyIGVuZHBvaW50IHJlc3BvbmRzIHdpdGggYSA1eHggZXJyb3InLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZXMgPSBbNTAwXTtcbiAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGVycm9yUmVzcG9uc2VzKSB7XG4gICAgICBjb25zdCBub2NrVjJXYWxsZXQgPSBub2NrQml0R28oYml0Z28pXG4gICAgICAgIC5nZXQoYC9hcGkvdjIvJHtyZWNvdmVyeUNvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7cmVjb3ZlcnlXYWxsZXRJZH1gKVxuICAgICAgICAucmVwbHkoZXJyb3IpO1xuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoKCkgPT4gZ2V0V2FsbGV0KGJpdGdvLCByZWNvdmVyeUNvaW4sIHJlY292ZXJ5V2FsbGV0SWQpLCB7XG4gICAgICAgIG5hbWU6ICdBcGlSZXNwb25zZUVycm9yJyxcbiAgICAgICAgc3RhdHVzOiA1MDAsXG4gICAgICAgIHJlc3VsdDoge30sXG4gICAgICAgIGludmFsaWRUb2tlbjogZmFsc2UsXG4gICAgICAgIG5lZWRzT1RQOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgICAgbm9ja1YyV2FsbGV0LmRvbmUoKTtcbiAgICB9XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdjb252ZXJ0THRjQWRkcmVzc1RvTGVnYWN5Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBzY3JpcHRQdWJLZXkgPSBCdWZmZXIuZnJvbSgnYTkxNDlmMGJmNTFmYWI0ZDMzYWIyMTk3N2UxYjg5Zjc3NmY2NDE2MWVmNDI4NycsICdoZXgnKTtcbiAgaXQoJ3Nob3VsZCBjb252ZXJ0IE0uLi4gUDJTSCBhZGRyZXNzIHRvIDMuLi4gbGVnYWN5IGZvcm1hdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAvLyBUaGVzZSB0d28gYWRkcmVzc2VzIHJlcHJlc2VudCB0aGUgc2FtZSB1bmRlcmx5aW5nIHNjcmlwdCBoYXNoOlxuICAgIC8vIC0gTU5RN3prZ01zYVY2N3JzakEzSnVQNTlSQzV3eFJYcHdnRSBpcyB0aGUgTFRDIGZvcm1hdCAoc2NyaXB0SGFzaCAweDMyKVxuICAgIC8vIC0gM0dCeWdzR1B2VGRmS01icTRBS1paUnUxc1BNV1BFc0JmZCBpcyB0aGUgQlRDIGZvcm1hdCAoc2NyaXB0SGFzaCAweDA1KVxuICAgIC8vIGNvbnN0IGx0Y0FkZHJlc3MgPSAnTU5RN3prZ01zYVY2N3JzakEzSnVQNTlSQzV3eFJYcHdnRSc7XG4gICAgY29uc3QgbHRjQWRkcmVzcyA9IHdhc21BZGRyZXNzLmZyb21PdXRwdXRTY3JpcHRXaXRoQ29pbihzY3JpcHRQdWJLZXksICdsdGMnKTtcbiAgICBjb25zdCB0bHRjQWRkcmVzcyA9IHdhc21BZGRyZXNzLmZyb21PdXRwdXRTY3JpcHRXaXRoQ29pbihzY3JpcHRQdWJLZXksICd0bHRjJyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGx0Y0FkZHJlc3MsICdNTlE3emtnTXNhVjY3cnNqQTNKdVA1OVJDNXd4Ulhwd2dFJyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRsdGNBZGRyZXNzLCAnUWI2d3NkNGZaMkM2Zkt6Uk1QeVRHNUtpRTgxVzZRQ3hoVScpO1xuXG4gICAgY29uc3QgbGVnYWN5QWRkcmVzcyA9IGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQobHRjQWRkcmVzcywgJ2x0YycpO1xuICAgIGNvbnN0IGV4cGVjdGVkTHRjTGVnYWN5QWRkcmVzcyA9ICczR0J5Z3NHUHZUZGZLTWJxNEFLWlpSdTFzUE1XUEVzQmZkJztcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGVnYWN5QWRkcmVzcywgZXhwZWN0ZWRMdGNMZWdhY3lBZGRyZXNzKTtcblxuICAgIGNvbnN0IGV4cGVjdGVkVGx0Y0xlZ2FjeUFkZHJlc3MgPSAnMk43a0JrY0NSWHY5MVg5RU5qSHdTQk50SDVqWmc4eXllNnInO1xuICAgIGNvbnN0IHRsdGNMZWdhY3lBZGRyZXNzID0gY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdCh0bHRjQWRkcmVzcywgJ3RsdGMnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGx0Y0xlZ2FjeUFkZHJlc3MsIGV4cGVjdGVkVGx0Y0xlZ2FjeUFkZHJlc3MpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNvbnZlcnQgTUQ2OFBzZGhlS3hjWXNyVkx5WlJYZ29TRExuQjFNZFZ0RSB0byBsZWdhY3kgZm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFkZHJlc3MgPSAnTUQ2OFBzZGhlS3hjWXNyVkx5WlJYZ29TRExuQjFNZFZ0RSc7XG4gICAgY29uc3QgbGVnYWN5QWRkcmVzcyA9IGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQoYWRkcmVzcywgJ2x0YycpO1xuXG4gICAgLy8gU2hvdWxkIHN0YXJ0IHdpdGggJzMnIChsZWdhY3kgQlRDIFAyU0ggZm9ybWF0KVxuICAgIGFzc2VydC5vayhsZWdhY3lBZGRyZXNzLnN0YXJ0c1dpdGgoJzMnKSwgYEV4cGVjdGVkIGFkZHJlc3MgdG8gc3RhcnQgd2l0aCAnMycsIGdvdDogJHtsZWdhY3lBZGRyZXNzfWApO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgYmVjaDMyIGFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBiZWNoMzJBZGRyZXNzID0gJ2x0YzFxZ3JsOHpwbmRza2xhYTlzd2dkNXZldnl4bXg1eDYzdmNybDdkazQnO1xuICAgIGNvbnN0IHJlc3VsdCA9IGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQoYmVjaDMyQWRkcmVzcywgJ2x0YycpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQsIGJlY2gzMkFkZHJlc3MpO1xuICB9KTtcbn0pO1xuIl19
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NDaGFpblJlY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3JlY292ZXJ5L2Nyb3NzQ2hhaW5SZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyxpQ0FBa0M7QUFDbEMsNkJBQThCO0FBRTlCLDhDQUEwQztBQUMxQyxnREFBNkU7QUFDN0UsNkNBQStCO0FBRS9CLHNDQVFzQjtBQUN0Qiw4Q0FBa0U7QUFFbEUsa0NBVWlCO0FBQ2pCLGlEQUE4QztBQUU5QyxpQ0FBd0Q7QUFFeEQsU0FBUyxRQUFRLENBQUMsQ0FBaUI7SUFDakMsT0FBTyxJQUFBLGtCQUFPLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBc0IsRUFBRSxRQUFnQixFQUFFLFVBQWtDO0lBQzlGLE9BQU87UUFDTCxJQUFBLHFCQUFTLEdBQUU7YUFDUixHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsUUFBUSxFQUFFLENBQUM7YUFDcEQsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNWLEVBQUUsRUFBRSxRQUFRO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pDLENBQUM7YUFDRCxPQUFPLEVBQUU7UUFDWixHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN0QixJQUFBLHFCQUFTLEdBQUU7YUFDUixHQUFHLENBQUMsV0FBVyxJQUFJLENB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QUUseUJBQXlCLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxvRUFBb0UsRUFBRTtRQUN2RSxNQUFNLE9BQU8sR0FBRyxvQ0FBb0MsQ0FBQztRQUNyRCxNQUFNLGFBQWEsR0FBRyxJQUFBLHFDQUErQixFQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV0RSxpREFBaUQ7UUFDakQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLDRDQUE0QyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLG9DQUFvQyxFQUFFO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLDZDQUE2QyxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUEscUNBQStCLEVBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHNob3VsZCA9IHJlcXVpcmUoJ3Nob3VsZCcpO1xuaW1wb3J0IG5vY2sgPSByZXF1aXJlKCdub2NrJyk7XG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgZ2V0U2VlZCB9IGZyb20gJ0BiaXRnby9zZGstdGVzdCc7XG5pbXBvcnQgeyBhZGRyZXNzIGFzIHdhc21BZGRyZXNzLCBmaXhlZFNjcmlwdFdhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuaW1wb3J0ICogYXMgc2lub24gZnJvbSAnc2lub24nO1xuXG5pbXBvcnQge1xuICBBYnN0cmFjdFV0eG9Db2luLFxuICBDcm9zc0NoYWluUmVjb3ZlcnlTaWduZWQsXG4gIENyb3NzQ2hhaW5SZWNvdmVyeVVuc2lnbmVkLFxuICBnZXRXYWxsZXQsXG4gIHN1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyaWVzLFxuICBnZW5lcmF0ZUFkZHJlc3MsXG4gIGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQsXG59IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBpc01haW5uZXRDb2luLCBpc1Rlc3RuZXRDb2luIH0gZnJvbSAnLi4vLi4vLi4vc3JjL25hbWVzJztcbmltcG9ydCB0eXBlIHsgV2FsbGV0VW5zcGVudCB9IGZyb20gJy4uLy4uLy4uL3NyYy91bnNwZW50JztcbmltcG9ydCB7XG4gIGdldEZpeHR1cmUsXG4gIGtleWNoYWluc0Jhc2U1OCxcbiAgS2V5Y2hhaW5CYXNlNTgsXG4gIHNob3VsZEVxdWFsSlNPTixcbiAgdXR4b0NvaW5zLFxuICBnZXREZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gIGRlZmF1bHRCaXRHbyxcbiAgZ2V0VXR4b0NvaW4sXG4gIGNyZWF0ZVdhc21XYWxsZXRVbnNwZW50LFxufSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IG5vY2tCaXRHbyB9IGZyb20gJy4uL3V0aWwvbm9ja0JpdEdvJztcblxuaW1wb3J0IHsgV2FzbUNyb3NzQ2hhaW5SZWNvdmVyeVByb3ZpZGVyIH0gZnJvbSAnLi9tb2NrJztcblxuZnVuY3Rpb24gZ2V0S2V5SWQoazogS2V5Y2hhaW5CYXNlNTgpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0U2VlZChrLnB1YikudG9TdHJpbmcoJ2hleCcpO1xufVxuXG5mdW5jdGlvbiBub2NrV2FsbGV0KGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldElkOiBzdHJpbmcsIHdhbGxldEtleXM6IFRyaXBsZTxLZXljaGFpbkJhc2U1OD4pOiBub2NrLlNjb3BlW10ge1xuICByZXR1cm4gW1xuICAgIG5vY2tCaXRHbygpXG4gICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHt3YWxsZXRJZH1gKVxuICAgICAgLnJlcGx5KDIwMCwge1xuICAgICAgICBpZDogd2FsbGV0SWQsXG4gICAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgICAgbGFiZWw6ICdjcm9zc0NoYWluUmVjb3ZlcnknLFxuICAgICAgICBrZXlzOiB3YWxsZXRLZXlzLm1hcCgoaykgPT4gZ2V0S2V5SWQoaykpLFxuICAgICAgfSlcbiAgICAgIC5wZXJzaXN0KCksXG4gICAgLi4ud2FsbGV0S2V5cy5tYXAoKGspID0+XG4gICAgICBub2NrQml0R28oKVxuICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9rZXkvJHtnZXRLZXlJZChrKX1gKVxuICAgICAgICAucmVwbHkoMjAwLCBrKVxuICAgICAgICAucGVyc2lzdCgpXG4gICAgKSxcbiAgXTtcbn1cblxudHlwZSBBZGRyZXNzID0ge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGNoYWluOiBudW1iZXI7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBub2NrV2FsbGV0QWRkcmVzcyhjb2luOiBBYnN0cmFjdFV0eG9Db2luLCB3YWxsZXRJZDogc3RyaW5nLCBhZGRyZXNzOiBBZGRyZXNzKTogbm9jay5TY29wZSB7XG4gIHJldHVybiBub2NrQml0R28oKVxuICAgIC5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3dhbGxldC8ke3dhbGxldElkfS9hZGRyZXNzLyR7YWRkcmVzcy5hZGRyZXNzfWApXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgYWRkcmVzczogYWRkcmVzcy5hZGRyZXNzLFxuICAgICAgY2hhaW46IGFkZHJlc3MuY2hhaW4sXG4gICAgICBpbmRleDogYWRkcmVzcy5pbmRleCxcbiAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgIHdhbGxldDogd2FsbGV0SWQsXG4gICAgfSlcbiAgICAucGVyc2lzdCgpO1xufVxuXG4vKipcbiAqIFNldHVwIHRlc3QgZm9yIGNyb3NzLWNoYWluIHJlY292ZXJ5LlxuICpcbiAqIFVzZXJzIGNhbiByZWNlaXZlIGRlcG9zaXRzIG9uIHdhbGxldCBhZGRyZXNzZXMgdGhhdCBhcmUgb24gYSBkaWZmZXJlbnQgY2hhaW4uXG4gKlxuICogRm9yIGluc3RhbmNlLCBhIHVzZXIgY2FuIHJlY2VpdmUgbGl0ZWNvaW4gb24gYSBiaXRjb2luIHdhbGxldC5cbiAqIFRoaXMgbWVhbnMgdGhhdCB0aGUgbGl0ZWNvaW4gYmxvY2tjaGFpbiBoYXMgYSB0cmFuc2FjdGlvbiB3aXRoIG91dHB1dHMgdGhhdCBhcmUgc3BlbmRhYmxlXG4gKiB3aXRoIGtleXMgdGhhdCB3ZXJlIG9yaWdpbmFsbHkgY3JlYXRlZCBmb3IgYSBCaXRHbyBCVEMgd2FsbGV0LlxuICogSW4gdGhpcyBleGFtcGxlLCBMVEMgaXMgdGhlIFwic291cmNlIGNvaW5cIiBhbmQgQlRDIGlzIHRoZSBcInJlY292ZXJ5IGNvaW5cIlxuICogSW4gY2FzZXMgbGlrZSB0aGVzZSB3ZSBtdXN0IHVzZSBjb25zdHJ1Y3QgYSB0cmFuc2FjdGlvbiBmb3IgbGl0ZWNvaW4gbmV0d29yayB1c2luZyBrZXlzIG9mIHRoZVxuICogYml0Y29pbiB3YWxsZXQuXG4gKlxuICogQHBhcmFtIHNvdXJjZUNvaW4gLSB0aGUgY29pbiB0byBjb25zdHJ1Y3QgdGhlIHRyYW5zYWN0aW9uIGZvclxuICogQHBhcmFtIHJlY292ZXJ5Q29pbiAtIHRoZSBjb2luIHRoZSByZWNlaXZpbmcgd2FsbGV0IHdhcyBzZXQgdXAgZm9yXG4gKi9cbi8vIEdldCB3YXNtIHdhbGxldCBrZXlzIGZvciBzaWduYXR1cmUgdmVyaWZpY2F0aW9uXG5jb25zdCB7IHdhbGxldEtleXM6IHdhc21XYWxsZXRLZXlzLCB4cHJpdnMgfSA9IGdldERlZmF1bHRXYXNtV2FsbGV0S2V5cygpO1xuXG5mdW5jdGlvbiBydW48VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKSB7XG4gIGRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBbc291cmNlQ29pbj0ke3NvdXJjZUNvaW4uZ2V0Q2hhaW4oKX0gcmVjb3ZlcnlDb2luPSR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9XWAsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCByZWNvdmVyeVdhbGxldElkID0gJzVhYmFjZWJlMjhkNzJmYmQwN2UwYjhjYmJhMGZmMzllJztcbiAgICAvLyB0aGUgYWRkcmVzcyB0aGUgYWNjaWRlbnRhbCBkZXBvc2l0IHdlbnQgdG8sIGluIGJvdGggc291cmNlQ29pbiBhbmQgYWRkcmVzc0NvaW4gZm9ybWF0c1xuICAgIGNvbnN0IFtkZXBvc2l0QWRkcmVzc1NvdXJjZUNvaW4sIGRlcG9zaXRBZGRyZXNzUmVjb3ZlcnlDb2luXSA9IFtzb3VyY2VDb2luLCByZWNvdmVyeUNvaW5dLm1hcCgoY29pbikgPT4gKHtcbiAgICAgIGFkZHJlc3M6IGdlbmVyYXRlQWRkcmVzcyhjb2luLm5hbWUsIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMCB9KSxcbiAgICAgIGNoYWluOiAwLFxuICAgICAgaW5kZXg6IDAsXG4gICAgfSkpO1xuICAgIGNvbnN0IGNoYWluID0gMDtcbiAgICBjb25zdCBpbmRleCA9IDE7XG4gICAgLy8gdGhlIGFkZHJlc3Mgd2hlcmUgd2Ugd2FudCB0byByZWNvdmVyIG91ciBmdW5kcyB0b1xuICAgIGNvbnN0IHJlY292ZXJ5QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5hbWUsIHtcbiAgICAgIGtleWNoYWluczoga2V5Y2hhaW5zQmFzZTU4LFxuICAgICAgY2hhaW4sXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCBub2Nrczogbm9jay5TY29wZVtdID0gW107XG5cbiAgICAvLyBDcmVhdGUgcmVjb3ZlcnkgdW5zcGVudCB1c2luZyB3YXNtLXV0eG8gKG5vIHV0eG9saWIgZGVwZW5kZW5jeSlcbiAgICBmdW5jdGlvbiBnZXRSZWNvdmVyeVVuc3BlbnRzKCk6IFdhbGxldFVuc3BlbnQ8VE51bWJlcj5bXSB7XG4gICAgICBjb25zdCBkZXBvc2l0VmFsdWUgPSAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50JyA/IEJpZ0ludCgxZTgpIDogMWU4KSBhcyBUTnVtYmVyO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgY3JlYXRlV2FzbVdhbGxldFVuc3BlbnQ8VE51bWJlcj4oZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsIGNoYWluLCBpbmRleCwgZGVwb3NpdFZhbHVlLCBzb3VyY2VDb2luLm5hbWUpLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBiZWZvcmUoJ3NldHVwIG5vY2tzJywgZnVuY3Rpb24gKCkge1xuICAgICAgbm9ja3MucHVzaCguLi5ub2NrV2FsbGV0KHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCwga2V5Y2hhaW5zQmFzZTU4KSk7XG4gICAgICBub2Nrcy5wdXNoKG5vY2tXYWxsZXRBZGRyZXNzKHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCwgZGVwb3NpdEFkZHJlc3NSZWNvdmVyeUNvaW4pKTtcbiAgICB9KTtcblxuICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vY2tzLmZvckVhY2goKG4pID0+IG4uZG9uZSgpKTtcbiAgICB9KTtcblxuICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vY2suY2xlYW5BbGwoKTtcbiAgICB9KTtcblxuICAgIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBzaW5vbi5yZXN0b3JlKCk7XG4gICAgfSk7XG5cbiAgICBhc3luYyBmdW5jdGlvbiBtYXRjaEZpeHR1cmUoXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICByZWNvdmVyeTogQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+IHwgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj5cbiAgICApIHtcbiAgICAgIGxldCByZWNvdmVyeU9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLnJlY292ZXJ5IH07XG4gICAgICBpZiAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50Jykge1xuICAgICAgICByZWNvdmVyeU9iaiA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkocmVjb3ZlcnlPYmosIChrLCB2KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB2LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgc2hvdWxkRXF1YWxKU09OKFxuICAgICAgICByZWNvdmVyeU9iaixcbiAgICAgICAgYXdhaXQgZ2V0Rml4dHVyZShzb3VyY2VDb2luLCBgcmVjb3ZlcnkvY3Jvc3NDaGFpblJlY292ZXJ5LSR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9LSR7bmFtZX1gLCByZWNvdmVyeU9iailcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tSZWNvdmVyeVBzYnRTaWduYXR1cmUocHNidEhleDogc3RyaW5nKSB7XG4gICAgICAvLyBQYXJzZSB1c2luZyB3YXNtLXV0eG8gZm9yIHNpZ25hdHVyZSB2ZXJpZmljYXRpb25cbiAgICAgIGNvbnN0IHdhc21Qc2J0ID0gZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LmZyb21CeXRlcyhCdWZmZXIuZnJvbShwc2J0SGV4LCAnaGV4JyksIHNvdXJjZUNvaW4ubmFtZSk7XG4gICAgICBjb25zdCBwYXJzZWQgPSB3YXNtUHNidC5wYXJzZVRyYW5zYWN0aW9uV2l0aFdhbGxldEtleXMod2FzbVdhbGxldEtleXMsIHsgcmVwbGF5UHJvdGVjdGlvbjogeyBwdWJsaWNLZXlzOiBbXSB9IH0pO1xuICAgICAgY29uc3QgdW5zcGVudHMgPSBnZXRSZWNvdmVyeVVuc3BlbnRzKCk7XG4gICAgICBzaG91bGQuZXF1YWwocGFyc2VkLmlucHV0cy5sZW5ndGgsIHVuc3BlbnRzLmxlbmd0aCk7XG4gICAgICAvLyBWZXJpZnkgdXNlciBrZXkgaGFzIHNpZ25lZCBlYWNoIGlucHV0IChzYW1lIHBhdHRlcm4gYXMgYmFja3VwS2V5UmVjb3ZlcnkgdGVzdClcbiAgICAgIHBhcnNlZC5pbnB1dHMuZm9yRWFjaCgoXywgaSkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyU2lnbmVkID0gd2FzbVBzYnQudmVyaWZ5U2lnbmF0dXJlKGksIHhwcml2c1swXSk7XG4gICAgICAgIHVzZXJTaWduZWQuc2hvdWxkLmVxbCh0cnVlLCBgSW5wdXQgJHtpfSBzaG91bGQgYmUgc2lnbmVkIGJ5IHVzZXIga2V5YCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCgnc2hvdWxkIHRlc3Qgc2lnbmVkIGNyb3NzIGNoYWluIHJlY292ZXJ5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZGVwb3NpdFVuc3BlbnQgPSBnZXRSZWNvdmVyeVVuc3BlbnRzKClbMF07XG4gICAgICAvLyBQYXJzZSB0eGlkIGZyb20gdGhlIHVuc3BlbnQgaWQgKGZvcm1hdDogdHhpZDp2b3V0KVxuICAgICAgY29uc3QgZGVwb3NpdFR4aWQgPSBkZXBvc2l0VW5zcGVudC5pZC5zcGxpdCgnOicpWzBdO1xuICAgICAgLy8gVXNlIHRoZSBkZXBvc2l0IGFkZHJlc3MgYXMgdGhlIGlucHV0IGFkZHJlc3MgKHNpbXVsYXRpbmcgYSBwMnNoIGlucHV0KVxuICAgICAgY29uc3QgaW5wdXRBZGRyZXNzID0gZ2VuZXJhdGVBZGRyZXNzKHNvdXJjZUNvaW4ubmFtZSwgeyBrZXljaGFpbnM6IGtleWNoYWluc0Jhc2U1OCwgY2hhaW46IDAsIGluZGV4OiAyIH0pO1xuICAgICAgY29uc3QgZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIgPSBzaW5vblxuICAgICAgICAuc3R1YihBYnN0cmFjdFV0eG9Db2luLnByb3RvdHlwZSwgJ2dldFJlY292ZXJ5UHJvdmlkZXInKVxuICAgICAgICAucmV0dXJucyhuZXcgV2FzbUNyb3NzQ2hhaW5SZWNvdmVyeVByb3ZpZGVyPFROdW1iZXI+KHNvdXJjZUNvaW4sIGRlcG9zaXRVbnNwZW50LCBbaW5wdXRBZGRyZXNzXSkpO1xuICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICByZWNvdmVyeUNvaW4sXG4gICAgICAgIHR4aWQ6IGRlcG9zaXRUeGlkLFxuICAgICAgICByZWNvdmVyeUFkZHJlc3MsXG4gICAgICAgIHdhbGxldDogcmVjb3ZlcnlXYWxsZXRJZCxcbiAgICAgIH07XG4gICAgICBjb25zdCBzaWduZWRSZWNvdmVyeSA9IChhd2FpdCBzb3VyY2VDb2luLnJlY292ZXJGcm9tV3JvbmdDaGFpbjxUTnVtYmVyPih7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgeHBydjoga2V5Y2hhaW5zQmFzZTU4WzBdLnBydixcbiAgICAgIH0pKSBhcyBDcm9zc0NoYWluUmVjb3ZlcnlTaWduZWQ8VE51bWJlcj47XG4gICAgICBzaG91bGQuZXF1YWwoZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIuY2FsbENvdW50LCAxKTtcblxuICAgICAgLy8gVmVyaWZ5IGZpeHR1cmUgbWF0Y2hcbiAgICAgIGF3YWl0IG1hdGNoRml4dHVyZSgnc2lnbmVkJywgc2lnbmVkUmVjb3ZlcnkpO1xuXG4gICAgICAvLyBWZXJpZnkgUFNCVCBoYXMgdmFsaWQgc2lnbmF0dXJlcyAodXNlciBrZXkgc2lnbmVkKVxuICAgICAgY2hlY2tSZWNvdmVyeVBzYnRTaWduYXR1cmUoc2lnbmVkUmVjb3ZlcnkudHhIZXggYXMgc3RyaW5nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGVzdCB1bnNpZ25lZCBjcm9zcyBjaGFpbiByZWNvdmVyeScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGRlcG9zaXRVbnNwZW50ID0gZ2V0UmVjb3ZlcnlVbnNwZW50cygpWzBdO1xuICAgICAgLy8gUGFyc2UgdHhpZCBmcm9tIHRoZSB1bnNwZW50IGlkIChmb3JtYXQ6IHR4aWQ6dm91dClcbiAgICAgIGNvbnN0IGRlcG9zaXRUeGlkID0gZGVwb3NpdFVuc3BlbnQuaWQuc3BsaXQoJzonKVswXTtcbiAgICAgIC8vIFVzZSB0aGUgZGVwb3NpdCBhZGRyZXNzIGFzIHRoZSBpbnB1dCBhZGRyZXNzIChzaW11bGF0aW5nIGEgcDJzaCBpbnB1dClcbiAgICAgIGNvbnN0IGlucHV0QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5hbWUsIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMiB9KTtcbiAgICAgIGNvbnN0IGdldFJlY292ZXJ5UHJvdmlkZXJTdHViID0gc2lub25cbiAgICAgICAgLnN0dWIoQWJzdHJhY3RVdHhvQ29pbi5wcm90b3R5cGUsICdnZXRSZWNvdmVyeVByb3ZpZGVyJylcbiAgICAgICAgLnJldHVybnMobmV3IFdhc21Dcm9zc0NoYWluUmVjb3ZlcnlQcm92aWRlcjxUTnVtYmVyPihzb3VyY2VDb2luLCBkZXBvc2l0VW5zcGVudCwgW2lucHV0QWRkcmVzc10pKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgcmVjb3ZlcnlDb2luLFxuICAgICAgICB0eGlkOiBkZXBvc2l0VHhpZCxcbiAgICAgICAgcmVjb3ZlcnlBZGRyZXNzLFxuICAgICAgICB3YWxsZXQ6IHJlY292ZXJ5V2FsbGV0SWQsXG4gICAgICB9O1xuICAgICAgY29uc3QgdW5zaWduZWRSZWNvdmVyeSA9IChhd2FpdCBzb3VyY2VDb2luLnJlY292ZXJGcm9tV3JvbmdDaGFpbjxUTnVtYmVyPih7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgc2lnbmVkOiBmYWxzZSxcbiAgICAgIH0pKSBhcyBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZDxUTnVtYmVyPjtcbiAgICAgIHNob3VsZC5lcXVhbChnZXRSZWNvdmVyeVByb3ZpZGVyU3R1Yi5jYWxsQ291bnQsIDEpO1xuXG4gICAgICAvLyBWZXJpZnkgZml4dHVyZSBtYXRjaFxuICAgICAgYXdhaXQgbWF0Y2hGaXh0dXJlKCd1bnNpZ25lZCcsIHVuc2lnbmVkUmVjb3ZlcnkpO1xuXG4gICAgICAvLyBWZXJpZnkgdGhlIHVuc2lnbmVkIFBTQlQgY2FuIGJlIHNpZ25lZFxuICAgICAgY29uc3Qgc2lnbmVkVHggPSBhd2FpdCBzb3VyY2VDb2luLnNpZ25UcmFuc2FjdGlvbjxUTnVtYmVyPih7XG4gICAgICAgIHR4UHJlYnVpbGQ6IHVuc2lnbmVkUmVjb3ZlcnksXG4gICAgICAgIHBydjoga2V5Y2hhaW5zQmFzZTU4WzBdLnBydixcbiAgICAgICAgcHViczoga2V5Y2hhaW5zQmFzZTU4Lm1hcCgoaykgPT4gay5wdWIpIGFzIFRyaXBsZTxzdHJpbmc+LFxuICAgICAgfSk7XG4gICAgICBjaGVja1JlY292ZXJ5UHNidFNpZ25hdHVyZSgoc2lnbmVkVHggYXMgeyB0eEhleDogc3RyaW5nIH0pLnR4SGV4KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGlzU3VwcG9ydGVkQ3Jvc3NDaGFpblJlY292ZXJ5KHNvdXJjZUNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHJlY292ZXJ5Q29pbjogQWJzdHJhY3RVdHhvQ29pbik6IGJvb2xlYW4ge1xuICByZXR1cm4gc3VwcG9ydGVkQ3Jvc3NDaGFpblJlY292ZXJpZXNbc291cmNlQ29pbi5nZXRGYW1pbHkoKV0/LmluY2x1ZGVzKHJlY292ZXJ5Q29pbi5nZXRGYW1pbHkoKSk7XG59XG5cbnV0eG9Db2lucy5mb3JFYWNoKChjb2luKSA9PiB7XG4gIHV0eG9Db2luc1xuICAgIC5maWx0ZXIoXG4gICAgICAob3RoZXJDb2luKSA9PlxuICAgICAgICBjb2luICE9PSBvdGhlckNvaW4gJiZcbiAgICAgICAgaXNTdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3ZlcnkoY29pbiwgb3RoZXJDb2luKSAmJlxuICAgICAgICAoKGlzTWFpbm5ldENvaW4oY29pbi5uYW1lKSAmJiBpc01haW5uZXRDb2luKG90aGVyQ29pbi5uYW1lKSkgfHxcbiAgICAgICAgICAoaXNUZXN0bmV0Q29pbihjb2luLm5hbWUpICYmIGlzVGVzdG5ldENvaW4ob3RoZXJDb2luLm5hbWUpKSlcbiAgICApXG4gICAgLmZvckVhY2goKG90aGVyQ29pbikgPT4ge1xuICAgICAgaWYgKGNvaW4uYW1vdW50VHlwZSA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgcnVuPGJpZ2ludD4oY29pbiwgb3RoZXJDb2luKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJ1bihjb2luLCBvdGhlckNvaW4pO1xuICAgICAgfVxuICAgIH0pO1xufSk7XG5cbmRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBnZXRXYWxsZXRgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGJpdGdvID0gZGVmYXVsdEJpdEdvO1xuICBjb25zdCByZWNvdmVyeUNvaW4gPSBnZXRVdHhvQ29pbignYnRjJyk7XG4gIGNvbnN0IHJlY292ZXJ5V2FsbGV0SWQgPSAnNWFiYWNlYmUyOGQ3MmZiZDA3ZTBiOGNiYmEwZmYzOWUnO1xuXG4gIGl0KCdzaG91bGQgc2VhcmNoIHYxIHdhbGxldHMgaWYgdGhlIHYyIGVuZHBvaW50IHJlc3BvbmRzIHdpdGggYSA0eHggZXJyb3InLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZXMgPSBbNDAwLCA0MDRdO1xuXG4gICAgZm9yIChjb25zdCBlcnJvciBvZiBlcnJvclJlc3BvbnNlcykge1xuICAgICAgY29uc3Qgbm9ja1YyV2FsbGV0ID0gbm9ja0JpdEdvKGJpdGdvKVxuICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9L3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YClcbiAgICAgICAgLnJlcGx5KGVycm9yKTtcbiAgICAgIGNvbnN0IG5vY2tWMVdhbGxldCA9IG5vY2tCaXRHbyhiaXRnbykuZ2V0KGAvYXBpL3YxL3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YCkucmVwbHkoZXJyb3IpO1xuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoXG4gICAgICAgICgpID0+IGdldFdhbGxldChiaXRnbywgcmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkKSxcbiAgICAgICAgRXJyb3IoYGNvdWxkIG5vdCBnZXQgd2FsbGV0ICR7cmVjb3ZlcnlXYWxsZXRJZH0gZnJvbSB2MSBvciB2MjogQXBpUmVzcG9uc2VFcnJvcjogJHtlcnJvcn1gKVxuICAgICAgKTtcbiAgICAgIG5vY2tWMldhbGxldC5kb25lKCk7XG4gICAgICBub2NrVjFXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgdjIgZW5kcG9pbnQgcmVzcG9uZHMgd2l0aCBhIDV4eCBlcnJvcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBlcnJvclJlc3BvbnNlcyA9IFs1MDBdO1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JSZXNwb25zZXMpIHtcbiAgICAgIGNvbnN0IG5vY2tWMldhbGxldCA9IG5vY2tCaXRHbyhiaXRnbylcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke3JlY292ZXJ5Q29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtyZWNvdmVyeVdhbGxldElkfWApXG4gICAgICAgIC5yZXBseShlcnJvcik7XG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cygoKSA9PiBnZXRXYWxsZXQoYml0Z28sIHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCksIHtcbiAgICAgICAgbmFtZTogJ0FwaVJlc3BvbnNlRXJyb3InLFxuICAgICAgICBzdGF0dXM6IDUwMCxcbiAgICAgICAgcmVzdWx0OiB7fSxcbiAgICAgICAgaW52YWxpZFRva2VuOiBmYWxzZSxcbiAgICAgICAgbmVlZHNPVFA6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBub2NrVjJXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2NvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHNjcmlwdFB1YktleSA9IEJ1ZmZlci5mcm9tKCdhOTE0OWYwYmY1MWZhYjRkMzNhYjIxOTc3ZTFiODlmNzc2ZjY0MTYxZWY0Mjg3JywgJ2hleCcpO1xuICBpdCgnc2hvdWxkIGNvbnZlcnQgTS4uLiBQMlNIIGFkZHJlc3MgdG8gMy4uLiBsZWdhY3kgZm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIC8vIFRoZXNlIHR3byBhZGRyZXNzZXMgcmVwcmVzZW50IHRoZSBzYW1lIHVuZGVybHlpbmcgc2NyaXB0IGhhc2g6XG4gICAgLy8gLSBNTlE3emtnTXNhVjY3cnNqQTNKdVA1OVJDNXd4Ulhwd2dFIGlzIHRoZSBMVEMgZm9ybWF0IChzY3JpcHRIYXNoIDB4MzIpXG4gICAgLy8gLSAzR0J5Z3NHUHZUZGZLTWJxNEFLWlpSdTFzUE1XUEVzQmZkIGlzIHRoZSBCVEMgZm9ybWF0IChzY3JpcHRIYXNoIDB4MDUpXG4gICAgLy8gY29uc3QgbHRjQWRkcmVzcyA9ICdNTlE3emtnTXNhVjY3cnNqQTNKdVA1OVJDNXd4Ulhwd2dFJztcbiAgICBjb25zdCBsdGNBZGRyZXNzID0gd2FzbUFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhDb2luKHNjcmlwdFB1YktleSwgJ2x0YycpO1xuICAgIGNvbnN0IHRsdGNBZGRyZXNzID0gd2FzbUFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhDb2luKHNjcmlwdFB1YktleSwgJ3RsdGMnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwobHRjQWRkcmVzcywgJ01OUTd6a2dNc2FWNjdyc2pBM0p1UDU5UkM1d3hSWHB3Z0UnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGx0Y0FkZHJlc3MsICdRYjZ3c2Q0ZloyQzZmS3pSTVB5VEc1S2lFODFXNlFDeGhVJyk7XG5cbiAgICBjb25zdCBsZWdhY3lBZGRyZXNzID0gY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdChsdGNBZGRyZXNzLCAnbHRjJyk7XG4gICAgY29uc3QgZXhwZWN0ZWRMdGNMZWdhY3lBZGRyZXNzID0gJzNHQnlnc0dQdlRkZktNYnE0QUtaWlJ1MXNQTVdQRXNCZmQnO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChsZWdhY3lBZGRyZXNzLCBleHBlY3RlZEx0Y0xlZ2FjeUFkZHJlc3MpO1xuXG4gICAgY29uc3QgZXhwZWN0ZWRUbHRjTGVnYWN5QWRkcmVzcyA9ICcyTjdrQmtjQ1JYdjkxWDlFTmpId1NCTnRINWpaZzh5eWU2cic7XG4gICAgY29uc3QgdGx0Y0xlZ2FjeUFkZHJlc3MgPSBjb252ZXJ0THRjQWRkcmVzc1RvTGVnYWN5Rm9ybWF0KHRsdGNBZGRyZXNzLCAndGx0YycpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0bHRjTGVnYWN5QWRkcmVzcywgZXhwZWN0ZWRUbHRjTGVnYWN5QWRkcmVzcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY29udmVydCBNRDY4UHNkaGVLeGNZc3JWTHlaUlhnb1NETG5CMU1kVnRFIHRvIGxlZ2FjeSBmb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgYWRkcmVzcyA9ICdNRDY4UHNkaGVLeGNZc3JWTHlaUlhnb1NETG5CMU1kVnRFJztcbiAgICBjb25zdCBsZWdhY3lBZGRyZXNzID0gY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdChhZGRyZXNzLCAnbHRjJyk7XG5cbiAgICAvLyBTaG91bGQgc3RhcnQgd2l0aCAnMycgKGxlZ2FjeSBCVEMgUDJTSCBmb3JtYXQpXG4gICAgYXNzZXJ0Lm9rKGxlZ2FjeUFkZHJlc3Muc3RhcnRzV2l0aCgnMycpLCBgRXhwZWN0ZWQgYWRkcmVzcyB0byBzdGFydCB3aXRoICczJywgZ290OiAke2xlZ2FjeUFkZHJlc3N9YCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IG1vZGlmeSBiZWNoMzIgYWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJlY2gzMkFkZHJlc3MgPSAnbHRjMXFncmw4enBuZHNrbGFhOXN3Z2Q1dmV2eXhteDV4NjN2Y3JsN2RrNCc7XG4gICAgY29uc3QgcmVzdWx0ID0gY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdChiZWNoMzJBZGRyZXNzLCAnbHRjJyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdCwgYmVjaDMyQWRkcmVzcyk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -83,7 +83,7 @@ function assertSignedUtxolib(psbt, userKey) {
|
|
|
83
83
|
}
|
|
84
84
|
function assertSignedWasm(psbt, userKey, rootWalletKeys, replayProtection) {
|
|
85
85
|
const wasmUserKey = wasm_utxo_1.BIP32.from(userKey);
|
|
86
|
-
const parsed = psbt.parseTransactionWithWalletKeys(rootWalletKeys, replayProtection);
|
|
86
|
+
const parsed = psbt.parseTransactionWithWalletKeys(rootWalletKeys, { replayProtection });
|
|
87
87
|
// Verify that all wallet inputs have been signed by user key
|
|
88
88
|
parsed.inputs.forEach((input, inputIndex) => {
|
|
89
89
|
// Skip replay protection inputs (p2shP2pk)
|
|
@@ -151,4 +151,4 @@ describe('signPsbtWithMusig2ParticipantUtxolib', function () {
|
|
|
151
151
|
describeSignPsbtWithMusig2Participant(test, { decodeWith: 'wasm-utxo' });
|
|
152
152
|
});
|
|
153
153
|
});
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvc2lnblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBd0M7QUFFeEMseURBQTJDO0FBQzNDLGdEQUE0RDtBQUU1RCwrREFBb0U7QUFFcEUsNkZBQStHO0FBQy9HLHVGQUc4RDtBQUU5RCxpREFBb0Q7QUFFcEQsU0FBUyxrQkFBa0IsQ0FBQyxJQUFrQztJQUM1RCxPQUFPO1FBQ0wsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUE0QixFQUFFLFFBQWdCO1lBQ2xFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDcEUsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FDdEIsSUFBa0MsRUFDbEMsT0FBd0I7SUFFeEIsbUVBQW1FO0lBQ25FLHVEQUF1RDtJQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLGlCQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBQSxnQkFBTSxFQUFDLFdBQVcsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBQ2hELE9BQU87UUFDTCxLQUFLLENBQUMsZUFBZSxDQUFDLElBQWlDLEVBQUUsUUFBZ0I7WUFDdkUsc0NBQXNDO1lBQ3RDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyx3REFBd0Q7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QzFDLElBQUEsZ0JBQU0sRUFBQyxNQUFNLFlBQVksNkJBQWlCLENBQUMsU0FBUyxFQUFFLGlEQUFpRCxDQUFDLENBQUM7Z0JBRXpHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUMzRixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxRQUFRLENBQUMsc0NBQXNDLEVBQUU7SUFDL0Msa0VBQWtFO0lBQ2xFLG9FQUFvRTtJQUNwRSwwRUFBMEU7SUFDMUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsMkJBQTJCLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDcEUsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLFVBQVUsQ0FBQztTQUMvQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNoQixxQ0FBcUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN2RSxxQ0FBcUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdub2RlOmFzc2VydC9zdHJpY3QnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBCSVAzMiwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgZGVjb2RlUHNidFdpdGggfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVjb2RlJztcbmltcG9ydCB7IE11c2lnMlBhcnRpY2lwYW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L211c2lnMic7XG5pbXBvcnQgeyBzaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudFV0eG9saWIgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvc2lnblBzYnRVdHhvbGliJztcbmltcG9ydCB7XG4gIFJlcGxheVByb3RlY3Rpb25LZXlzLFxuICBzaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudFdhc20sXG59IGZyb20gJy4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9zaWduUHNidFdhc20nO1xuaW1wb3J0IHsgU2RrQmFja2VuZCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi90eXBlcyc7XG5pbXBvcnQgeyBnZXRDb2luTmFtZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9uYW1lcyc7XG5cbmZ1bmN0aW9uIGdldE1vY2tDb2luVXR4b2xpYihrZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKTogTXVzaWcyUGFydGljaXBhbnQ8dXR4b2xpYi5iaXRnby5VdHhvUHNidD4ge1xuICByZXR1cm4ge1xuICAgIGFzeW5jIGdldE11c2lnMk5vbmNlcyhwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LCB3YWxsZXRJZDogc3RyaW5nKTogUHJvbWlzZTx1dHhvbGliLmJpdGdvLlV0eG9Qc2J0PiB7XG4gICAgICBwc2J0LnNldEFsbElucHV0c011c2lnMk5vbmNlSEQoa2V5cy5iaXRnbywgeyBkZXRlcm1pbmlzdGljOiB0cnVlIH0pO1xuICAgICAgcmV0dXJuIHBzYnQ7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0TW9ja0NvaW5XYXNtKFxuICBrZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IE11c2lnMlBhcnRpY2lwYW50PGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidD4ge1xuICAvLyBDb252ZXJ0IHV0eG9saWIgUm9vdFdhbGxldEtleXMgdG8gd2FzbSBCSVAzMiB1c2luZyBiYXNlNTggc3RyaW5nXG4gIC8vIFRoaXMgZW5zdXJlcyB0aGUgcHJpdmF0ZSBrZXkgaXMgcHJvcGVybHkgdHJhbnNmZXJyZWRcbiAgY29uc3QgYml0Z29YcHJ2ID0ga2V5cy5iaXRnby50b0Jhc2U1OCgpO1xuICBjb25zdCBiaXRnb0tleSA9IEJJUDMyLmZyb21CYXNlNTgoYml0Z29YcHJ2KTtcbiAgY29uc3QgbmV0d29ya05hbWUgPSB1dHhvbGliLmdldE5ldHdvcmtOYW1lKG5ldHdvcmspO1xuICBhc3NlcnQobmV0d29ya05hbWUsICduZXR3b3JrIG5hbWUgaXMgcmVxdWlyZWQnKTtcbiAgcmV0dXJuIHtcbiAgICBhc3luYyBnZXRNdXNpZzJOb25jZXMocHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LCB3YWxsZXRJZDogc3RyaW5nKTogUHJvbWlzZTxmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+IHtcbiAgICAgIC8vIEdlbmVyYXRlIG5vbmNlcyB1c2luZyB0aGUgYml0Z28ga2V5XG4gICAgICBwc2J0LmdlbmVyYXRlTXVzaWcyTm9uY2VzKGJpdGdvS2V5KTtcbiAgICAgIC8vIFNlcmlhbGl6ZSBhbmQgZGVzZXJpYWxpemUgdG8gc2ltdWxhdGUgcmVtb3RlIHJlc3BvbnNlXG4gICAgICAvLyBUaGlzIGNyZWF0ZXMgYSBuZXcgb2JqZWN0IHNvIHdlIGRvbid0IGdldCBcInJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0XCIgZXJyb3JcbiAgICAgIHJldHVybiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKHBzYnQuc2VyaWFsaXplKCksIG5ldHdvcmtOYW1lKTtcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBhc3NlcnRTaWduZWRVdHhvbGliKHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIHVzZXJLZXk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UpOiB2b2lkIHtcbiAgLy8gVmVyaWZ5IHRoYXQgYWxsIHdhbGxldCBpbnB1dHMgaGF2ZSBiZWVuIHNpZ25lZCBieSB1c2VyIGtleVxuICBwc2J0LmRhdGEuaW5wdXRzLmZvckVhY2goKGlucHV0LCBpbnB1dEluZGV4KSA9PiB7XG4gICAgY29uc3QgeyBzY3JpcHRUeXBlIH0gPSB1dHhvbGliLmJpdGdvLnBhcnNlUHNidElucHV0KGlucHV0KTtcblxuICAgIC8vIFNraXAgcmVwbGF5IHByb3RlY3Rpb24gaW5wdXRzIChwMnNoUDJwaylcbiAgICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFZlcmlmeSB1c2VyIHNpZ25hdHVyZSBpcyBwcmVzZW50XG4gICAgY29uc3QgaXNWYWxpZCA9IHBzYnQudmFsaWRhdGVTaWduYXR1cmVzT2ZJbnB1dEhEKGlucHV0SW5kZXgsIHVzZXJLZXkpO1xuICAgIGFzc2VydChpc1ZhbGlkLCBgaW5wdXQgJHtpbnB1dEluZGV4fSBzaG91bGQgaGF2ZSB2YWxpZCB1c2VyIHNpZ25hdHVyZWApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0U2lnbmVkV2FzbShcbiAgcHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICB1c2VyS2V5OiB1dHhvbGliLkJJUDMySW50ZXJmYWNlLFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuSVdhbGxldEtleXMsXG4gIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzXG4pOiB2b2lkIHtcbiAgY29uc3Qgd2FzbVVzZXJLZXkgPSBCSVAzMi5mcm9tKHVzZXJLZXkpO1xuICBjb25zdCBwYXJzZWQgPSBwc2J0LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyhyb290V2FsbGV0S2V5cywgcmVwbGF5UHJvdGVjdGlvbik7XG5cbiAgLy8gVmVyaWZ5IHRoYXQgYWxsIHdhbGxldCBpbnB1dHMgaGF2ZSBiZWVuIHNpZ25lZCBieSB1c2VyIGtleVxuICBwYXJzZWQuaW5wdXRzLmZvckVhY2goKGlucHV0LCBpbnB1dEluZGV4KSA9PiB7XG4gICAgLy8gU2tpcCByZXBsYXkgcHJvdGVjdGlvbiBpbnB1dHMgKHAyc2hQMnBrKVxuICAgIGlmIChpbnB1dC5zY3JpcHRUeXBlID09PSAncDJzaFAycGsnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVmVyaWZ5IHVzZXIgc2lnbmF0dXJlIGlzIHByZXNlbnRcbiAgICBjb25zdCBpc1ZhbGlkID0gcHNidC52ZXJpZnlTaWduYXR1cmUoaW5wdXRJbmRleCwgd2FzbVVzZXJLZXkpO1xuICAgIGFzc2VydChpc1ZhbGlkLCBgaW5wdXQgJHtpbnB1dEluZGV4fSBzaG91bGQgaGF2ZSB2YWxpZCB1c2VyIHNpZ25hdHVyZSAoc2NyaXB0VHlwZT0ke2lucHV0LnNjcmlwdFR5cGV9KWApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdG9XYXNtV2FsbGV0S2V5cyhrZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKTogZml4ZWRTY3JpcHRXYWxsZXQuSVdhbGxldEtleXMge1xuICByZXR1cm4ge1xuICAgIHRyaXBsZTogW2tleXMudXNlciwga2V5cy5iYWNrdXAsIGtleXMuYml0Z29dLFxuICAgIGRlcml2YXRpb25QcmVmaXhlczoga2V5cy5kZXJpdmF0aW9uUHJlZml4ZXMsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFJlcGxheVByb3RlY3Rpb25LZXlzKGtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMpOiBSZXBsYXlQcm90ZWN0aW9uS2V5cyB7XG4gIC8vIFJlcGxheSBwcm90ZWN0aW9uIGlucHV0cyB1c2UgdGhlIHVuZGVyaXZlZCB1c2VyIHB1YmxpYyBrZXlcbiAgcmV0dXJuIHtcbiAgICBwdWJsaWNLZXlzOiBba2V5cy51c2VyLnB1YmxpY0tleV0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlU2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnQoXG4gIGFjaWRUZXN0OiB1dHhvbGliLnRlc3R1dGlsLkFjaWRUZXN0LFxuICB7IGRlY29kZVdpdGggfTogeyBkZWNvZGVXaXRoOiBTZGtCYWNrZW5kIH1cbikge1xuICBkZXNjcmliZShgJHthY2lkVGVzdC5uYW1lfSAke2RlY29kZVdpdGh9YCwgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgc2lnbiB1bnNpZ25lZCBwc2J0IHRvIGhhbGZzaWduZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBDcmVhdGUgdW5zaWduZWQgUFNCVFxuICAgICAgY29uc3QgY29pbk5hbWUgPSBnZXRDb2luTmFtZShhY2lkVGVzdC5uZXR3b3JrKTtcbiAgICAgIGNvbnN0IHBzYnQgPSBkZWNvZGVQc2J0V2l0aChhY2lkVGVzdC5jcmVhdGVQc2J0KCkudG9CdWZmZXIoKSwgY29pbk5hbWUsIGRlY29kZVdpdGgpO1xuXG4gICAgICBsZXQgcmVzdWx0O1xuICAgICAgaWYgKGRlY29kZVdpdGggPT09ICd1dHhvbGliJykge1xuICAgICAgICBhc3NlcnQocHNidCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQsICdwc2J0IHNob3VsZCBiZSBhIFV0eG9Qc2J0Jyk7XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50VXR4b2xpYihcbiAgICAgICAgICBnZXRNb2NrQ29pblV0eG9saWIoYWNpZFRlc3Qucm9vdFdhbGxldEtleXMpLFxuICAgICAgICAgIHBzYnQsXG4gICAgICAgICAgYWNpZFRlc3Qucm9vdFdhbGxldEtleXMudXNlcixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzaWduaW5nU3RlcDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgd2FsbGV0SWQ6ICd0ZXN0LXdhbGxldC1pZCcsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICAvLyBSZXN1bHQgc2hvdWxkIGJlIGEgUFNCVCAobm90IGZpbmFsaXplZClcbiAgICAgICAgYXNzZXJ0KHJlc3VsdCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQsICdzaG91bGQgcmV0dXJuIFV0eG9Qc2J0IHdoZW4gbm90IGxhc3Qgc2lnbmF0dXJlJyk7XG5cbiAgICAgICAgYXNzZXJ0U2lnbmVkVXR4b2xpYihyZXN1bHQsIGFjaWRUZXN0LnJvb3RXYWxsZXRLZXlzLnVzZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KHBzYnQgaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsICdwc2J0IHNob3VsZCBiZSBhIEJpdEdvUHNidCcpO1xuICAgICAgICBjb25zdCB3YXNtV2FsbGV0S2V5cyA9IHRvV2FzbVdhbGxldEtleXMoYWNpZFRlc3Qucm9vdFdhbGxldEtleXMpO1xuICAgICAgICBjb25zdCByZXBsYXlQcm90ZWN0aW9uID0gZ2V0UmVwbGF5UHJvdGVjdGlvbktleXMoYWNpZFRlc3Qucm9vdFdhbGxldEtleXMpO1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBzaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudFdhc20oXG4gICAgICAgICAgZ2V0TW9ja0NvaW5XYXNtKGFjaWRUZXN0LnJvb3RXYWxsZXRLZXlzLCBhY2lkVGVzdC5uZXR3b3JrKSxcbiAgICAgICAgICBwc2J0LFxuICAgICAgICAgIGFjaWRUZXN0LnJvb3RXYWxsZXRLZXlzLnVzZXIsXG4gICAgICAgICAgZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMuZnJvbShhY2lkVGVzdC5yb290V2FsbGV0S2V5cyksXG4gICAgICAgICAge1xuICAgICAgICAgICAgcmVwbGF5UHJvdGVjdGlvbixcbiAgICAgICAgICAgIHNpZ25pbmdTdGVwOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB3YWxsZXRJZDogJ3Rlc3Qtd2FsbGV0LWlkJyxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIC8vIFJlc3VsdCBzaG91bGQgYmUgYSBQU0JUIChub3QgZmluYWxpemVkKVxuICAgICAgICBhc3NlcnQocmVzdWx0IGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LCAnc2hvdWxkIHJldHVybiBCaXRHb1BzYnQgd2hlbiBub3QgbGFzdCBzaWduYXR1cmUnKTtcblxuICAgICAgICBhc3NlcnRTaWduZWRXYXNtKHJlc3VsdCwgYWNpZFRlc3Qucm9vdFdhbGxldEtleXMudXNlciwgd2FzbVdhbGxldEtleXMsIHJlcGxheVByb3RlY3Rpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZGVzY3JpYmUoJ3NpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50VXR4b2xpYicsIGZ1bmN0aW9uICgpIHtcbiAgLy8gQ3JlYXRlIHRlc3Qgc3VpdGUgd2l0aCBpbmNsdWRlUDJ0ck11c2lnMlNjcmlwdFBhdGggc2V0IHRvIGZhbHNlXG4gIC8vIHAydHJNdXNpZzIgc2NyaXB0IHBhdGggaW5wdXRzIGFyZSBzaWduZWQgYnkgdXNlciBhbmQgYmFja3VwIGtleXMsXG4gIC8vIHdoaWNoIGlzIG5vdCB0aGUgdHlwaWNhbCBzaWduaW5nIHBhdHRlcm4gYW5kIG1ha2VzIHRlc3RpbmcgbW9yZSBjb21wbGV4XG4gIHV0eG9saWIudGVzdHV0aWwuQWNpZFRlc3Quc3VpdGUoeyBpbmNsdWRlUDJ0ck11c2lnMlNjcmlwdFBhdGg6IGZhbHNlIH0pXG4gICAgLmZpbHRlcigodGVzdCkgPT4gdGVzdC5zaWduU3RhZ2UgPT09ICd1bnNpZ25lZCcpXG4gICAgLmZvckVhY2goKHRlc3QpID0+IHtcbiAgICAgIGRlc2NyaWJlU2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnQodGVzdCwgeyBkZWNvZGVXaXRoOiAndXR4b2xpYicgfSk7XG4gICAgICBkZXNjcmliZVNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50KHRlc3QsIHsgZGVjb2RlV2l0aDogJ3dhc20tdXR4bycgfSk7XG4gICAgfSk7XG59KTtcbiJdfQ==
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvc2lnblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBd0M7QUFFeEMseURBQTJDO0FBQzNDLGdEQUE0RDtBQUU1RCwrREFBb0U7QUFFcEUsNkZBQStHO0FBQy9HLHVGQUc4RDtBQUU5RCxpREFBb0Q7QUFFcEQsU0FBUyxrQkFBa0IsQ0FBQyxJQUFrQztJQUM1RCxPQUFPO1FBQ0wsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUE0QixFQUFFLFFBQWdCO1lBQ2xFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDcEUsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FDdEIsSUFBa0MsRUFDbEMsT0FBd0I7SUFFeEIsbUVBQW1FO0lBQ25FLHVEQUF1RDtJQUN2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLGlCQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBQSxnQkFBTSxFQUFDLFdBQVcsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBQ2hELE9BQU87UUFDTCxLQUFLLENBQUMsZUFBZSxDQUFDLElBQWlDLEVBQUUsUUFBZ0I7WUFDdkUsc0NBQXNDO1lBQ3RDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyx3REFBd0Q7WUFDeEQsK0VBQStFO1lBQy9FLE9BQU8sNkJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDOUUsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxJQUE0QixFQUFFLE9BQStCO0lBQ3hGLDZEQUE2RDtJQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUU7UUFDN0MsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNELDJDQUEyQztRQUMzQyxJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5QixPQUFPO1FBQ1QsQ0FBQztRQUVELG1DQUFtQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RFLElBQUEsZ0JBQU0sRUFBQyxPQUFPLEVBQUUsU0FBUyxVQUFVLG1DQUFtQyxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FDdkIsSUFBaUMsRUFDakMsT0FBK0IsRUFDL0IsY0FBNkMsRUFDN0MsZ0JBQXNDO0lBRXRDLE1BQU0sV0FBVyxHQUFHLGlCQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxjQUFjLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFekYsNkRBQTZEO0lBQzdELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO1FBQzFDLDJDQUEyQztRQUMzQyxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDcEMsT0FBTztRQUNULENBQUM7UUFFRCxtQ0FBbUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDOUQsSUFBQSxnQkFBTSxFQUFDLE9BQU8sRUFBRSxTQUFTLFVBQVUsaURBQWlELEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQzNHLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsSUFBa0M7SUFDMUQsT0FBTztRQUNMLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7S0FDNUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLElBQWtDO0lBQ2pFLDZEQUE2RDtJQUM3RCxPQUFPO1FBQ0wsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHFDQUFxQyxDQUM1QyxRQUFtQyxFQUNuQyxFQUFFLFVBQVUsRUFBOEI7SUFFMUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxVQUFVLEVBQUUsRUFBRTtRQUN6QyxFQUFFLENBQUMseUNBQXlDLEVBQUUsS0FBSztZQUNqRCx1QkFBdUI7WUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBQSxtQkFBVyxFQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFjLEVBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUVwRixJQUFJLE1BQU0sQ0FBQztZQUNYLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM3QixJQUFBLGdCQUFNLEVBQUMsSUFBSSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLDJCQUEyQixDQUFDLENBQUM7Z0JBQzVFLE1BQU0sR0FBRyxNQUFNLElBQUEsc0RBQW9DLEVBQ2pELGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFDM0MsSUFBSSxFQUNKLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUM1QjtvQkFDRSxXQUFXLEVBQUUsU0FBUztvQkFDdEIsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0IsQ0FDRixDQUFDO2dCQUNGLDBDQUEwQztnQkFDMUMsSUFBQSxnQkFBTSxFQUFDLE1BQU0sWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxnREFBZ0QsQ0FBQyxDQUFDO2dCQUVuRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBQSxnQkFBTSxFQUFDLElBQUksWUFBWSw2QkFBaUIsQ0FBQyxTQUFTLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztnQkFDbEYsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNqRSxNQUFNLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDMUUsTUFBTSxHQUFHLE1BQU0sSUFBQSxnREFBaUMsRUFDOUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUMxRCxJQUFJLEVBQ0osUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQzVCLDZCQUFpQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUM5RDtvQkFDRSxnQkFBZ0I7b0JBQ2hCLFdBQVcsRUFBRSxTQUFTO29CQUN0QixRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQixDQUNGLENBQUM7Z0JBQ0YsMENBQTBDO2dCQUMxQyxJQUFBLGdCQUFNLEVBQUMsTUFBTSxZQUFZLDZCQUFpQixDQUFDLFNBQVMsRUFBRSxpREFBaUQsQ0FBQyxDQUFDO2dCQUV6RyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDM0YsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsUUFBUSxDQUFDLHNDQUFzQyxFQUFFO0lBQy9DLGtFQUFrRTtJQUNsRSxvRUFBb0U7SUFDcEUsMEVBQTBFO0lBQzFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ3BFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUM7U0FDL0MsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDaEIscUNBQXFDLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdkUscUNBQXFDLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQvc3RyaWN0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgQklQMzIsIGZpeGVkU2NyaXB0V2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IGRlY29kZVBzYnRXaXRoIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2RlY29kZSc7XG5pbXBvcnQgeyBNdXNpZzJQYXJ0aWNpcGFudCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9tdXNpZzInO1xuaW1wb3J0IHsgc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRVdHhvbGliIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25Qc2J0VXR4b2xpYic7XG5pbXBvcnQge1xuICBSZXBsYXlQcm90ZWN0aW9uS2V5cyxcbiAgc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRXYXNtLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvc2lnblBzYnRXYXNtJztcbmltcG9ydCB7IFNka0JhY2tlbmQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0Q29pbk5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbmFtZXMnO1xuXG5mdW5jdGlvbiBnZXRNb2NrQ29pblV0eG9saWIoa2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyk6IE11c2lnMlBhcnRpY2lwYW50PHV0eG9saWIuYml0Z28uVXR4b1BzYnQ+IHtcbiAgcmV0dXJuIHtcbiAgICBhc3luYyBnZXRNdXNpZzJOb25jZXMocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCwgd2FsbGV0SWQ6IHN0cmluZyk6IFByb21pc2U8dXR4b2xpYi5iaXRnby5VdHhvUHNidD4ge1xuICAgICAgcHNidC5zZXRBbGxJbnB1dHNNdXNpZzJOb25jZUhEKGtleXMuYml0Z28sIHsgZGV0ZXJtaW5pc3RpYzogdHJ1ZSB9KTtcbiAgICAgIHJldHVybiBwc2J0O1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldE1vY2tDb2luV2FzbShcbiAga2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBNdXNpZzJQYXJ0aWNpcGFudDxmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+IHtcbiAgLy8gQ29udmVydCB1dHhvbGliIFJvb3RXYWxsZXRLZXlzIHRvIHdhc20gQklQMzIgdXNpbmcgYmFzZTU4IHN0cmluZ1xuICAvLyBUaGlzIGVuc3VyZXMgdGhlIHByaXZhdGUga2V5IGlzIHByb3Blcmx5IHRyYW5zZmVycmVkXG4gIGNvbnN0IGJpdGdvWHBydiA9IGtleXMuYml0Z28udG9CYXNlNTgoKTtcbiAgY29uc3QgYml0Z29LZXkgPSBCSVAzMi5mcm9tQmFzZTU4KGJpdGdvWHBydik7XG4gIGNvbnN0IG5ldHdvcmtOYW1lID0gdXR4b2xpYi5nZXROZXR3b3JrTmFtZShuZXR3b3JrKTtcbiAgYXNzZXJ0KG5ldHdvcmtOYW1lLCAnbmV0d29yayBuYW1lIGlzIHJlcXVpcmVkJyk7XG4gIHJldHVybiB7XG4gICAgYXN5bmMgZ2V0TXVzaWcyTm9uY2VzKHBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCwgd2FsbGV0SWQ6IHN0cmluZyk6IFByb21pc2U8Zml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PiB7XG4gICAgICAvLyBHZW5lcmF0ZSBub25jZXMgdXNpbmcgdGhlIGJpdGdvIGtleVxuICAgICAgcHNidC5nZW5lcmF0ZU11c2lnMk5vbmNlcyhiaXRnb0tleSk7XG4gICAgICAvLyBTZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIHRvIHNpbXVsYXRlIHJlbW90ZSByZXNwb25zZVxuICAgICAgLy8gVGhpcyBjcmVhdGVzIGEgbmV3IG9iamVjdCBzbyB3ZSBkb24ndCBnZXQgXCJyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdFwiIGVycm9yXG4gICAgICByZXR1cm4gZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LmZyb21CeXRlcyhwc2J0LnNlcmlhbGl6ZSgpLCBuZXR3b3JrTmFtZSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0U2lnbmVkVXR4b2xpYihwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LCB1c2VyS2V5OiB1dHhvbGliLkJJUDMySW50ZXJmYWNlKTogdm9pZCB7XG4gIC8vIFZlcmlmeSB0aGF0IGFsbCB3YWxsZXQgaW5wdXRzIGhhdmUgYmVlbiBzaWduZWQgYnkgdXNlciBrZXlcbiAgcHNidC5kYXRhLmlucHV0cy5mb3JFYWNoKChpbnB1dCwgaW5wdXRJbmRleCkgPT4ge1xuICAgIGNvbnN0IHsgc2NyaXB0VHlwZSB9ID0gdXR4b2xpYi5iaXRnby5wYXJzZVBzYnRJbnB1dChpbnB1dCk7XG5cbiAgICAvLyBTa2lwIHJlcGxheSBwcm90ZWN0aW9uIGlucHV0cyAocDJzaFAycGspXG4gICAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBWZXJpZnkgdXNlciBzaWduYXR1cmUgaXMgcHJlc2VudFxuICAgIGNvbnN0IGlzVmFsaWQgPSBwc2J0LnZhbGlkYXRlU2lnbmF0dXJlc09mSW5wdXRIRChpbnB1dEluZGV4LCB1c2VyS2V5KTtcbiAgICBhc3NlcnQoaXNWYWxpZCwgYGlucHV0ICR7aW5wdXRJbmRleH0gc2hvdWxkIGhhdmUgdmFsaWQgdXNlciBzaWduYXR1cmVgKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFzc2VydFNpZ25lZFdhc20oXG4gIHBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgdXNlcktleTogdXR4b2xpYi5CSVAzMkludGVyZmFjZSxcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LklXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5c1xuKTogdm9pZCB7XG4gIGNvbnN0IHdhc21Vc2VyS2V5ID0gQklQMzIuZnJvbSh1c2VyS2V5KTtcbiAgY29uc3QgcGFyc2VkID0gcHNidC5wYXJzZVRyYW5zYWN0aW9uV2l0aFdhbGxldEtleXMocm9vdFdhbGxldEtleXMsIHsgcmVwbGF5UHJvdGVjdGlvbiB9KTtcblxuICAvLyBWZXJpZnkgdGhhdCBhbGwgd2FsbGV0IGlucHV0cyBoYXZlIGJlZW4gc2lnbmVkIGJ5IHVzZXIga2V5XG4gIHBhcnNlZC5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICAvLyBTa2lwIHJlcGxheSBwcm90ZWN0aW9uIGlucHV0cyAocDJzaFAycGspXG4gICAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBWZXJpZnkgdXNlciBzaWduYXR1cmUgaXMgcHJlc2VudFxuICAgIGNvbnN0IGlzVmFsaWQgPSBwc2J0LnZlcmlmeVNpZ25hdHVyZShpbnB1dEluZGV4LCB3YXNtVXNlcktleSk7XG4gICAgYXNzZXJ0KGlzVmFsaWQsIGBpbnB1dCAke2lucHV0SW5kZXh9IHNob3VsZCBoYXZlIHZhbGlkIHVzZXIgc2lnbmF0dXJlIChzY3JpcHRUeXBlPSR7aW5wdXQuc2NyaXB0VHlwZX0pYCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB0b1dhc21XYWxsZXRLZXlzKGtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMpOiBmaXhlZFNjcmlwdFdhbGxldC5JV2FsbGV0S2V5cyB7XG4gIHJldHVybiB7XG4gICAgdHJpcGxlOiBba2V5cy51c2VyLCBrZXlzLmJhY2t1cCwga2V5cy5iaXRnb10sXG4gICAgZGVyaXZhdGlvblByZWZpeGVzOiBrZXlzLmRlcml2YXRpb25QcmVmaXhlcyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVwbGF5UHJvdGVjdGlvbktleXMoa2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyk6IFJlcGxheVByb3RlY3Rpb25LZXlzIHtcbiAgLy8gUmVwbGF5IHByb3RlY3Rpb24gaW5wdXRzIHVzZSB0aGUgdW5kZXJpdmVkIHVzZXIgcHVibGljIGtleVxuICByZXR1cm4ge1xuICAgIHB1YmxpY0tleXM6IFtrZXlzLnVzZXIucHVibGljS2V5XSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVTaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudChcbiAgYWNpZFRlc3Q6IHV0eG9saWIudGVzdHV0aWwuQWNpZFRlc3QsXG4gIHsgZGVjb2RlV2l0aCB9OiB7IGRlY29kZVdpdGg6IFNka0JhY2tlbmQgfVxuKSB7XG4gIGRlc2NyaWJlKGAke2FjaWRUZXN0Lm5hbWV9ICR7ZGVjb2RlV2l0aH1gLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBzaWduIHVuc2lnbmVkIHBzYnQgdG8gaGFsZnNpZ25lZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIENyZWF0ZSB1bnNpZ25lZCBQU0JUXG4gICAgICBjb25zdCBjb2luTmFtZSA9IGdldENvaW5OYW1lKGFjaWRUZXN0Lm5ldHdvcmspO1xuICAgICAgY29uc3QgcHNidCA9IGRlY29kZVBzYnRXaXRoKGFjaWRUZXN0LmNyZWF0ZVBzYnQoKS50b0J1ZmZlcigpLCBjb2luTmFtZSwgZGVjb2RlV2l0aCk7XG5cbiAgICAgIGxldCByZXN1bHQ7XG4gICAgICBpZiAoZGVjb2RlV2l0aCA9PT0gJ3V0eG9saWInKSB7XG4gICAgICAgIGFzc2VydChwc2J0IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCwgJ3BzYnQgc2hvdWxkIGJlIGEgVXR4b1BzYnQnKTtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRVdHhvbGliKFxuICAgICAgICAgIGdldE1vY2tDb2luVXR4b2xpYihhY2lkVGVzdC5yb290V2FsbGV0S2V5cyksXG4gICAgICAgICAgcHNidCxcbiAgICAgICAgICBhY2lkVGVzdC5yb290V2FsbGV0S2V5cy51c2VyLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNpZ25pbmdTdGVwOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB3YWxsZXRJZDogJ3Rlc3Qtd2FsbGV0LWlkJyxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIC8vIFJlc3VsdCBzaG91bGQgYmUgYSBQU0JUIChub3QgZmluYWxpemVkKVxuICAgICAgICBhc3NlcnQocmVzdWx0IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCwgJ3Nob3VsZCByZXR1cm4gVXR4b1BzYnQgd2hlbiBub3QgbGFzdCBzaWduYXR1cmUnKTtcblxuICAgICAgICBhc3NlcnRTaWduZWRVdHhvbGliKHJlc3VsdCwgYWNpZFRlc3Qucm9vdFdhbGxldEtleXMudXNlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3NlcnQocHNidCBpbnN0YW5jZW9mIGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCwgJ3BzYnQgc2hvdWxkIGJlIGEgQml0R29Qc2J0Jyk7XG4gICAgICAgIGNvbnN0IHdhc21XYWxsZXRLZXlzID0gdG9XYXNtV2FsbGV0S2V5cyhhY2lkVGVzdC5yb290V2FsbGV0S2V5cyk7XG4gICAgICAgIGNvbnN0IHJlcGxheVByb3RlY3Rpb24gPSBnZXRSZXBsYXlQcm90ZWN0aW9uS2V5cyhhY2lkVGVzdC5yb290V2FsbGV0S2V5cyk7XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50V2FzbShcbiAgICAgICAgICBnZXRNb2NrQ29pbldhc20oYWNpZFRlc3Qucm9vdFdhbGxldEtleXMsIGFjaWRUZXN0Lm5ldHdvcmspLFxuICAgICAgICAgIHBzYnQsXG4gICAgICAgICAgYWNpZFRlc3Qucm9vdFdhbGxldEtleXMudXNlcixcbiAgICAgICAgICBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cy5mcm9tKGFjaWRUZXN0LnJvb3RXYWxsZXRLZXlzKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICByZXBsYXlQcm90ZWN0aW9uLFxuICAgICAgICAgICAgc2lnbmluZ1N0ZXA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHdhbGxldElkOiAndGVzdC13YWxsZXQtaWQnLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgLy8gUmVzdWx0IHNob3VsZCBiZSBhIFBTQlQgKG5vdCBmaW5hbGl6ZWQpXG4gICAgICAgIGFzc2VydChyZXN1bHQgaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsICdzaG91bGQgcmV0dXJuIEJpdEdvUHNidCB3aGVuIG5vdCBsYXN0IHNpZ25hdHVyZScpO1xuXG4gICAgICAgIGFzc2VydFNpZ25lZFdhc20ocmVzdWx0LCBhY2lkVGVzdC5yb290V2FsbGV0S2V5cy51c2VyLCB3YXNtV2FsbGV0S2V5cywgcmVwbGF5UHJvdGVjdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5kZXNjcmliZSgnc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRVdHhvbGliJywgZnVuY3Rpb24gKCkge1xuICAvLyBDcmVhdGUgdGVzdCBzdWl0ZSB3aXRoIGluY2x1ZGVQMnRyTXVzaWcyU2NyaXB0UGF0aCBzZXQgdG8gZmFsc2VcbiAgLy8gcDJ0ck11c2lnMiBzY3JpcHQgcGF0aCBpbnB1dHMgYXJlIHNpZ25lZCBieSB1c2VyIGFuZCBiYWNrdXAga2V5cyxcbiAgLy8gd2hpY2ggaXMgbm90IHRoZSB0eXBpY2FsIHNpZ25pbmcgcGF0dGVybiBhbmQgbWFrZXMgdGVzdGluZyBtb3JlIGNvbXBsZXhcbiAgdXR4b2xpYi50ZXN0dXRpbC5BY2lkVGVzdC5zdWl0ZSh7IGluY2x1ZGVQMnRyTXVzaWcyU2NyaXB0UGF0aDogZmFsc2UgfSlcbiAgICAuZmlsdGVyKCh0ZXN0KSA9PiB0ZXN0LnNpZ25TdGFnZSA9PT0gJ3Vuc2lnbmVkJylcbiAgICAuZm9yRWFjaCgodGVzdCkgPT4ge1xuICAgICAgZGVzY3JpYmVTaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudCh0ZXN0LCB7IGRlY29kZVdpdGg6ICd1dHhvbGliJyB9KTtcbiAgICAgIGRlc2NyaWJlU2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnQodGVzdCwgeyBkZWNvZGVXaXRoOiAnd2FzbS11dHhvJyB9KTtcbiAgICB9KTtcbn0pO1xuIl19
|
|
@@ -108,39 +108,11 @@ describe('txFormat', function () {
|
|
|
108
108
|
coinFilter: (coin) => (0, names_1.isTestnetCoin)(coin.name),
|
|
109
109
|
expectedTxFormat: 'psbt-lite',
|
|
110
110
|
});
|
|
111
|
-
//
|
|
111
|
+
// All mainnet wallets default to psbt-lite
|
|
112
112
|
runTest({
|
|
113
|
-
description: 'should return psbt for
|
|
113
|
+
description: 'should return psbt-lite for all mainnet wallets',
|
|
114
114
|
coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
|
|
115
|
-
|
|
116
|
-
expectedTxFormat: 'psbt',
|
|
117
|
-
});
|
|
118
|
-
// MuSig2 wallets default to PSBT (mainnet only, testnet already covered)
|
|
119
|
-
runTest({
|
|
120
|
-
description: 'should return psbt for wallets with musigKp flag on mainnet',
|
|
121
|
-
coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
|
|
122
|
-
walletFilter: (w) => Boolean(w.options.walletFlags?.some((f) => f.name === 'musigKp' && f.value === 'true')),
|
|
123
|
-
expectedTxFormat: 'psbt',
|
|
124
|
-
});
|
|
125
|
-
// Mainnet Bitcoin hot wallets default to PSBT
|
|
126
|
-
runTest({
|
|
127
|
-
description: 'should return psbt for mainnet bitcoin hot wallets',
|
|
128
|
-
coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name) && (0, names_1.getMainnetCoinName)(coin.name) === 'btc',
|
|
129
|
-
walletFilter: (w) => w.options.type === 'hot',
|
|
130
|
-
expectedTxFormat: 'psbt',
|
|
131
|
-
});
|
|
132
|
-
// Other mainnet wallets do NOT default to PSBT
|
|
133
|
-
runTest({
|
|
134
|
-
description: 'should return undefined for other mainnet wallets',
|
|
135
|
-
coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
|
|
136
|
-
walletFilter: (w) => {
|
|
137
|
-
const isHotBitcoin = w.options.type === 'hot'; // This will be bitcoin hot wallets
|
|
138
|
-
const isDistributedCustody = w.options.subType === 'distributedCustody';
|
|
139
|
-
const hasMusigKpFlag = Boolean(w.options.walletFlags?.some((f) => f.name === 'musigKp' && f.value === 'true'));
|
|
140
|
-
// Only test "other" wallets - exclude the special cases
|
|
141
|
-
return !isHotBitcoin && !isDistributedCustody && !hasMusigKpFlag;
|
|
142
|
-
},
|
|
143
|
-
expectedTxFormat: undefined,
|
|
115
|
+
expectedTxFormat: 'psbt-lite',
|
|
144
116
|
});
|
|
145
117
|
// Test explicitly requested formats
|
|
146
118
|
runTest({
|
|
@@ -171,4 +143,4 @@ describe('txFormat', function () {
|
|
|
171
143
|
});
|
|
172
144
|
});
|
|
173
145
|
});
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhGb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHhGb3JtYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsMERBU0M7QUFLRCw0Q0FTQztBQUtELGtDQUVDO0FBcERELCtDQUFpQztBQUVqQyw4Q0FBeUM7QUFFekMsbUNBQWdGO0FBQ2hGLDJDQUFtRjtBQUVuRixpQ0FBaUQ7QUFZakQ7O0dBRUc7QUFDSCxTQUFnQix1QkFBdUI7SUFDckMsT0FBTztRQUNMLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDaEQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsRCxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDNUQsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRTtRQUMvRixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hHLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDNUcsQ0FB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aUZBQWlGLEVBQUU7WUFDcEYsS0FBSyxNQUFNLElBQUksSUFBSSxnQkFBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxJQUFBLHFCQUFhLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzlCLFNBQVM7Z0JBQ1gsQ0FBQztnQkFFRCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFDekMsNkJBQXVCLEVBQ3ZCLHdDQUF3QyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDMUQsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgRXJyb3JEZXByZWNhdGVkVHhGb3JtYXQsIFR4Rm9ybWF0IH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IGdldE1haW5uZXRDb2luTmFtZSwgaXNNYWlubmV0Q29pbiwgaXNUZXN0bmV0Q29pbiB9IGZyb20gJy4uLy4uL3NyYy9uYW1lcyc7XG5cbmltcG9ydCB7IHV0eG9Db2lucywgZGVmYXVsdEJpdEdvIH0gZnJvbSAnLi91dGlsJztcblxudHlwZSBXYWxsZXRUeXBlID0gJ2hvdCcgfCAnY29sZCcgfCAnY3VzdG9kaWFsJyB8ICdjdXN0b2RpYWxQYWlyZWQnIHwgJ3RyYWRpbmcnO1xudHlwZSBXYWxsZXRTdWJUeXBlID0gJ2Rpc3RyaWJ1dGVkQ3VzdG9keSc7XG50eXBlIFdhbGxldEZsYWcgPSB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9O1xuXG50eXBlIFdhbGxldE9wdGlvbnMgPSB7XG4gIHR5cGU/OiBXYWxsZXRUeXBlO1xuICBzdWJUeXBlPzogV2FsbGV0U3ViVHlwZTtcbiAgd2FsbGV0RmxhZ3M/OiBXYWxsZXRGbGFnW107XG59O1xuXG4vKipcbiAqIEVudW1lcmF0ZXMgY29tbW9uIHdhbGxldCBjb25maWd1cmF0aW9ucyBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0Q29uZmlndXJhdGlvbnMoKTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IG9wdGlvbnM6IFdhbGxldE9wdGlvbnMgfT4ge1xuICByZXR1cm4gW1xuICAgIHsgbmFtZTogJ2hvdCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdob3QnIH0gfSxcbiAgICB7IG5hbWU6ICdjb2xkIHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2NvbGQnIH0gfSxcbiAgICB7IG5hbWU6ICdjdXN0b2RpYWwgd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnY3VzdG9kaWFsJyB9IH0sXG4gICAgeyBuYW1lOiAnZGlzdHJpYnV0ZWRDdXN0b2R5IHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2NvbGQnLCBzdWJUeXBlOiAnZGlzdHJpYnV0ZWRDdXN0b2R5JyB9IH0sXG4gICAgeyBuYW1lOiAnbXVzaWdLcCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdjb2xkJywgd2FsbGV0RmxhZ3M6IFt7IG5hbWU6ICdtdXNpZ0twJywgdmFsdWU6ICd0cnVlJyB9XSB9IH0sXG4gICAgeyBuYW1lOiAnaG90IG11c2lnS3Agd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnaG90Jywgd2FsbGV0RmxhZ3M6IFt7IG5hbWU6ICdtdXNpZ0twJywgdmFsdWU6ICd0cnVlJyB9XSB9IH0sXG4gIF07XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1vY2sgd2FsbGV0IGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2NrV2FsbGV0KGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIG9wdGlvbnM6IFdhbGxldE9wdGlvbnMgPSB7fSk6IFdhbGxldCB7XG4gIGNvbnN0IHdhbGxldERhdGEgPSB7XG4gICAgaWQ6ICc1YjM0MjUyZjFiZjM0OTkzMGUzNDAyMGEnLFxuICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICB0eXBlOiBvcHRpb25zLnR5cGUgfHwgJ2hvdCcsXG4gICAgLi4uKG9wdGlvbnMuc3ViVHlwZSAmJiB7IHN1YlR5cGU6IG9wdGlvbnMuc3ViVHlwZSB9KSxcbiAgICAuLi4ob3B0aW9ucy53YWxsZXRGbGFncyAmJiB7IHdhbGxldEZsYWdzOiBvcHRpb25zLndhbGxldEZsYWdzIH0pLFxuICB9O1xuICByZXR1cm4gbmV3IFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHdhbGxldERhdGEpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIHR4Rm9ybWF0IGZyb20gYSBjb2luJ3MgZ2V0RGVmYXVsdFR4Rm9ybWF0IG1ldGhvZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHhGb3JtYXQoY29pbjogQWJzdHJhY3RVdHhvQ29pbiwgd2FsbGV0OiBXYWxsZXQsIHJlcXVlc3RlZEZvcm1hdD86IFR4Rm9ybWF0KTogVHhGb3JtYXQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY29pbi5nZXREZWZhdWx0VHhGb3JtYXQod2FsbGV0LCByZXF1ZXN0ZWRGb3JtYXQpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBydW4gYSB0eEZvcm1hdCB0ZXN0IHdpdGggbmFtZWQgYXJndW1lbnRzLlxuICogQnkgZGVmYXVsdCwgaXRlcmF0ZXMgb3ZlciBhbGwgd2FsbGV0IGNvbmZpZ3VyYXRpb25zIGFuZCBhbGwgY29pbnMuXG4gKi9cbmZ1bmN0aW9uIHJ1blRlc3QocGFyYW1zOiB7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGV4cGVjdGVkVHhGb3JtYXQ6XG4gICAgfCBUeEZvcm1hdFxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCAoKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldENvbmZpZzogV2FsbGV0T3B0aW9ucykgPT4gVHhGb3JtYXQgfCB1bmRlZmluZWQpO1xuICBjb2luRmlsdGVyPzogKGNvaW46IEFic3RyYWN0VXR4b0NvaW4pID0+IGJvb2xlYW47XG4gIHdhbGxldEZpbHRlcj86ICh3YWxsZXRDb25maWc6IHsgbmFtZTogc3RyaW5nOyBvcHRpb25zOiBXYWxsZXRPcHRpb25zIH0pID0+IGJvb2xlYW47XG4gIHJlcXVlc3RlZFR4Rm9ybWF0PzogVHhGb3JtYXQ7XG59KTogdm9pZCB7XG4gIGl0KHBhcmFtcy5kZXNjcmlwdGlvbiwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldENvbmZpZ3MgPSBnZXRXYWxsZXRDb25maWd1cmF0aW9ucygpO1xuXG4gICAgZm9yIChjb25zdCB3YWxsZXRDb25maWcgb2Ygd2FsbGV0Q29uZmlncykge1xuICAgICAgLy8gU2tpcCB3YWxsZXQgY29uZmlndXJhdGlvbnMgdGhhdCBkb24ndCBtYXRjaCB0aGUgZmlsdGVyXG4gICAgICBpZiAocGFyYW1zLndhbGxldEZpbHRlciAmJiAhcGFyYW1zLndhbGxldEZpbHRlcih3YWxsZXRDb25maWcpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGNvaW4gb2YgdXR4b0NvaW5zKSB7XG4gICAgICAgIC8vIFNraXAgY29pbnMgdGhhdCBkb24ndCBtYXRjaCB0aGUgZmlsdGVyXG4gICAgICAgIGlmIChwYXJhbXMuY29pbkZpbHRlciAmJiAhcGFyYW1zLmNvaW5GaWx0ZXIoY29pbikpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdhbGxldCA9IGNyZWF0ZU1vY2tXYWxsZXQoY29pbiwgd2FsbGV0Q29uZmlnLm9wdGlvbnMpO1xuICAgICAgICBjb25zdCB0eEZvcm1hdCA9IGdldFR4Rm9ybWF0KGNvaW4sIHdhbGxldCwgcGFyYW1zLnJlcXVlc3RlZFR4Rm9ybWF0KTtcblxuICAgICAgICBjb25zdCBleHBlY3RlZFR4Rm9ybWF0ID1cbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmV4cGVjdGVkVHhGb3JtYXQgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gcGFyYW1zLmV4cGVjdGVkVHhGb3JtYXQoY29pbiwgd2FsbGV0Q29uZmlnLm9wdGlvbnMpXG4gICAgICAgICAgICA6IHBhcmFtcy5leHBlY3RlZFR4Rm9ybWF0O1xuXG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgICB0eEZvcm1hdCxcbiAgICAgICAgICBleHBlY3RlZFR4Rm9ybWF0LFxuICAgICAgICAgIGAke3BhcmFtcy5kZXNjcmlwdGlvbn0gLSAke1xuICAgICAgICAgICAgd2FsbGV0Q29uZmlnLm5hbWVcbiAgICAgICAgICB9IC0gJHtjb2luLmdldENoYWluKCl9OiBleHBlY3RlZCAke2V4cGVjdGVkVHhGb3JtYXR9LCBnb3QgJHt0eEZvcm1hdH1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZGVzY3JpYmUoJ3R4Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnZ2V0RGVmYXVsdFR4Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIC8vIEFsbCB0ZXN0bmV0IHdhbGxldHMgZGVmYXVsdCB0byBQU0JULWxpdGVcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIGFsd2F5cyByZXR1cm4gcHNidC1saXRlIGZvciB0ZXN0bmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc1Rlc3RuZXRDb2luKGNvaW4ubmFtZSksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICB9KTtcblxuICAgIC8vIERpc3RyaWJ1dGVkQ3VzdG9keSB3YWxsZXRzIGRlZmF1bHQgdG8gUFNCVCAobWFpbm5ldCBvbmx5LCB0ZXN0bmV0IGFscmVhZHkgY292ZXJlZClcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJldHVybiBwc2J0IGZvciBkaXN0cmlidXRlZEN1c3RvZHkgd2FsbGV0cyBvbiBtYWlubmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc01haW5uZXRDb2luKGNvaW4ubmFtZSksXG4gICAgICB3YWxsZXRGaWx0ZXI6ICh3KSA9PiB3Lm9wdGlvbnMuc3ViVHlwZSA9PT0gJ2Rpc3RyaWJ1dGVkQ3VzdG9keScsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICAvLyBNdVNpZzIgd2FsbGV0cyBkZWZhdWx0IHRvIFBTQlQgKG1haW5uZXQgb25seSwgdGVzdG5ldCBhbHJlYWR5IGNvdmVyZWQpXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidCBmb3Igd2FsbGV0cyB3aXRoIG11c2lnS3AgZmxhZyBvbiBtYWlubmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc01haW5uZXRDb2luKGNvaW4ubmFtZSksXG4gICAgICB3YWxsZXRGaWx0ZXI6ICh3KSA9PiBCb29sZWFuKHcub3B0aW9ucy53YWxsZXRGbGFncz8uc29tZSgoZikgPT4gZi5uYW1lID09PSAnbXVzaWdLcCcgJiYgZi52YWx1ZSA9PT0gJ3RydWUnKSksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICAvLyBNYWlubmV0IEJpdGNvaW4gaG90IHdhbGxldHMgZGVmYXVsdCB0byBQU0JUXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidCBmb3IgbWFpbm5ldCBiaXRjb2luIGhvdCB3YWxsZXRzJyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc01haW5uZXRDb2luKGNvaW4ubmFtZSkgJiYgZ2V0TWFpbm5ldENvaW5OYW1lKGNvaW4ubmFtZSkgPT09ICdidGMnLFxuICAgICAgd2FsbGV0RmlsdGVyOiAodykgPT4gdy5vcHRpb25zLnR5cGUgPT09ICdob3QnLFxuICAgICAgZXhwZWN0ZWRUeEZvcm1hdDogJ3BzYnQnLFxuICAgIH0pO1xuXG4gICAgLy8gT3RoZXIgbWFpbm5ldCB3YWxsZXRzIGRvIE5PVCBkZWZhdWx0IHRvIFBTQlRcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJldHVybiB1bmRlZmluZWQgZm9yIG90aGVyIG1haW5uZXQgd2FsbGV0cycsXG4gICAgICBjb2luRmlsdGVyOiAoY29pbikgPT4gaXNNYWlubmV0Q29pbihjb2luLm5hbWUpLFxuICAgICAgd2FsbGV0RmlsdGVyOiAodykgPT4ge1xuICAgICAgICBjb25zdCBpc0hvdEJpdGNvaW4gPSB3Lm9wdGlvbnMudHlwZSA9PT0gJ2hvdCc7IC8vIFRoaXMgd2lsbCBiZSBiaXRjb2luIGhvdCB3YWxsZXRzXG4gICAgICAgIGNvbnN0IGlzRGlzdHJpYnV0ZWRDdXN0b2R5ID0gdy5vcHRpb25zLnN1YlR5cGUgPT09ICdkaXN0cmlidXRlZEN1c3RvZHknO1xuICAgICAgICBjb25zdCBoYXNNdXNpZ0twRmxhZyA9IEJvb2xlYW4ody5vcHRpb25zLndhbGxldEZsYWdzPy5zb21lKChmKSA9PiBmLm5hbWUgPT09ICdtdXNpZ0twJyAmJiBmLnZhbHVlID09PSAndHJ1ZScpKTtcbiAgICAgICAgLy8gT25seSB0ZXN0IFwib3RoZXJcIiB3YWxsZXRzIC0gZXhjbHVkZSB0aGUgc3BlY2lhbCBjYXNlc1xuICAgICAgICByZXR1cm4gIWlzSG90Qml0Y29pbiAmJiAhaXNEaXN0cmlidXRlZEN1c3RvZHkgJiYgIWhhc011c2lnS3BGbGFnO1xuICAgICAgfSxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIC8vIFRlc3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgZm9ybWF0c1xuICAgIHJ1blRlc3Qoe1xuICAgICAgZGVzY3JpcHRpb246ICdzaG91bGQgcmVzcGVjdCBleHBsaWNpdGx5IHJlcXVlc3RlZCBsZWdhY3kgZm9ybWF0IG9uIG1haW5uZXQnLFxuICAgICAgY29pbkZpbHRlcjogKGNvaW4pID0+IGlzTWFpbm5ldENvaW4oY29pbi5uYW1lKSxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6ICdsZWdhY3knLFxuICAgICAgcmVxdWVzdGVkVHhGb3JtYXQ6ICdsZWdhY3knLFxuICAgIH0pO1xuXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXNwZWN0IGV4cGxpY2l0bHkgcmVxdWVzdGVkIHBzYnQgZm9ybWF0JyxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6ICdwc2J0JyxcbiAgICAgIHJlcXVlc3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJlc3BlY3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgcHNidC1saXRlIGZvcm1hdCcsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICAgIHJlcXVlc3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICB9KTtcblxuICAgIC8vIFRlc3QgdGhhdCBsZWdhY3kgZm9ybWF0IGlzIHByb2hpYml0ZWQgb24gdGVzdG5ldFxuICAgIGl0KCdzaG91bGQgdGhyb3cgRXJyb3JEZXByZWNhdGVkVHhGb3JtYXQgd2hlbiBsZWdhY3kgZm9ybWF0IGlzIHJlcXVlc3RlZCBvbiB0ZXN0bmV0JywgZnVuY3Rpb24gKCkge1xuICAgICAgZm9yIChjb25zdCBjb2luIG9mIHV0eG9Db2lucykge1xuICAgICAgICBpZiAoIWlzVGVzdG5ldENvaW4oY29pbi5uYW1lKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2FsbGV0ID0gY3JlYXRlTW9ja1dhbGxldChjb2luLCB7IHR5cGU6ICdob3QnIH0pO1xuICAgICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAgICgpID0+IGdldFR4Rm9ybWF0KGNvaW4sIHdhbGxldCwgJ2xlZ2FjeScpLFxuICAgICAgICAgIEVycm9yRGVwcmVjYXRlZFR4Rm9ybWF0LFxuICAgICAgICAgIGBFeHBlY3RlZCBFcnJvckRlcHJlY2F0ZWRUeEZvcm1hdCBmb3IgJHtjb2luLmdldENoYWluKCl9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhGb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHhGb3JtYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsMERBU0M7QUFLRCw0Q0FTQztBQUtELGtDQUVDO0FBcERELCtDQUFpQztBQUVqQyw4Q0FBeUM7QUFFekMsbUNBQWdGO0FBQ2hGLDJDQUErRDtBQUUvRCxpQ0FBaUQ7QUFZakQ7O0dBRUc7QUFDSCxTQUFnQix1QkFBdUI7SUFDckMsT0FBTztRQUNMLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDaEQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsRCxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDNUQsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRTtRQUMvRixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hHLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDNUcsQ0FB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O0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgRXJyb3JEZXByZWNhdGVkVHhGb3JtYXQsIFR4Rm9ybWF0IH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IGlzTWFpbm5ldENvaW4sIGlzVGVzdG5ldENvaW4gfSBmcm9tICcuLi8uLi9zcmMvbmFtZXMnO1xuXG5pbXBvcnQgeyB1dHhvQ29pbnMsIGRlZmF1bHRCaXRHbyB9IGZyb20gJy4vdXRpbCc7XG5cbnR5cGUgV2FsbGV0VHlwZSA9ICdob3QnIHwgJ2NvbGQnIHwgJ2N1c3RvZGlhbCcgfCAnY3VzdG9kaWFsUGFpcmVkJyB8ICd0cmFkaW5nJztcbnR5cGUgV2FsbGV0U3ViVHlwZSA9ICdkaXN0cmlidXRlZEN1c3RvZHknO1xudHlwZSBXYWxsZXRGbGFnID0geyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfTtcblxudHlwZSBXYWxsZXRPcHRpb25zID0ge1xuICB0eXBlPzogV2FsbGV0VHlwZTtcbiAgc3ViVHlwZT86IFdhbGxldFN1YlR5cGU7XG4gIHdhbGxldEZsYWdzPzogV2FsbGV0RmxhZ1tdO1xufTtcblxuLyoqXG4gKiBFbnVtZXJhdGVzIGNvbW1vbiB3YWxsZXQgY29uZmlndXJhdGlvbnMgZm9yIHRlc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdhbGxldENvbmZpZ3VyYXRpb25zKCk6IEFycmF5PHsgbmFtZTogc3RyaW5nOyBvcHRpb25zOiBXYWxsZXRPcHRpb25zIH0+IHtcbiAgcmV0dXJuIFtcbiAgICB7IG5hbWU6ICdob3Qgd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnaG90JyB9IH0sXG4gICAgeyBuYW1lOiAnY29sZCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdjb2xkJyB9IH0sXG4gICAgeyBuYW1lOiAnY3VzdG9kaWFsIHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2N1c3RvZGlhbCcgfSB9LFxuICAgIHsgbmFtZTogJ2Rpc3RyaWJ1dGVkQ3VzdG9keSB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdjb2xkJywgc3ViVHlwZTogJ2Rpc3RyaWJ1dGVkQ3VzdG9keScgfSB9LFxuICAgIHsgbmFtZTogJ211c2lnS3Agd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnY29sZCcsIHdhbGxldEZsYWdzOiBbeyBuYW1lOiAnbXVzaWdLcCcsIHZhbHVlOiAndHJ1ZScgfV0gfSB9LFxuICAgIHsgbmFtZTogJ2hvdCBtdXNpZ0twIHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2hvdCcsIHdhbGxldEZsYWdzOiBbeyBuYW1lOiAnbXVzaWdLcCcsIHZhbHVlOiAndHJ1ZScgfV0gfSB9LFxuICBdO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSBtb2NrIHdhbGxldCBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTW9ja1dhbGxldChjb2luOiBBYnN0cmFjdFV0eG9Db2luLCBvcHRpb25zOiBXYWxsZXRPcHRpb25zID0ge30pOiBXYWxsZXQge1xuICBjb25zdCB3YWxsZXREYXRhID0ge1xuICAgIGlkOiAnNWIzNDI1MmYxYmYzNDk5MzBlMzQwMjBhJyxcbiAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgdHlwZTogb3B0aW9ucy50eXBlIHx8ICdob3QnLFxuICAgIC4uLihvcHRpb25zLnN1YlR5cGUgJiYgeyBzdWJUeXBlOiBvcHRpb25zLnN1YlR5cGUgfSksXG4gICAgLi4uKG9wdGlvbnMud2FsbGV0RmxhZ3MgJiYgeyB3YWxsZXRGbGFnczogb3B0aW9ucy53YWxsZXRGbGFncyB9KSxcbiAgfTtcbiAgcmV0dXJuIG5ldyBXYWxsZXQoZGVmYXVsdEJpdEdvLCBjb2luLCB3YWxsZXREYXRhKTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSB0eEZvcm1hdCBmcm9tIGEgY29pbidzIGdldERlZmF1bHRUeEZvcm1hdCBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFR4Rm9ybWF0KGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldDogV2FsbGV0LCByZXF1ZXN0ZWRGb3JtYXQ/OiBUeEZvcm1hdCk6IFR4Rm9ybWF0IHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGNvaW4uZ2V0RGVmYXVsdFR4Rm9ybWF0KHdhbGxldCwgcmVxdWVzdGVkRm9ybWF0KTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcnVuIGEgdHhGb3JtYXQgdGVzdCB3aXRoIG5hbWVkIGFyZ3VtZW50cy5cbiAqIEJ5IGRlZmF1bHQsIGl0ZXJhdGVzIG92ZXIgYWxsIHdhbGxldCBjb25maWd1cmF0aW9ucyBhbmQgYWxsIGNvaW5zLlxuICovXG5mdW5jdGlvbiBydW5UZXN0KHBhcmFtczoge1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBleHBlY3RlZFR4Rm9ybWF0OlxuICAgIHwgVHhGb3JtYXRcbiAgICB8IHVuZGVmaW5lZFxuICAgIHwgKChjb2luOiBBYnN0cmFjdFV0eG9Db2luLCB3YWxsZXRDb25maWc6IFdhbGxldE9wdGlvbnMpID0+IFR4Rm9ybWF0IHwgdW5kZWZpbmVkKTtcbiAgY29pbkZpbHRlcj86IChjb2luOiBBYnN0cmFjdFV0eG9Db2luKSA9PiBib29sZWFuO1xuICB3YWxsZXRGaWx0ZXI/OiAod2FsbGV0Q29uZmlnOiB7IG5hbWU6IHN0cmluZzsgb3B0aW9uczogV2FsbGV0T3B0aW9ucyB9KSA9PiBib29sZWFuO1xuICByZXF1ZXN0ZWRUeEZvcm1hdD86IFR4Rm9ybWF0O1xufSk6IHZvaWQge1xuICBpdChwYXJhbXMuZGVzY3JpcHRpb24sIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB3YWxsZXRDb25maWdzID0gZ2V0V2FsbGV0Q29uZmlndXJhdGlvbnMoKTtcblxuICAgIGZvciAoY29uc3Qgd2FsbGV0Q29uZmlnIG9mIHdhbGxldENvbmZpZ3MpIHtcbiAgICAgIC8vIFNraXAgd2FsbGV0IGNvbmZpZ3VyYXRpb25zIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIGZpbHRlclxuICAgICAgaWYgKHBhcmFtcy53YWxsZXRGaWx0ZXIgJiYgIXBhcmFtcy53YWxsZXRGaWx0ZXIod2FsbGV0Q29uZmlnKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBjb2luIG9mIHV0eG9Db2lucykge1xuICAgICAgICAvLyBTa2lwIGNvaW5zIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIGZpbHRlclxuICAgICAgICBpZiAocGFyYW1zLmNvaW5GaWx0ZXIgJiYgIXBhcmFtcy5jb2luRmlsdGVyKGNvaW4pKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB3YWxsZXQgPSBjcmVhdGVNb2NrV2FsbGV0KGNvaW4sIHdhbGxldENvbmZpZy5vcHRpb25zKTtcbiAgICAgICAgY29uc3QgdHhGb3JtYXQgPSBnZXRUeEZvcm1hdChjb2luLCB3YWxsZXQsIHBhcmFtcy5yZXF1ZXN0ZWRUeEZvcm1hdCk7XG5cbiAgICAgICAgY29uc3QgZXhwZWN0ZWRUeEZvcm1hdCA9XG4gICAgICAgICAgdHlwZW9mIHBhcmFtcy5leHBlY3RlZFR4Rm9ybWF0ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IHBhcmFtcy5leHBlY3RlZFR4Rm9ybWF0KGNvaW4sIHdhbGxldENvbmZpZy5vcHRpb25zKVxuICAgICAgICAgICAgOiBwYXJhbXMuZXhwZWN0ZWRUeEZvcm1hdDtcblxuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgICAgdHhGb3JtYXQsXG4gICAgICAgICAgZXhwZWN0ZWRUeEZvcm1hdCxcbiAgICAgICAgICBgJHtwYXJhbXMuZGVzY3JpcHRpb259IC0gJHtcbiAgICAgICAgICAgIHdhbGxldENvbmZpZy5uYW1lXG4gICAgICAgICAgfSAtICR7Y29pbi5nZXRDaGFpbigpfTogZXhwZWN0ZWQgJHtleHBlY3RlZFR4Rm9ybWF0fSwgZ290ICR7dHhGb3JtYXR9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmRlc2NyaWJlKCd0eEZvcm1hdCcsIGZ1bmN0aW9uICgpIHtcbiAgZGVzY3JpYmUoJ2dldERlZmF1bHRUeEZvcm1hdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAvLyBBbGwgdGVzdG5ldCB3YWxsZXRzIGRlZmF1bHQgdG8gUFNCVC1saXRlXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCBhbHdheXMgcmV0dXJuIHBzYnQtbGl0ZSBmb3IgdGVzdG5ldCcsXG4gICAgICBjb2luRmlsdGVyOiAoY29pbikgPT4gaXNUZXN0bmV0Q29pbihjb2luLm5hbWUpLFxuICAgICAgZXhwZWN0ZWRUeEZvcm1hdDogJ3BzYnQtbGl0ZScsXG4gICAgfSk7XG5cbiAgICAvLyBBbGwgbWFpbm5ldCB3YWxsZXRzIGRlZmF1bHQgdG8gcHNidC1saXRlXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidC1saXRlIGZvciBhbGwgbWFpbm5ldCB3YWxsZXRzJyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc01haW5uZXRDb2luKGNvaW4ubmFtZSksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICB9KTtcblxuICAgIC8vIFRlc3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgZm9ybWF0c1xuICAgIHJ1blRlc3Qoe1xuICAgICAgZGVzY3JpcHRpb246ICdzaG91bGQgcmVzcGVjdCBleHBsaWNpdGx5IHJlcXVlc3RlZCBsZWdhY3kgZm9ybWF0IG9uIG1haW5uZXQnLFxuICAgICAgY29pbkZpbHRlcjogKGNvaW4pID0+IGlzTWFpbm5ldENvaW4oY29pbi5uYW1lKSxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6ICdsZWdhY3knLFxuICAgICAgcmVxdWVzdGVkVHhGb3JtYXQ6ICdsZWdhY3knLFxuICAgIH0pO1xuXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXNwZWN0IGV4cGxpY2l0bHkgcmVxdWVzdGVkIHBzYnQgZm9ybWF0JyxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6ICdwc2J0JyxcbiAgICAgIHJlcXVlc3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJlc3BlY3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgcHNidC1saXRlIGZvcm1hdCcsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICAgIHJlcXVlc3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICB9KTtcblxuICAgIC8vIFRlc3QgdGhhdCBsZWdhY3kgZm9ybWF0IGlzIHByb2hpYml0ZWQgb24gdGVzdG5ldFxuICAgIGl0KCdzaG91bGQgdGhyb3cgRXJyb3JEZXByZWNhdGVkVHhGb3JtYXQgd2hlbiBsZWdhY3kgZm9ybWF0IGlzIHJlcXVlc3RlZCBvbiB0ZXN0bmV0JywgZnVuY3Rpb24gKCkge1xuICAgICAgZm9yIChjb25zdCBjb2luIG9mIHV0eG9Db2lucykge1xuICAgICAgICBpZiAoIWlzVGVzdG5ldENvaW4oY29pbi5uYW1lKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2FsbGV0ID0gY3JlYXRlTW9ja1dhbGxldChjb2luLCB7IHR5cGU6ICdob3QnIH0pO1xuICAgICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAgICgpID0+IGdldFR4Rm9ybWF0KGNvaW4sIHdhbGxldCwgJ2xlZ2FjeScpLFxuICAgICAgICAgIEVycm9yRGVwcmVjYXRlZFR4Rm9ybWF0LFxuICAgICAgICAgIGBFeHBlY3RlZCBFcnJvckRlcHJlY2F0ZWRUeEZvcm1hdCBmb3IgJHtjb2luLmdldENoYWluKCl9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -8,6 +8,6 @@ type RootWalletKeys = UtxolibRootWalletKeys | WasmRootWalletKeys;
|
|
|
8
8
|
* Supports both utxolib and wasm-utxo RootWalletKeys.
|
|
9
9
|
* Utxolib keys are converted to wasm-utxo keys for address generation.
|
|
10
10
|
*/
|
|
11
|
-
export declare function getWalletAddress(coinName: CoinName, walletKeys: RootWalletKeys, chain?: 0 |
|
|
11
|
+
export declare function getWalletAddress(coinName: CoinName, walletKeys: RootWalletKeys, chain?: 0 | 10 | 1 | 11 | 20 | 21 | 30 | 31 | 40 | 41, index?: number): string;
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=address.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as utxolib from '@bitgo/utxo-lib';
|
|
2
2
|
import { ECPair, fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
3
|
-
import { UtxoCoinName } from '../../../src/names';
|
|
3
|
+
import type { UtxoCoinName } from '../../../src/names';
|
|
4
4
|
import type { Unspent } from '../../../src/unspent';
|
|
5
5
|
type UtxolibRootWalletKeys = utxolib.bitgo.RootWalletKeys;
|
|
6
6
|
type WasmRootWalletKeys = fixedScriptWallet.RootWalletKeys;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAwC,MAAM,kBAAkB,CAAC;AAEnG,OAAO,
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAwC,MAAM,kBAAkB,CAAC;AAEnG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AAInE,KAAK,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;AAC1D,KAAK,kBAAkB,GAAG,iBAAiB,CAAC,cAAc,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,EAAE,CAAC;IACJ,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,EAAE,CAAC;CACL,CAAC;AAYF,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,kBAAkB,EAC9B,gBAAgB,EAAE,MAAM,EAAE,GACzB,IAAI,CAgBN;AAED,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACvE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GACzC,cAAc,CAehB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,GAAE,QAAQ,GAAG,QAAmB,GACzC,cAAc,CAQhB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAChF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAaxC;AAoBD,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAClF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAChE,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAChD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAKxC;AAED,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAClF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAChE,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAClD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAUxC"}
|
|
@@ -45,11 +45,11 @@ exports.createFullSignedTransaction = createFullSignedTransaction;
|
|
|
45
45
|
const assert_1 = __importDefault(require("assert"));
|
|
46
46
|
const utxolib = __importStar(require("@bitgo/utxo-lib"));
|
|
47
47
|
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
48
|
-
const
|
|
48
|
+
const utxoCoins_1 = require("./utxoCoins");
|
|
49
49
|
const { isWalletUnspent, signInputWithUnspent } = utxolib.bitgo;
|
|
50
50
|
function toTxOutput(u, network) {
|
|
51
51
|
return {
|
|
52
|
-
script: Buffer.from(wasm_utxo_1.address.toOutputScriptWithCoin(u.address, (0,
|
|
52
|
+
script: Buffer.from(wasm_utxo_1.address.toOutputScriptWithCoin(u.address, (0, utxoCoins_1.getCoinNameForNetwork)(network))),
|
|
53
53
|
value: u.value,
|
|
54
54
|
};
|
|
55
55
|
}
|
|
@@ -62,8 +62,12 @@ function assertEqualParsedPsbt(a, b, coinName, walletKeys, replayProtection) {
|
|
|
62
62
|
}
|
|
63
63
|
const aPsbt = wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(a, coinName);
|
|
64
64
|
const bPsbt = wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(b, coinName);
|
|
65
|
-
const aParsed = aPsbt.parseTransactionWithWalletKeys(walletKeys, {
|
|
66
|
-
|
|
65
|
+
const aParsed = aPsbt.parseTransactionWithWalletKeys(walletKeys, {
|
|
66
|
+
replayProtection: { publicKeys: replayProtection },
|
|
67
|
+
});
|
|
68
|
+
const bParsed = bPsbt.parseTransactionWithWalletKeys(walletKeys, {
|
|
69
|
+
replayProtection: { publicKeys: replayProtection },
|
|
70
|
+
});
|
|
67
71
|
assert_1.default.deepStrictEqual(aParsed, bParsed);
|
|
68
72
|
}
|
|
69
73
|
function transactionToObj(tx) {
|
|
@@ -124,4 +128,4 @@ function createFullSignedTransaction(network, unspents, outputAddress, signer, h
|
|
|
124
128
|
}
|
|
125
129
|
return createTransactionBuilderWithSignedInputs(network, unspents, new utxolib.bitgo.WalletUnspentSigner(signer.walletKeys, signer.cosigner, signer.signer), halfSigned).build();
|
|
126
130
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdXRpbC90cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1DQSxzREFrQkM7QUFFRCw0Q0FpQkM7QUFFRCxrREFZQztBQUVELDhEQWlCQztBQW9CRCxrRUFXQztBQUVELGtFQWdCQztBQTFKRCxvREFBNEI7QUFFNUIseURBQTJDO0FBQzNDLGdEQUFtRztBQUVuRyw4Q0FBK0Q7QUFFL0QsTUFBTSxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFrQmhFLFNBQVMsVUFBVSxDQUNqQixDQUFtQixFQUNuQixPQUF3QjtJQUV4QixPQUFPO1FBQ0wsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUEsbUJBQVcsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztLQUNmLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IscUJBQXFCLENBQ25DLENBQVMsRUFDVCxDQUFTLEVBQ1QsUUFBc0IsRUFDdEIsVUFBOEIsRUFDOUIsZ0JBQTBCO0lBRTFCLElBQUksQ0FBQyxJQUFBLHdCQUFZLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksQ0FBQyxJQUFBLHdCQUFZLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLDZCQUFpQixDQUFDLFNBQVMs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UUFDakMsSUFBSSxlQUFlLENBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxvQkFBb0IsQ0FBVSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQTJCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUYsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQWdCLDJCQUEyQixDQUN6QyxPQUF3QixFQUN4QixRQUE0QixFQUM1QixhQUFxQixFQUNyQixNQUFnRSxFQUNoRSxRQUFpRDtJQUVqRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxRQUFRLEdBQUcseUJBQXlCLENBQVUsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBQ0QsT0FBTyx3Q0FBd0MsQ0FBVSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNsSCxDQUFDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQ3pDLE9BQXdCLEVBQ3hCLFFBQTRCLEVBQzVCLGFBQXFCLEVBQ3JCLE1BQWdFLEVBQ2hFLFVBQW1EO0lBRW5ELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixVQUFVLEdBQUcsMkJBQTJCLENBQVUsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELE9BQU8sd0NBQXdDLENBQzdDLE9BQU8sRUFDUCxRQUFRLEVBQ1IsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQ3hGLFVBQVUsQ0FDWCxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgRUNQYWlyLCBmaXhlZFNjcmlwdFdhbGxldCwgaGFzUHNidE1hZ2ljLCBhZGRyZXNzIGFzIHdhc21BZGRyZXNzIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IGdldENvaW5OYW1lLCBVdHhvQ29pbk5hbWUgfSBmcm9tICcuLi8uLi8uLi9zcmMvbmFtZXMnO1xuaW1wb3J0IHR5cGUgeyBVbnNwZW50LCBXYWxsZXRVbnNwZW50IH0gZnJvbSAnLi4vLi4vLi4vc3JjL3Vuc3BlbnQnO1xuY29uc3QgeyBpc1dhbGxldFVuc3BlbnQsIHNpZ25JbnB1dFdpdGhVbnNwZW50IH0gPSB1dHhvbGliLmJpdGdvO1xudHlwZSBVdHhvbGliUm9vdFdhbGxldEtleXMgPSB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzO1xudHlwZSBXYXNtUm9vdFdhbGxldEtleXMgPSBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cztcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uT2JqID0ge1xuICBpZDogc3RyaW5nO1xuICBoZXg6IHN0cmluZztcbiAgaW5zOiB7XG4gICAgdHhpZDogc3RyaW5nO1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgc2NyaXB0U2lnPzogc3RyaW5nO1xuICAgIHdpdG5lc3M/OiBzdHJpbmdbXTtcbiAgfVtdO1xuICBvdXRzOiB7XG4gICAgc2NyaXB0OiBzdHJpbmc7XG4gICAgdmFsdWU6IG51bWJlciB8IHN0cmluZztcbiAgfVtdO1xufTtcblxuZnVuY3Rpb24gdG9UeE91dHB1dDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgdTogVW5zcGVudDxUTnVtYmVyPixcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiB1dHhvbGliLlR4T3V0cHV0PFROdW1iZXI+IHtcbiAgcmV0dXJuIHtcbiAgICBzY3JpcHQ6IEJ1ZmZlci5mcm9tKHdhc21BZGRyZXNzLnRvT3V0cHV0U2NyaXB0V2l0aENvaW4odS5hZGRyZXNzLCBnZXRDb2luTmFtZShuZXR3b3JrKSkpLFxuICAgIHZhbHVlOiB1LnZhbHVlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RXF1YWxQYXJzZWRQc2J0KFxuICBhOiBCdWZmZXIsXG4gIGI6IEJ1ZmZlcixcbiAgY29pbk5hbWU6IFV0eG9Db2luTmFtZSxcbiAgd2FsbGV0S2V5czogV2FzbVJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBFQ1BhaXJbXVxuKTogdm9pZCB7XG4gIGlmICghaGFzUHNidE1hZ2ljKGEpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdhIGlzIG5vdCBhIHBzYnQnKTtcbiAgfVxuICBpZiAoIWhhc1BzYnRNYWdpYyhiKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignYiBpcyBub3QgYSBwc2J0Jyk7XG4gIH1cbiAgY29uc3QgYVBzYnQgPSBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKGEsIGNvaW5OYW1lKTtcbiAgY29uc3QgYlBzYnQgPSBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKGIsIGNvaW5OYW1lKTtcbiAgY29uc3QgYVBhcnNlZCA9IGFQc2J0LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyh3YWxsZXRLZXlzLCB7IHB1YmxpY0tleXM6IHJlcGxheVByb3RlY3Rpb24gfSk7XG4gIGNvbnN0IGJQYXJzZWQgPSBiUHNidC5wYXJzZVRyYW5zYWN0aW9uV2l0aFdhbGxldEtleXMod2FsbGV0S2V5cywgeyBwdWJsaWNLZXlzOiByZXBsYXlQcm90ZWN0aW9uIH0pO1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGFQYXJzZWQsIGJQYXJzZWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNhY3Rpb25Ub09iajxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+XG4pOiBUcmFuc2FjdGlvbk9iaiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IHR4LmdldElkKCksXG4gICAgaGV4OiB0eC50b0J1ZmZlcigpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBpbnM6IHR4Lmlucy5tYXAoKHYpID0+ICh7XG4gICAgICB0eGlkOiBCdWZmZXIuZnJvbSh2Lmhhc2gpLnJldmVyc2UoKS50b1N0cmluZygnaGV4JyksXG4gICAgICBpbmRleDogdi5pbmRleCxcbiAgICAgIHNjcmlwdDogdi5zY3JpcHQ/LnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHdpdG5lc3M6IHYud2l0bmVzcz8ubWFwKCh2KSA9PiB2LnRvU3RyaW5nKCdoZXgnKSksXG4gICAgfSkpLFxuICAgIG91dHM6IHR4Lm91dHMubWFwKCh2KSA9PiAoe1xuICAgICAgc2NyaXB0OiB2LnNjcmlwdC50b1N0cmluZygnaGV4JyksXG4gICAgICB2YWx1ZTogdHlwZW9mIHYudmFsdWUgPT09ICdiaWdpbnQnID8gdi52YWx1ZS50b1N0cmluZygpIDogKHYudmFsdWUgYXMgbnVtYmVyKSxcbiAgICB9KSksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2FjdGlvbkhleFRvT2JqKFxuICB0eEhleDogc3RyaW5nLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIGFtb3VudFR5cGU6ICdudW1iZXInIHwgJ2JpZ2ludCcgPSAnbnVtYmVyJ1xuKTogVHJhbnNhY3Rpb25PYmoge1xuICBjb25zdCBvYmogPSB0cmFuc2FjdGlvblRvT2JqKFxuICAgIHV0eG9saWIuYml0Z28uY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHR4SGV4LCAnaGV4JyksIG5ldHdvcmssIHsgYW1vdW50VHlwZSB9KVxuICApO1xuICBpZiAob2JqLmhleCAhPT0gdHhIZXgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHNlcmlhbGl6ZWQgdHhIZXggZG9lcyBub3QgbWF0Y2ggaW5wdXRgKTtcbiAgfVxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJlYnVpbGRUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB1bnNwZW50czogVW5zcGVudDxUTnVtYmVyPltdLFxuICBvdXRwdXRBZGRyZXNzOiBzdHJpbmdcbik6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+IHtcbiAgY29uc3QgdHhiID0gdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJGb3JOZXR3b3JrPFROdW1iZXI+KG5ldHdvcmspO1xuICB1bnNwZW50cy5mb3JFYWNoKCh1KSA9PiB7XG4gICAgY29uc3QgW3R4aWQsIHZpbl0gPSB1LmlkLnNwbGl0KCc6Jyk7XG4gICAgdHhiLmFkZElucHV0KHR4aWQsIE51bWJlcih2aW4pKTtcbiAgfSk7XG4gIGNvbnN0IGFtb3VudFR5cGUgPSB1bnNwZW50cy5sZW5ndGggPiAwICYmIHR5cGVvZiB1bnNwZW50c1swXS52YWx1ZSA9PT0gJ2JpZ2ludCcgPyAnYmlnaW50JyA6ICdudW1iZXInO1xuICBpZiAoYW1vdW50VHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICB1bnNwZW50cy5mb3JFYWNoKCh1KSA9PiAodS52YWx1ZSA9IE1hdGgucm91bmQodS52YWx1ZSBhcyBudW1iZXIpIGFzIFROdW1iZXIpKTtcbiAgfVxuICBjb25zdCB1bnNwZW50U3VtID0gdXR4b2xpYi5iaXRnby51bnNwZW50U3VtPFROdW1iZXI+KHVuc3BlbnRzLCBhbW91bnRUeXBlKTtcbiAgdHhiLmFkZE91dHB1dChvdXRwdXRBZGRyZXNzLCB1dHhvbGliLmJpdGdvLnRvVE51bWJlcjxUTnVtYmVyPihCaWdJbnQodW5zcGVudFN1bSkgLSBCaWdJbnQoMTAwMCksIGFtb3VudFR5cGUpKTtcbiAgcmV0dXJuIHR4Yi5idWlsZEluY29tcGxldGUoKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyV2l0aFNpZ25lZElucHV0czxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB1bnNwZW50czogVW5zcGVudDxUTnVtYmVyPltdLFxuICBzaWduZXI6IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudFNpZ25lcjxVdHhvbGliUm9vdFdhbGxldEtleXM+LFxuICBpbnB1dFRyYW5zYWN0aW9uOiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPlxuKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+IHtcbiAgY29uc3QgdHhCdWlsZGVyID0gdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJGcm9tVHJhbnNhY3Rpb248VE51bWJlcj4oXG4gICAgaW5wdXRUcmFuc2FjdGlvbixcbiAgICB1bnNwZW50cy5tYXAoKHUpID0+IHRvVHhPdXRwdXQ8VE51bWJlcj4odSwgbmV0d29yaykpXG4gICk7XG4gIHVuc3BlbnRzLmZvckVhY2goKHUsIGlucHV0SW5kZXgpID0+IHtcbiAgICBpZiAoaXNXYWxsZXRVbnNwZW50PFROdW1iZXI+KHUpKSB7XG4gICAgICBzaWduSW5wdXRXaXRoVW5zcGVudDxUTnVtYmVyPih0eEJ1aWxkZXIsIGlucHV0SW5kZXgsIHUgYXMgV2FsbGV0VW5zcGVudDxUTnVtYmVyPiwgc2lnbmVyKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gdHhCdWlsZGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGFsZlNpZ25lZFRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIHVuc3BlbnRzOiBVbnNwZW50PFROdW1iZXI+W10sXG4gIG91dHB1dEFkZHJlc3M6IHN0cmluZyxcbiAgc2lnbmVyOiB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnRTaWduZXI8VXR4b2xpYlJvb3RXYWxsZXRLZXlzPixcbiAgcHJlYnVpbGQ/OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPlxuKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICBpZiAoIXByZWJ1aWxkKSB7XG4gICAgcHJlYnVpbGQgPSBjcmVhdGVQcmVidWlsZFRyYW5zYWN0aW9uPFROdW1iZXI+KG5ldHdvcmssIHVuc3BlbnRzLCBvdXRwdXRBZGRyZXNzKTtcbiAgfVxuICByZXR1cm4gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyV2l0aFNpZ25lZElucHV0czxUTnVtYmVyPihuZXR3b3JrLCB1bnNwZW50cywgc2lnbmVyLCBwcmVidWlsZCkuYnVpbGRJbmNvbXBsZXRlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGdWxsU2lnbmVkVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgdW5zcGVudHM6IFVuc3BlbnQ8VE51bWJlcj5bXSxcbiAgb3V0cHV0QWRkcmVzczogc3RyaW5nLFxuICBzaWduZXI6IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudFNpZ25lcjxVdHhvbGliUm9vdFdhbGxldEtleXM+LFxuICBoYWxmU2lnbmVkPzogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj5cbik6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+IHtcbiAgaWYgKCFoYWxmU2lnbmVkKSB7XG4gICAgaGFsZlNpZ25lZCA9IGNyZWF0ZUhhbGZTaWduZWRUcmFuc2FjdGlvbjxUTnVtYmVyPihuZXR3b3JrLCB1bnNwZW50cywgb3V0cHV0QWRkcmVzcywgc2lnbmVyKTtcbiAgfVxuICByZXR1cm4gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyV2l0aFNpZ25lZElucHV0czxUTnVtYmVyPihcbiAgICBuZXR3b3JrLFxuICAgIHVuc3BlbnRzLFxuICAgIG5ldyB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnRTaWduZXIoc2lnbmVyLndhbGxldEtleXMsIHNpZ25lci5jb3NpZ25lciwgc2lnbmVyLnNpZ25lciksXG4gICAgaGFsZlNpZ25lZFxuICApLmJ1aWxkKCk7XG59XG4iXX0=
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdXRpbC90cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFDQSxzREFzQkM7QUFFRCw0Q0FpQkM7QUFFRCxrREFZQztBQUVELDhEQWlCQztBQW9CRCxrRUFXQztBQUVELGtFQWdCQztBQWhLRCxvREFBNEI7QUFFNUIseURBQTJDO0FBQzNDLGdEQUFtRztBQUtuRywyQ0FBb0Q7QUFDcEQsTUFBTSxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFrQmhFLFNBQVMsVUFBVSxDQUNqQixDQUFtQixFQUNuQixPQUF3QjtJQUV4QixPQUFPO1FBQ0wsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUEsaUNBQXFCLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7S0FDZixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHFCQUFxQixDQUNuQyxDQUFTLEVBQ1QsQ0FBUyxFQUNULFFBQXNCLEVBQ3RCLFVBQThCLEVBQzlCLGdCQUEwQjtJQUUxQixJQUFJLENBQUMsSUFBQSx3QkFBWSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBQSx3QkFBWSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyw2QkFBaUIsQ0FBQyxTQUFT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dCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBFQ1BhaXIsIGZpeGVkU2NyaXB0V2FsbGV0LCBoYXNQc2J0TWFnaWMsIGFkZHJlc3MgYXMgd2FzbUFkZHJlc3MgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHR5cGUgeyBVdHhvQ29pbk5hbWUgfSBmcm9tICcuLi8uLi8uLi9zcmMvbmFtZXMnO1xuaW1wb3J0IHR5cGUgeyBVbnNwZW50LCBXYWxsZXRVbnNwZW50IH0gZnJvbSAnLi4vLi4vLi4vc3JjL3Vuc3BlbnQnO1xuXG5pbXBvcnQgeyBnZXRDb2luTmFtZUZvck5ldHdvcmsgfSBmcm9tICcuL3V0eG9Db2lucyc7XG5jb25zdCB7IGlzV2FsbGV0VW5zcGVudCwgc2lnbklucHV0V2l0aFVuc3BlbnQgfSA9IHV0eG9saWIuYml0Z287XG50eXBlIFV0eG9saWJSb290V2FsbGV0S2V5cyA9IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXM7XG50eXBlIFdhc21Sb290V2FsbGV0S2V5cyA9IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzO1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25PYmogPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGhleDogc3RyaW5nO1xuICBpbnM6IHtcbiAgICB0eGlkOiBzdHJpbmc7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICBzY3JpcHRTaWc/OiBzdHJpbmc7XG4gICAgd2l0bmVzcz86IHN0cmluZ1tdO1xuICB9W107XG4gIG91dHM6IHtcbiAgICBzY3JpcHQ6IHN0cmluZztcbiAgICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuICB9W107XG59O1xuXG5mdW5jdGlvbiB0b1R4T3V0cHV0PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICB1OiBVbnNwZW50PFROdW1iZXI+LFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IHV0eG9saWIuVHhPdXRwdXQ8VE51bWJlcj4ge1xuICByZXR1cm4ge1xuICAgIHNjcmlwdDogQnVmZmVyLmZyb20od2FzbUFkZHJlc3MudG9PdXRwdXRTY3JpcHRXaXRoQ29pbih1LmFkZHJlc3MsIGdldENvaW5OYW1lRm9yTmV0d29yayhuZXR3b3JrKSkpLFxuICAgIHZhbHVlOiB1LnZhbHVlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RXF1YWxQYXJzZWRQc2J0KFxuICBhOiBCdWZmZXIsXG4gIGI6IEJ1ZmZlcixcbiAgY29pbk5hbWU6IFV0eG9Db2luTmFtZSxcbiAgd2FsbGV0S2V5czogV2FzbVJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBFQ1BhaXJbXVxuKTogdm9pZCB7XG4gIGlmICghaGFzUHNidE1hZ2ljKGEpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdhIGlzIG5vdCBhIHBzYnQnKTtcbiAgfVxuICBpZiAoIWhhc1BzYnRNYWdpYyhiKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignYiBpcyBub3QgYSBwc2J0Jyk7XG4gIH1cbiAgY29uc3QgYVBzYnQgPSBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKGEsIGNvaW5OYW1lKTtcbiAgY29uc3QgYlBzYnQgPSBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKGIsIGNvaW5OYW1lKTtcbiAgY29uc3QgYVBhcnNlZCA9IGFQc2J0LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyh3YWxsZXRLZXlzLCB7XG4gICAgcmVwbGF5UHJvdGVjdGlvbjogeyBwdWJsaWNLZXlzOiByZXBsYXlQcm90ZWN0aW9uIH0sXG4gIH0pO1xuICBjb25zdCBiUGFyc2VkID0gYlBzYnQucGFyc2VUcmFuc2FjdGlvbldpdGhXYWxsZXRLZXlzKHdhbGxldEtleXMsIHtcbiAgICByZXBsYXlQcm90ZWN0aW9uOiB7IHB1YmxpY0tleXM6IHJlcGxheVByb3RlY3Rpb24gfSxcbiAgfSk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYVBhcnNlZCwgYlBhcnNlZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2FjdGlvblRvT2JqPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICB0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj5cbik6IFRyYW5zYWN0aW9uT2JqIHtcbiAgcmV0dXJuIHtcbiAgICBpZDogdHguZ2V0SWQoKSxcbiAgICBoZXg6IHR4LnRvQnVmZmVyKCkudG9TdHJpbmcoJ2hleCcpLFxuICAgIGluczogdHguaW5zLm1hcCgodikgPT4gKHtcbiAgICAgIHR4aWQ6IEJ1ZmZlci5mcm9tKHYuaGFzaCkucmV2ZXJzZSgpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIGluZGV4OiB2LmluZGV4LFxuICAgICAgc2NyaXB0OiB2LnNjcmlwdD8udG9TdHJpbmcoJ2hleCcpLFxuICAgICAgd2l0bmVzczogdi53aXRuZXNzPy5tYXAoKHYpID0+IHYudG9TdHJpbmcoJ2hleCcpKSxcbiAgICB9KSksXG4gICAgb3V0czogdHgub3V0cy5tYXAoKHYpID0+ICh7XG4gICAgICBzY3JpcHQ6IHYuc2NyaXB0LnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHZhbHVlOiB0eXBlb2Ygdi52YWx1ZSA9PT0gJ2JpZ2ludCcgPyB2LnZhbHVlLnRvU3RyaW5nKCkgOiAodi52YWx1ZSBhcyBudW1iZXIpLFxuICAgIH0pKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zYWN0aW9uSGV4VG9PYmooXG4gIHR4SGV4OiBzdHJpbmcsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50JyA9ICdudW1iZXInXG4pOiBUcmFuc2FjdGlvbk9iaiB7XG4gIGNvbnN0IG9iaiA9IHRyYW5zYWN0aW9uVG9PYmooXG4gICAgdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIoQnVmZmVyLmZyb20odHhIZXgsICdoZXgnKSwgbmV0d29yaywgeyBhbW91bnRUeXBlIH0pXG4gICk7XG4gIGlmIChvYmouaGV4ICE9PSB0eEhleCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgc2VyaWFsaXplZCB0eEhleCBkb2VzIG5vdCBtYXRjaCBpbnB1dGApO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcmVidWlsZFRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIHVuc3BlbnRzOiBVbnNwZW50PFROdW1iZXI+W10sXG4gIG91dHB1dEFkZHJlc3M6IHN0cmluZ1xuKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICBjb25zdCB0eGIgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZvck5ldHdvcms8VE51bWJlcj4obmV0d29yayk7XG4gIHVuc3BlbnRzLmZvckVhY2goKHUpID0+IHtcbiAgICBjb25zdCBbdHhpZCwgdmluXSA9IHUuaWQuc3BsaXQoJzonKTtcbiAgICB0eGIuYWRkSW5wdXQodHhpZCwgTnVtYmVyKHZpbikpO1xuICB9KTtcbiAgY29uc3QgYW1vdW50VHlwZSA9IHVuc3BlbnRzLmxlbmd0aCA+IDAgJiYgdHlwZW9mIHVuc3BlbnRzWzBdLnZhbHVlID09PSAnYmlnaW50JyA/ICdiaWdpbnQnIDogJ251bWJlcic7XG4gIGlmIChhbW91bnRUeXBlID09PSAnbnVtYmVyJykge1xuICAgIHVuc3BlbnRzLmZvckVhY2goKHUpID0+ICh1LnZhbHVlID0gTWF0aC5yb3VuZCh1LnZhbHVlIGFzIG51bWJlcikgYXMgVE51bWJlcikpO1xuICB9XG4gIGNvbnN0IHVuc3BlbnRTdW0gPSB1dHhvbGliLmJpdGdvLnVuc3BlbnRTdW08VE51bWJlcj4odW5zcGVudHMsIGFtb3VudFR5cGUpO1xuICB0eGIuYWRkT3V0cHV0KG91dHB1dEFkZHJlc3MsIHV0eG9saWIuYml0Z28udG9UTnVtYmVyPFROdW1iZXI+KEJpZ0ludCh1bnNwZW50U3VtKSAtIEJpZ0ludCgxMDAwKSwgYW1vdW50VHlwZSkpO1xuICByZXR1cm4gdHhiLmJ1aWxkSW5jb21wbGV0ZSgpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJXaXRoU2lnbmVkSW5wdXRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIHVuc3BlbnRzOiBVbnNwZW50PFROdW1iZXI+W10sXG4gIHNpZ25lcjogdXR4b2xpYi5iaXRnby5XYWxsZXRVbnNwZW50U2lnbmVyPFV0eG9saWJSb290V2FsbGV0S2V5cz4sXG4gIGlucHV0VHJhbnNhY3Rpb246IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+XG4pOiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4ge1xuICBjb25zdCB0eEJ1aWxkZXIgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZyb21UcmFuc2FjdGlvbjxUTnVtYmVyPihcbiAgICBpbnB1dFRyYW5zYWN0aW9uLFxuICAgIHVuc3BlbnRzLm1hcCgodSkgPT4gdG9UeE91dHB1dDxUTnVtYmVyPih1LCBuZXR3b3JrKSlcbiAgKTtcbiAgdW5zcGVudHMuZm9yRWFjaCgodSwgaW5wdXRJbmRleCkgPT4ge1xuICAgIGlmIChpc1dhbGxldFVuc3BlbnQ8VE51bWJlcj4odSkpIHtcbiAgICAgIHNpZ25JbnB1dFdpdGhVbnNwZW50PFROdW1iZXI+KHR4QnVpbGRlciwgaW5wdXRJbmRleCwgdSBhcyBXYWxsZXRVbnNwZW50PFROdW1iZXI+LCBzaWduZXIpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB0eEJ1aWxkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIYWxmU2lnbmVkVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgdW5zcGVudHM6IFVuc3BlbnQ8VE51bWJlcj5bXSxcbiAgb3V0cHV0QWRkcmVzczogc3RyaW5nLFxuICBzaWduZXI6IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudFNpZ25lcjxVdHhvbGliUm9vdFdhbGxldEtleXM+LFxuICBwcmVidWlsZD86IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+XG4pOiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gIGlmICghcHJlYnVpbGQpIHtcbiAgICBwcmVidWlsZCA9IGNyZWF0ZVByZWJ1aWxkVHJhbnNhY3Rpb248VE51bWJlcj4obmV0d29yaywgdW5zcGVudHMsIG91dHB1dEFkZHJlc3MpO1xuICB9XG4gIHJldHVybiBjcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJXaXRoU2lnbmVkSW5wdXRzPFROdW1iZXI+KG5ldHdvcmssIHVuc3BlbnRzLCBzaWduZXIsIHByZWJ1aWxkKS5idWlsZEluY29tcGxldGUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZ1bGxTaWduZWRUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB1bnNwZW50czogVW5zcGVudDxUTnVtYmVyPltdLFxuICBvdXRwdXRBZGRyZXNzOiBzdHJpbmcsXG4gIHNpZ25lcjogdXR4b2xpYi5iaXRnby5XYWxsZXRVbnNwZW50U2lnbmVyPFV0eG9saWJSb290V2FsbGV0S2V5cz4sXG4gIGhhbGZTaWduZWQ/OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPlxuKTogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICBpZiAoIWhhbGZTaWduZWQpIHtcbiAgICBoYWxmU2lnbmVkID0gY3JlYXRlSGFsZlNpZ25lZFRyYW5zYWN0aW9uPFROdW1iZXI+KG5ldHdvcmssIHVuc3BlbnRzLCBvdXRwdXRBZGRyZXNzLCBzaWduZXIpO1xuICB9XG4gIHJldHVybiBjcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJXaXRoU2lnbmVkSW5wdXRzPFROdW1iZXI+KFxuICAgIG5ldHdvcmssXG4gICAgdW5zcGVudHMsXG4gICAgbmV3IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudFNpZ25lcihzaWduZXIud2FsbGV0S2V5cywgc2lnbmVyLmNvc2lnbmVyLCBzaWduZXIuc2lnbmVyKSxcbiAgICBoYWxmU2lnbmVkXG4gICkuYnVpbGQoKTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unspents.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/unspents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAI7C,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"unspents.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/unspents.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,7 @@ const sdk_test_1 = require("@bitgo/sdk-test");
|
|
|
45
45
|
const wasmUtxo = __importStar(require("@bitgo/wasm-utxo"));
|
|
46
46
|
const src_1 = require("../../../src");
|
|
47
47
|
const names_1 = require("../../../src/names");
|
|
48
|
+
const utxoCoins_1 = require("./utxoCoins");
|
|
48
49
|
const address_1 = require("./address");
|
|
49
50
|
const { chainCodesP2sh, getExternalChainCode, getInternalChainCode } = utxolib.bitgo;
|
|
50
51
|
function toCoinName(network) {
|
|
@@ -54,7 +55,7 @@ function toCoinName(network) {
|
|
|
54
55
|
}
|
|
55
56
|
return network;
|
|
56
57
|
}
|
|
57
|
-
return (0,
|
|
58
|
+
return (0, utxoCoins_1.getCoinNameForNetwork)(network);
|
|
58
59
|
}
|
|
59
60
|
const defaultChain = getExternalChainCode(chainCodesP2sh);
|
|
60
61
|
function mockOutputIdForAddress(address) {
|
|
@@ -220,4 +221,4 @@ function toUnspentWithPrevTx(input, index, network, rootWalletKeys) {
|
|
|
220
221
|
prevTx,
|
|
221
222
|
};
|
|
222
223
|
}
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zcGVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdXRpbC91bnNwZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThDQSw4Q0E2QkM7QUFFRCxrRUFlQztBQUVELGtDQVlDO0FBTUQsOEJBYUM7QUFzQkQsMERBb0JDO0FBZUQsNENBaURDO0FBU0Qsa0RBNEJDO0FBNVFELHlEQUEyQztBQUMzQyw4Q0FBMEM7QUFDMUMsMkRBQTZDO0FBRTdDLHNDQUE0RDtBQUM1RCw4Q0FBb0Y7QUFHcEYsdUNBQTZDO0FBRTdDLE1BQU0sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBVXJGLFNBQVMsVUFBVSxDQUFDLE9BQW1CO0lBQ3JDLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUEsc0JBQWMsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxPQUFPLElBQUEsbUJBQVcsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBWUQsTUFBTSxZQUFZLEdBQWMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFckUsU0FBUyxzQkFBc0IsQ0FBQyxPQUFlO0lBQzdDLE9BQU8sSUFBQSxrQkFBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixPQUFtQixFQUNuQixVQUEwQixFQUMxQixFQUFFLEVBQUUsRUFBRSxLQUFLLEdB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R0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFckMsK0NBQStDO0lBQy9DLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFckcsMkNBQTJDO0lBQzNDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFeEUseUJBQXlCO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUEsMEJBQWdCLEVBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFcEYsd0RBQXdEO0lBQ3hELE9BQU87UUFDTCxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUk7UUFDZixPQUFPO1FBQ1AsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTTtLQUNQLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgZ2V0U2VlZCB9IGZyb20gJ0BiaXRnby9zZGstdGVzdCc7XG5pbXBvcnQgKiBhcyB3YXNtVXR4byBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgZ2V0UmVwbGF5UHJvdGVjdGlvbkFkZHJlc3NlcyB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBnZXRDb2luTmFtZSwgaXNVdHhvQ29pbk5hbWUsIHR5cGUgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vLi4vLi4vc3JjL25hbWVzJztcbmltcG9ydCB0eXBlIHsgVW5zcGVudCwgVW5zcGVudFdpdGhQcmV2VHgsIFdhbGxldFVuc3BlbnQgfSBmcm9tICcuLi8uLi8uLi9zcmMvdW5zcGVudCc7XG5cbmltcG9ydCB7IGdldFdhbGxldEFkZHJlc3MgfSBmcm9tICcuL2FkZHJlc3MnO1xuXG5jb25zdCB7IGNoYWluQ29kZXNQMnNoLCBnZXRFeHRlcm5hbENoYWluQ29kZSwgZ2V0SW50ZXJuYWxDaGFpbkNvZGUgfSA9IHV0eG9saWIuYml0Z287XG5cbmV4cG9ydCB0eXBlIFV0eG9saWJSb290V2FsbGV0S2V5cyA9IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXM7XG5leHBvcnQgdHlwZSBXYXNtUm9vdFdhbGxldEtleXMgPSB3YXNtVXR4by5maXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cztcbmV4cG9ydCB0eXBlIFJvb3RXYWxsZXRLZXlzID0gVXR4b2xpYlJvb3RXYWxsZXRLZXlzIHwgV2FzbVJvb3RXYWxsZXRLZXlzO1xudHlwZSBDaGFpbkNvZGUgPSB1dHhvbGliLmJpdGdvLkNoYWluQ29kZTtcblxuLyoqIEFjY2VwdCBlaXRoZXIgYSBjb2luIG5hbWUgc3RyaW5nIG9yIGEgdXR4b2xpYi5OZXR3b3JrIG9iamVjdCAqL1xuZXhwb3J0IHR5cGUgTmV0d29ya0FyZyA9IHN0cmluZyB8IHV0eG9saWIuTmV0d29yaztcblxuZnVuY3Rpb24gdG9Db2luTmFtZShuZXR3b3JrOiBOZXR3b3JrQXJnKTogVXR4b0NvaW5OYW1lIHtcbiAgaWYgKHR5cGVvZiBuZXR3b3JrID09PSAnc3RyaW5nJykge1xuICAgIGlmICghaXNVdHhvQ29pbk5hbWUobmV0d29yaykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbm90IGEgdmFsaWQgY29pbiBuYW1lOiAke25ldHdvcmt9YCk7XG4gICAgfVxuICAgIHJldHVybiBuZXR3b3JrO1xuICB9XG4gIHJldHVybiBnZXRDb2luTmFtZShuZXR3b3JrKTtcbn1cblxuZXhwb3J0IHR5cGUgSW5wdXRTY3JpcHRUeXBlID0gdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzIHwgJ3JlcGxheVByb3RlY3Rpb24nO1xuXG4vKipcbiAqIElucHV0IGRlZmluaXRpb24gZm9yIHRvVW5zcGVudCBmdW5jdGlvblxuICovXG5leHBvcnQgdHlwZSBJbnB1dCA9IHtcbiAgc2NyaXB0VHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzIHwgJ3RhcHJvb3RLZXlQYXRoU3BlbmQnO1xuICB2YWx1ZTogYmlnaW50O1xufTtcblxuY29uc3QgZGVmYXVsdENoYWluOiBDaGFpbkNvZGUgPSBnZXRFeHRlcm5hbENoYWluQ29kZShjaGFpbkNvZGVzUDJzaCk7XG5cbmZ1bmN0aW9uIG1vY2tPdXRwdXRJZEZvckFkZHJlc3MoYWRkcmVzczogc3RyaW5nKSB7XG4gIHJldHVybiBnZXRTZWVkKGFkZHJlc3MpLnRvU3RyaW5nKCdoZXgnKSArICc6MSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrV2FsbGV0VW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogTmV0d29ya0FyZyxcbiAgd2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHsgaWQsIGNoYWluID0gZGVmYXVsdENoYWluLCBpbmRleCA9IDAsIHZhbHVlLCBhZGRyZXNzIH06IFBhcnRpYWw8V2FsbGV0VW5zcGVudDxUTnVtYmVyPj5cbik6IFdhbGxldFVuc3BlbnQ8VE51bWJlcj4ge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5zcGVudCB2YWx1ZSBtdXN0IGJlIHNldGApO1xuICB9XG4gIGlmIChjaGFpbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bnNwZW50IGNoYWluIG11c3QgYmUgc2V0YCk7XG4gIH1cbiAgY29uc3QgZGVyaXZlQWRkcmVzcyA9IGdldFdhbGxldEFkZHJlc3ModG9Db2luTmFtZShuZXR3b3JrKSwgd2FsbGV0S2V5cywgY2hhaW4sIGluZGV4KTtcbiAgaWYgKGFkZHJlc3MpIHtcbiAgICBpZiAoYWRkcmVzcyAhPT0gZGVyaXZlQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBkZXJpdmVkQWRkcmVzcyBtaXNtYXRjaDogJHthZGRyZXNzfSBkZXJpdmVkPSR7ZGVyaXZlQWRkcmVzc31gKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYWRkcmVzcyA9IGRlcml2ZUFkZHJlc3M7XG4gIH1cbiAgaWYgKCFpZCkge1xuICAgIGlkID0gbW9ja091dHB1dElkRm9yQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIGFkZHJlc3MsXG4gICAgY2hhaW4sXG4gICAgaW5kZXgsXG4gICAgdmFsdWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrVW5zcGVudFJlcGxheVByb3RlY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIG5ldHdvcms6IE5ldHdvcmtBcmcsXG4gIHZhbHVlOiBUTnVtYmVyXG4pOiBVbnNwZW50PFROdW1iZXI+IHtcbiAgY29uc3QgY29pbk5hbWUgPSB0b0NvaW5OYW1lKG5ldHdvcmspO1xuICBjb25zdCBhZGRyZXNzZXMgPSBnZXRSZXBsYXlQcm90ZWN0aW9uQWRkcmVzc2VzKGNvaW5OYW1lKTtcbiAgaWYgKGFkZHJlc3Nlcy5sZW5ndGgpIHtcbiAgICBjb25zdCBhZGRyZXNzID0gYWRkcmVzc2VzWzBdO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogbW9ja091dHB1dElkRm9yQWRkcmVzcyhhZGRyZXNzKSxcbiAgICAgIGFkZHJlc3MsXG4gICAgICB2YWx1ZSxcbiAgICB9O1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgJHtjb2luTmFtZX0gaGFzIG5vIHJlcGxheSBwcm90ZWN0aW9uIHVuc3BlbnRzYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrVW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogTmV0d29ya0FyZyxcbiAgd2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIGNoYWluOiBDaGFpbkNvZGUgfCBJbnB1dFNjcmlwdFR5cGUsXG4gIGluZGV4OiBudW1iZXIsXG4gIHZhbHVlOiBUTnVtYmVyXG4pOiBVbnNwZW50PFROdW1iZXI+IHtcbiAgaWYgKGNoYWluID09PSAncmVwbGF5UHJvdGVjdGlvbicpIHtcbiAgICByZXR1cm4gbW9ja1Vuc3BlbnRSZXBsYXlQcm90ZWN0aW9uKG5ldHdvcmssICh0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnID8gQmlnSW50KDEwMDApIDogMTAwMCkgYXMgVE51bWJlcik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG1vY2tXYWxsZXRVbnNwZW50KG5ldHdvcmssIHdhbGxldEtleXMsIHsgY2hhaW46IGdldEludGVybmFsQ2hhaW5Db2RlKGNoYWluKSwgdmFsdWUsIGluZGV4IH0pO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIHVuc3BlbnQgb2JqZWN0IGZyb20gaW5wdXQgc2NyaXB0IHR5cGUsIGluZGV4LCBuZXR3b3JrIGFuZCByb290IHdhbGxldCBrZXlzLlxuICogU3VwcG9ydHMgYm90aCB1dHhvbGliIGFuZCB3YXNtLXV0eG8gUm9vdFdhbGxldEtleXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Vuc3BlbnQoXG4gIGlucHV0OiBJbnB1dCxcbiAgaW5kZXg6IG51bWJlcixcbiAgbmV0d29yazogTmV0d29ya0FyZyxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzXG4pOiBXYWxsZXRVbnNwZW50PGJpZ2ludD4ge1xuICBjb25zdCBzY3JpcHRUeXBlID0gaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnID8gJ3AydHJNdXNpZzInIDogaW5wdXQuc2NyaXB0VHlwZTtcbiAgY29uc3QgY2hhaW4gPSBnZXRJbnRlcm5hbENoYWluQ29kZShzY3JpcHRUeXBlKTtcbiAgcmV0dXJuIG1vY2tXYWxsZXRVbnNwZW50KG5ldHdvcmssIHJvb3RXYWxsZXRLZXlzLCB7XG4gICAgY2hhaW4sXG4gICAgaW5kZXgsXG4gICAgdmFsdWU6IGlucHV0LnZhbHVlLFxuICB9KTtcbn1cblxuLyoqXG4gKiBXYWxsZXQgdW5zcGVudCB3aXRoIHByZXZUeCAtIGNvbWJpbmVzIFdhbGxldFVuc3BlbnQgYW5kIFVuc3BlbnRXaXRoUHJldlR4XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0VW5zcGVudFdpdGhQcmV2VHg8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj5cbiAgZXh0ZW5kcyBXYWxsZXRVbnNwZW50PFROdW1iZXI+LFxuICAgIFVuc3BlbnRXaXRoUHJldlR4PFROdW1iZXI+IHt9XG5cbi8qKlxuICogQ3JlYXRlIGEgbW9jayB3YWxsZXQgdW5zcGVudCB1c2luZyB3YXNtLXV0eG8gb25seSAobm8gdXR4b2xpYiBkZXBlbmRlbmN5KS5cbiAqIFVzZXMgY3JlYXRlTW9ja1ByZXZUeCB0byBnZW5lcmF0ZSBhIHJlYWxpc3RpYyB0eGlkIGZvciB0aGUgdW5zcGVudC5cbiAqXG4gKiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGVzdHMgdGhhdCBuZWVkIGEgdmFsaWQgdW5zcGVudCBidXQgZG9uJ3QgcmVxdWlyZSB0aGUgcHJldlR4IGJ1ZmZlci5cbiAqXG4gKiBAcGFyYW0gYWRkcmVzcyAtIFRoZSB3YWxsZXQgYWRkcmVzcyBmb3IgdGhlIHVuc3BlbnRcbiAqIEBwYXJhbSBjaGFpbiAtIFRoZSBkZXJpdmF0aW9uIGNoYWluXG4gKiBAcGFyYW0gaW5kZXggLSBUaGUgZGVyaXZhdGlvbiBpbmRleFxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIGluIHNhdG9zaGlzIChiaWdpbnQpXG4gKiBAcGFyYW0gbmV0d29yayAtIFRoZSBuZXR3b3JrIHRvIGdldCB0aGUgb3V0cHV0IHNjcmlwdFxuICogQHJldHVybnMgV2FsbGV0VW5zcGVudCB3aXRoIGEgdmFsaWQgdHhpZCBmcm9tIGEgd2FzbS11dHhvIGdlbmVyYXRlZCB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlV2FzbVdhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IGJpZ2ludD4oXG4gIGFkZHJlc3M6IHN0cmluZyxcbiAgY2hhaW46IENoYWluQ29kZSxcbiAgaW5kZXg6IG51bWJlcixcbiAgdmFsdWU6IFROdW1iZXIsXG4gIG5ldHdvcms6IE5ldHdvcmtBcmdcbik6IFdhbGxldFVuc3BlbnQ8VE51bWJlcj4ge1xuICAvLyBHZXQgb3V0cHV0IHNjcmlwdCBmcm9tIGFkZHJlc3MgdXNpbmcgY29ycmVjdCB3YXNtLXV0eG8gZnVuY3Rpb25cbiAgY29uc3Qgb3V0cHV0U2NyaXB0ID0gd2FzbVV0eG8uYWRkcmVzcy50b091dHB1dFNjcmlwdFdpdGhDb2luKGFkZHJlc3MsIHRvQ29pbk5hbWUobmV0d29yaykpO1xuXG4gIC8vIENyZWF0ZSBhIG1vY2sgdHJhbnNhY3Rpb24gd2l0aCBvdXRwdXQgYXQgdm91dD0wXG4gIGNvbnN0IHsgdHhpZCB9ID0gY3JlYXRlTW9ja1ByZXZUeCgwLCBvdXRwdXRTY3JpcHQsIEJpZ0ludCh2YWx1ZSkpO1xuXG4gIHJldHVybiB7XG4gICAgaWQ6IGAke3R4aWR9OjBgLFxuICAgIGFkZHJlc3MsXG4gICAgY2hhaW4sXG4gICAgaW5kZXgsXG4gICAgdmFsdWUsXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbW9jayBwcmV2aW91cyB0cmFuc2FjdGlvbiB1c2luZyB3YXNtLXV0eG8ncyBsb3ctbGV2ZWwgUHNidCBjbGFzcy5cbiAqXG4gKiBDcmVhdGVzIGEgdmFsaWQgdHJhbnNhY3Rpb24gc3RydWN0dXJlIHdpdGg6XG4gKiAtIEEgcDJ3cGtoIGlucHV0IChzZWd3aXQsIGVhc3kgdG8gY29uc3RydWN0KVxuICogLSBPdXRwdXRzIGluY2x1ZGluZyB0aGUgdGFyZ2V0IG91dHB1dCBhdCB0aGUgc3BlY2lmaWVkIHZvdXRcbiAqIC0gUmVhc29uYWJsZSBmZWUgcmF0ZSAoaW5wdXQgdmFsdWUgc2xpZ2h0bHkgaGlnaGVyIHRoYW4gb3V0cHV0IHN1bSlcbiAqXG4gKiBAcGFyYW0gdm91dCAtIFRoZSBvdXRwdXQgaW5kZXggd2hlcmUgdGhlIHRhcmdldCBvdXRwdXQgc2hvdWxkIGJlIHBsYWNlZFxuICogQHBhcmFtIG91dHB1dFNjcmlwdCAtIFRoZSBzY3JpcHRQdWJLZXkgZm9yIHRoZSB0YXJnZXQgb3V0cHV0XG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgaW4gc2F0b3NoaXMgZm9yIHRoZSB0YXJnZXQgb3V0cHV0XG4gKiBAcmV0dXJucyBPYmplY3Qgd2l0aCBwcmV2VHggYnVmZmVyIGFuZCB0aGUgdHJhbnNhY3Rpb24ncyB0eGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2NrUHJldlR4KFxuICB2b3V0OiBudW1iZXIsXG4gIG91dHB1dFNjcmlwdDogVWludDhBcnJheSxcbiAgdmFsdWU6IGJpZ2ludFxuKTogeyBwcmV2VHg6IEJ1ZmZlcjsgdHhpZDogc3RyaW5nIH0ge1xuICAvLyBDcmVhdGUgYSBwMndwa2ggc2NyaXB0IGZvciB0aGUgZHVtbXkgaW5wdXRcbiAgLy8gcDJ3cGtoOiBPUF8wIDwyMC1ieXRlLWhhc2g+IC0gd2UgdXNlIGEgZGV0ZXJtaW5pc3RpYyBoYXNoXG4gIGNvbnN0IGR1bW15SGFzaCA9IGdldFNlZWQoJ21vY2stcHJldi10eC1pbnB1dCcpLnN1YmFycmF5KDAsIDIwKTtcbiAgY29uc3QgcDJ3cGtoU2NyaXB0ID0gbmV3IFVpbnQ4QXJyYXkoWzB4MDAsIDB4MTQsIC4uLmR1bW15SGFzaF0pO1xuXG4gIC8vIENhbGN1bGF0ZSB0b3RhbCBvdXRwdXQgdmFsdWVcbiAgY29uc3QgZHVtbXlPdXRwdXRWYWx1ZSA9IEJpZ0ludCgxMDAwKTsgLy8gMTAwMCBzYXRvc2hpcyBwZXIgZHVtbXkgb3V0cHV0XG4gIGNvbnN0IHRvdGFsT3V0cHV0VmFsdWUgPSBkdW1teU91dHB1dFZhbHVlICogQmlnSW50KHZvdXQpICsgdmFsdWU7XG5cbiAgLy8gSW5wdXQgdmFsdWUgPSBvdXRwdXQgdmFsdWUgKyBzbWFsbCBmZWUgKDEwMDAgc2F0IC0gcmVhc29uYWJsZSBmZWUpXG4gIGNvbnN0IGlucHV0VmFsdWUgPSB0b3RhbE91dHB1dFZhbHVlICsgQmlnSW50KDEwMDApO1xuXG4gIC8vIENyZWF0ZSBQU0JUIHVzaW5nIFdyYXBQc2J0IChleHBvcnRlZCBhcyBQc2J0KVxuICBjb25zdCBwc2J0ID0gbmV3IHdhc21VdHhvLlBzYnQoMiwgMCk7XG5cbiAgLy8gQWRkIGR1bW15IHNlZ3dpdCBpbnB1dCAtIHAyd3BraFxuICBwc2J0LmFkZElucHV0KFxuICAgICcwMScucmVwZWF0KDMyKSwgLy8gbm9uLXplcm8gdHhpZCB0byBhdm9pZCBjb2luYmFzZSBkZXRlY3Rpb25cbiAgICAwLFxuICAgIGlucHV0VmFsdWUsXG4gICAgcDJ3cGtoU2NyaXB0XG4gICk7XG5cbiAgLy8gQWRkIGR1bW15IG91dHB1dHMgYmVmb3JlIHRoZSB0YXJnZXQgdm91dFxuICBmb3IgKGxldCBpID0gMDsgaSA8IHZvdXQ7IGkrKykge1xuICAgIHBzYnQuYWRkT3V0cHV0KHAyd3BraFNjcmlwdCwgZHVtbXlPdXRwdXRWYWx1ZSk7XG4gIH1cblxuICAvLyBBZGQgdGhlIHRhcmdldCBvdXRwdXQgYXQgdGhlIHNwZWNpZmllZCB2b3V0XG4gIHBzYnQuYWRkT3V0cHV0KG91dHB1dFNjcmlwdCwgdmFsdWUpO1xuXG4gIC8vIEdldCB0aGUgdW5zaWduZWQgdHJhbnNhY3Rpb24gYnl0ZXNcbiAgLy8gTm90ZTogVGhpcyBpcyBhIHZhbGlkIHRyYW5zYWN0aW9uIHN0cnVjdHVyZSB3aXRob3V0IHNpZ25hdHVyZXNcbiAgLy8gRm9yIHByZXZUeCBwdXJwb3Nlcywgd2UganVzdCBuZWVkIHRoZSBvdXRwdXQgc2NyaXB0cyBhbmQgdmFsdWVzXG4gIGNvbnN0IHR4Qnl0ZXMgPSBwc2J0LmdldFVuc2lnbmVkVHgoKTtcblxuICAvLyBQYXJzZSB3aXRoIHdhc20tdXR4byBUcmFuc2FjdGlvbiB0byBnZXQgdGhlIHR4aWRcbiAgY29uc3QgdHggPSB3YXNtVXR4by5UcmFuc2FjdGlvbi5mcm9tQnl0ZXModHhCeXRlcyk7XG4gIGNvbnN0IHR4aWQgPSB0eC5nZXRJZCgpO1xuXG4gIHJldHVybiB7XG4gICAgcHJldlR4OiBCdWZmZXIuZnJvbSh0eEJ5dGVzKSxcbiAgICB0eGlkLFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSB1bnNwZW50IHdpdGggcHJldlR4IHVzaW5nIHdhc20tdXR4byBvbmx5IChubyB1dHhvbGliIGRlcGVuZGVuY3kpLlxuICogVGhlIHByZXZUeCBpcyBidWlsdCB1c2luZyB3YXNtLXV0eG8ncyBsb3ctbGV2ZWwgUHNidCBjbGFzcy5cbiAqXG4gKiBLZXk6IFRoZSB1bnNwZW50IGlkIHVzZXMgdGhlIGFjdHVhbCB0eGlkIGZyb20gdGhlIGdlbmVyYXRlZCBwcmV2VHgsXG4gKiBlbnN1cmluZyB0aGUgTW9ja1JlY292ZXJ5UHJvdmlkZXIgcmV0dXJucyB0aGUgY29ycmVjdCBwcmV2VHguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Vuc3BlbnRXaXRoUHJldlR4KFxuICBpbnB1dDogSW5wdXQsXG4gIGluZGV4OiBudW1iZXIsXG4gIG5ldHdvcms6IE5ldHdvcmtBcmcsXG4gIHJvb3RXYWxsZXRLZXlzOiBXYXNtUm9vdFdhbGxldEtleXNcbik6IFdhbGxldFVuc3BlbnRXaXRoUHJldlR4PGJpZ2ludD4ge1xuICBjb25zdCBzY3JpcHRUeXBlID0gaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnID8gJ3AydHJNdXNpZzInIDogaW5wdXQuc2NyaXB0VHlwZTtcbiAgY29uc3QgY2hhaW4gPSBnZXRJbnRlcm5hbENoYWluQ29kZShzY3JpcHRUeXBlKTtcbiAgY29uc3QgY29pbk5hbWUgPSB0b0NvaW5OYW1lKG5ldHdvcmspO1xuXG4gIC8vIEdldCB0aGUgb3V0cHV0IHNjcmlwdCBmb3IgdGhlIHdhbGxldCBhZGRyZXNzXG4gIGNvbnN0IG91dHB1dFNjcmlwdCA9IHdhc21VdHhvLmZpeGVkU2NyaXB0V2FsbGV0Lm91dHB1dFNjcmlwdChyb290V2FsbGV0S2V5cywgY2hhaW4sIGluZGV4LCBjb2luTmFtZSk7XG5cbiAgLy8gQ3JlYXRlIG1vY2sgcHJldlR4IHdpdGggb3V0cHV0IGF0IHZvdXQ9MFxuICBjb25zdCB7IHByZXZUeCwgdHhpZCB9ID0gY3JlYXRlTW9ja1ByZXZUeCgwLCBvdXRwdXRTY3JpcHQsIGlucHV0LnZhbHVlKTtcblxuICAvLyBHZXQgdGhlIHdhbGxldCBhZGRyZXNzXG4gIGNvbnN0IGFkZHJlc3MgPSBnZXRXYWxsZXRBZGRyZXNzKHRvQ29pbk5hbWUobmV0d29yayksIHJvb3RXYWxsZXRLZXlzLCBjaGFpbiwgaW5kZXgpO1xuXG4gIC8vIFVzZSB0aGUgYWN0dWFsIHR4aWQgZnJvbSB0aGUgcHJldlR4IGluIHRoZSB1bnNwZW50IGlkXG4gIHJldHVybiB7XG4gICAgaWQ6IGAke3R4aWR9OjBgLFxuICAgIGFkZHJlc3MsXG4gICAgY2hhaW4sXG4gICAgaW5kZXgsXG4gICAgdmFsdWU6IGlucHV0LnZhbHVlLFxuICAgIHByZXZUeCxcbiAgfTtcbn1cbiJdfQ==
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zcGVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdXRpbC91bnNwZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStDQSw4Q0E2QkM7QUFFRCxrRUFlQztBQUVELGtDQVlDO0FBTUQsOEJBYUM7QUFzQkQsMERBb0JDO0FBZUQsNENBaURDO0FBU0Qsa0RBNEJDO0FBN1FELHlEQUEyQztBQUMzQyw4Q0FBMEM7QUFDMUMsMkRBQTZDO0FBRTdDLHNDQUE0RDtBQUM1RCw4Q0FBdUU7QUFHdkUsMkNBQW9EO0FBQ3BELHVDQUE2QztBQUU3QyxNQUFNLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztBQVVyRixTQUFTLFVBQVUsQ0FBQyxPQUFtQjtJQUNyQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFBLHNCQUFjLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBQ0QsT0FBTyxJQUFBLGlDQUFxQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFZRCxNQUFNLFlBQVksR0FBYyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUVyRSxTQUFTLHNCQUFzQixDQUFDLE9BQWU7SUFDN0MsT0FBTyxJQUFBLGtCQUFPLEVBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLE9BQW1CLEVBQ25CLFVBQTBCLEVBQzFCLEVBQUUsRUFB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Q2hHLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVyQywrQ0FBK0M7SUFDL0MsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVyRywyQ0FBMkM7SUFDM0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RSx5QkFBeUI7SUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBQSwwQkFBZ0IsRUFBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVwRix3REFBd0Q7SUFDeEQsT0FBTztRQUNMLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSTtRQUNmLE9BQU87UUFDUCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBnZXRTZWVkIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCAqIGFzIHdhc21VdHhvIGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBnZXRSZXBsYXlQcm90ZWN0aW9uQWRkcmVzc2VzIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IGlzVXR4b0NvaW5OYW1lLCB0eXBlIFV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uLy4uL3NyYy9uYW1lcyc7XG5pbXBvcnQgdHlwZSB7IFVuc3BlbnQsIFVuc3BlbnRXaXRoUHJldlR4LCBXYWxsZXRVbnNwZW50IH0gZnJvbSAnLi4vLi4vLi4vc3JjL3Vuc3BlbnQnO1xuXG5pbXBvcnQgeyBnZXRDb2luTmFtZUZvck5ldHdvcmsgfSBmcm9tICcuL3V0eG9Db2lucyc7XG5pbXBvcnQgeyBnZXRXYWxsZXRBZGRyZXNzIH0gZnJvbSAnLi9hZGRyZXNzJztcblxuY29uc3QgeyBjaGFpbkNvZGVzUDJzaCwgZ2V0RXh0ZXJuYWxDaGFpbkNvZGUsIGdldEludGVybmFsQ2hhaW5Db2RlIH0gPSB1dHhvbGliLmJpdGdvO1xuXG5leHBvcnQgdHlwZSBVdHhvbGliUm9vdFdhbGxldEtleXMgPSB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzO1xuZXhwb3J0IHR5cGUgV2FzbVJvb3RXYWxsZXRLZXlzID0gd2FzbVV0eG8uZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXM7XG5leHBvcnQgdHlwZSBSb290V2FsbGV0S2V5cyA9IFV0eG9saWJSb290V2FsbGV0S2V5cyB8IFdhc21Sb290V2FsbGV0S2V5cztcbnR5cGUgQ2hhaW5Db2RlID0gdXR4b2xpYi5iaXRnby5DaGFpbkNvZGU7XG5cbi8qKiBBY2NlcHQgZWl0aGVyIGEgY29pbiBuYW1lIHN0cmluZyBvciBhIHV0eG9saWIuTmV0d29yayBvYmplY3QgKi9cbmV4cG9ydCB0eXBlIE5ldHdvcmtBcmcgPSBzdHJpbmcgfCB1dHhvbGliLk5ldHdvcms7XG5cbmZ1bmN0aW9uIHRvQ29pbk5hbWUobmV0d29yazogTmV0d29ya0FyZyk6IFV0eG9Db2luTmFtZSB7XG4gIGlmICh0eXBlb2YgbmV0d29yayA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoIWlzVXR4b0NvaW5OYW1lKG5ldHdvcmspKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG5vdCBhIHZhbGlkIGNvaW4gbmFtZTogJHtuZXR3b3JrfWApO1xuICAgIH1cbiAgICByZXR1cm4gbmV0d29yaztcbiAgfVxuICByZXR1cm4gZ2V0Q29pbk5hbWVGb3JOZXR3b3JrKG5ldHdvcmspO1xufVxuXG5leHBvcnQgdHlwZSBJbnB1dFNjcmlwdFR5cGUgPSB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTJPZjMgfCAncmVwbGF5UHJvdGVjdGlvbic7XG5cbi8qKlxuICogSW5wdXQgZGVmaW5pdGlvbiBmb3IgdG9VbnNwZW50IGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIElucHV0ID0ge1xuICBzY3JpcHRUeXBlOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTJPZjMgfCAndGFwcm9vdEtleVBhdGhTcGVuZCc7XG4gIHZhbHVlOiBiaWdpbnQ7XG59O1xuXG5jb25zdCBkZWZhdWx0Q2hhaW46IENoYWluQ29kZSA9IGdldEV4dGVybmFsQ2hhaW5Db2RlKGNoYWluQ29kZXNQMnNoKTtcblxuZnVuY3Rpb24gbW9ja091dHB1dElkRm9yQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGdldFNlZWQoYWRkcmVzcykudG9TdHJpbmcoJ2hleCcpICsgJzoxJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tXYWxsZXRVbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBuZXR3b3JrOiBOZXR3b3JrQXJnLFxuICB3YWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgeyBpZCwgY2hhaW4gPSBkZWZhdWx0Q2hhaW4sIGluZGV4ID0gMCwgdmFsdWUsIGFkZHJlc3MgfTogUGFydGlhbDxXYWxsZXRVbnNwZW50PFROdW1iZXI+PlxuKTogV2FsbGV0VW5zcGVudDxUTnVtYmVyPiB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bnNwZW50IHZhbHVlIG11c3QgYmUgc2V0YCk7XG4gIH1cbiAgaWYgKGNoYWluID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3BlbnQgY2hhaW4gbXVzdCBiZSBzZXRgKTtcbiAgfVxuICBjb25zdCBkZXJpdmVBZGRyZXNzID0gZ2V0V2FsbGV0QWRkcmVzcyh0b0NvaW5OYW1lKG5ldHdvcmspLCB3YWxsZXRLZXlzLCBjaGFpbiwgaW5kZXgpO1xuICBpZiAoYWRkcmVzcykge1xuICAgIGlmIChhZGRyZXNzICE9PSBkZXJpdmVBZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGRlcml2ZWRBZGRyZXNzIG1pc21hdGNoOiAke2FkZHJlc3N9IGRlcml2ZWQ9JHtkZXJpdmVBZGRyZXNzfWApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBhZGRyZXNzID0gZGVyaXZlQWRkcmVzcztcbiAgfVxuICBpZiAoIWlkKSB7XG4gICAgaWQgPSBtb2NrT3V0cHV0SWRGb3JBZGRyZXNzKGFkZHJlc3MpO1xuICB9XG4gIHJldHVybiB7XG4gICAgaWQsXG4gICAgYWRkcmVzcyxcbiAgICBjaGFpbixcbiAgICBpbmRleCxcbiAgICB2YWx1ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tVbnNwZW50UmVwbGF5UHJvdGVjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogTmV0d29ya0FyZyxcbiAgdmFsdWU6IFROdW1iZXJcbik6IFVuc3BlbnQ8VE51bWJlcj4ge1xuICBjb25zdCBjb2luTmFtZSA9IHRvQ29pbk5hbWUobmV0d29yayk7XG4gIGNvbnN0IGFkZHJlc3NlcyA9IGdldFJlcGxheVByb3RlY3Rpb25BZGRyZXNzZXMoY29pbk5hbWUpO1xuICBpZiAoYWRkcmVzc2VzLmxlbmd0aCkge1xuICAgIGNvbnN0IGFkZHJlc3MgPSBhZGRyZXNzZXNbMF07XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBtb2NrT3V0cHV0SWRGb3JBZGRyZXNzKGFkZHJlc3MpLFxuICAgICAgYWRkcmVzcyxcbiAgICAgIHZhbHVlLFxuICAgIH07XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGAke2NvaW5OYW1lfSBoYXMgbm8gcmVwbGF5IHByb3RlY3Rpb24gdW5zcGVudHNgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tVbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBuZXR3b3JrOiBOZXR3b3JrQXJnLFxuICB3YWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgY2hhaW46IENoYWluQ29kZSB8IElucHV0U2NyaXB0VHlwZSxcbiAgaW5kZXg6IG51bWJlcixcbiAgdmFsdWU6IFROdW1iZXJcbik6IFVuc3BlbnQ8VE51bWJlcj4ge1xuICBpZiAoY2hhaW4gPT09ICdyZXBsYXlQcm90ZWN0aW9uJykge1xuICAgIHJldHVybiBtb2NrVW5zcGVudFJlcGxheVByb3RlY3Rpb24obmV0d29yaywgKHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcgPyBCaWdJbnQoMTAwMCkgOiAxMDAwKSBhcyBUTnVtYmVyKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbW9ja1dhbGxldFVuc3BlbnQobmV0d29yaywgd2FsbGV0S2V5cywgeyBjaGFpbjogZ2V0SW50ZXJuYWxDaGFpbkNvZGUoY2hhaW4pLCB2YWx1ZSwgaW5kZXggfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgdW5zcGVudCBvYmplY3QgZnJvbSBpbnB1dCBzY3JpcHQgdHlwZSwgaW5kZXgsIG5ldHdvcmsgYW5kIHJvb3Qgd2FsbGV0IGtleXMuXG4gKiBTdXBwb3J0cyBib3RoIHV0eG9saWIgYW5kIHdhc20tdXR4byBSb290V2FsbGV0S2V5cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVW5zcGVudChcbiAgaW5wdXQ6IElucHV0LFxuICBpbmRleDogbnVtYmVyLFxuICBuZXR3b3JrOiBOZXR3b3JrQXJnLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXNcbik6IFdhbGxldFVuc3BlbnQ8YmlnaW50PiB7XG4gIGNvbnN0IHNjcmlwdFR5cGUgPSBpbnB1dC5zY3JpcHRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcgPyAncDJ0ck11c2lnMicgOiBpbnB1dC5zY3JpcHRUeXBlO1xuICBjb25zdCBjaGFpbiA9IGdldEludGVybmFsQ2hhaW5Db2RlKHNjcmlwdFR5cGUpO1xuICByZXR1cm4gbW9ja1dhbGxldFVuc3BlbnQobmV0d29yaywgcm9vdFdhbGxldEtleXMsIHtcbiAgICBjaGFpbixcbiAgICBpbmRleCxcbiAgICB2YWx1ZTogaW5wdXQudmFsdWUsXG4gIH0pO1xufVxuXG4vKipcbiAqIFdhbGxldCB1bnNwZW50IHdpdGggcHJldlR4IC0gY29tYmluZXMgV2FsbGV0VW5zcGVudCBhbmQgVW5zcGVudFdpdGhQcmV2VHhcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRVbnNwZW50V2l0aFByZXZUeDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPlxuICBleHRlbmRzIFdhbGxldFVuc3BlbnQ8VE51bWJlcj4sXG4gICAgVW5zcGVudFdpdGhQcmV2VHg8VE51bWJlcj4ge31cblxuLyoqXG4gKiBDcmVhdGUgYSBtb2NrIHdhbGxldCB1bnNwZW50IHVzaW5nIHdhc20tdXR4byBvbmx5IChubyB1dHhvbGliIGRlcGVuZGVuY3kpLlxuICogVXNlcyBjcmVhdGVNb2NrUHJldlR4IHRvIGdlbmVyYXRlIGEgcmVhbGlzdGljIHR4aWQgZm9yIHRoZSB1bnNwZW50LlxuICpcbiAqIFRoaXMgaXMgdXNlZnVsIGZvciB0ZXN0cyB0aGF0IG5lZWQgYSB2YWxpZCB1bnNwZW50IGJ1dCBkb24ndCByZXF1aXJlIHRoZSBwcmV2VHggYnVmZmVyLlxuICpcbiAqIEBwYXJhbSBhZGRyZXNzIC0gVGhlIHdhbGxldCBhZGRyZXNzIGZvciB0aGUgdW5zcGVudFxuICogQHBhcmFtIGNoYWluIC0gVGhlIGRlcml2YXRpb24gY2hhaW5cbiAqIEBwYXJhbSBpbmRleCAtIFRoZSBkZXJpdmF0aW9uIGluZGV4XG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgaW4gc2F0b3NoaXMgKGJpZ2ludClcbiAqIEBwYXJhbSBuZXR3b3JrIC0gVGhlIG5ldHdvcmsgdG8gZ2V0IHRoZSBvdXRwdXQgc2NyaXB0XG4gKiBAcmV0dXJucyBXYWxsZXRVbnNwZW50IHdpdGggYSB2YWxpZCB0eGlkIGZyb20gYSB3YXNtLXV0eG8gZ2VuZXJhdGVkIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXYXNtV2FsbGV0VW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gYmlnaW50PihcbiAgYWRkcmVzczogc3RyaW5nLFxuICBjaGFpbjogQ2hhaW5Db2RlLFxuICBpbmRleDogbnVtYmVyLFxuICB2YWx1ZTogVE51bWJlcixcbiAgbmV0d29yazogTmV0d29ya0FyZ1xuKTogV2FsbGV0VW5zcGVudDxUTnVtYmVyPiB7XG4gIC8vIEdldCBvdXRwdXQgc2NyaXB0IGZyb20gYWRkcmVzcyB1c2luZyBjb3JyZWN0IHdhc20tdXR4byBmdW5jdGlvblxuICBjb25zdCBvdXRwdXRTY3JpcHQgPSB3YXNtVXR4by5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0V2l0aENvaW4oYWRkcmVzcywgdG9Db2luTmFtZShuZXR3b3JrKSk7XG5cbiAgLy8gQ3JlYXRlIGEgbW9jayB0cmFuc2FjdGlvbiB3aXRoIG91dHB1dCBhdCB2b3V0PTBcbiAgY29uc3QgeyB0eGlkIH0gPSBjcmVhdGVNb2NrUHJldlR4KDAsIG91dHB1dFNjcmlwdCwgQmlnSW50KHZhbHVlKSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpZDogYCR7dHhpZH06MGAsXG4gICAgYWRkcmVzcyxcbiAgICBjaGFpbixcbiAgICBpbmRleCxcbiAgICB2YWx1ZSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtb2NrIHByZXZpb3VzIHRyYW5zYWN0aW9uIHVzaW5nIHdhc20tdXR4bydzIGxvdy1sZXZlbCBQc2J0IGNsYXNzLlxuICpcbiAqIENyZWF0ZXMgYSB2YWxpZCB0cmFuc2FjdGlvbiBzdHJ1Y3R1cmUgd2l0aDpcbiAqIC0gQSBwMndwa2ggaW5wdXQgKHNlZ3dpdCwgZWFzeSB0byBjb25zdHJ1Y3QpXG4gKiAtIE91dHB1dHMgaW5jbHVkaW5nIHRoZSB0YXJnZXQgb3V0cHV0IGF0IHRoZSBzcGVjaWZpZWQgdm91dFxuICogLSBSZWFzb25hYmxlIGZlZSByYXRlIChpbnB1dCB2YWx1ZSBzbGlnaHRseSBoaWdoZXIgdGhhbiBvdXRwdXQgc3VtKVxuICpcbiAqIEBwYXJhbSB2b3V0IC0gVGhlIG91dHB1dCBpbmRleCB3aGVyZSB0aGUgdGFyZ2V0IG91dHB1dCBzaG91bGQgYmUgcGxhY2VkXG4gKiBAcGFyYW0gb3V0cHV0U2NyaXB0IC0gVGhlIHNjcmlwdFB1YktleSBmb3IgdGhlIHRhcmdldCBvdXRwdXRcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSBpbiBzYXRvc2hpcyBmb3IgdGhlIHRhcmdldCBvdXRwdXRcbiAqIEByZXR1cm5zIE9iamVjdCB3aXRoIHByZXZUeCBidWZmZXIgYW5kIHRoZSB0cmFuc2FjdGlvbidzIHR4aWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1vY2tQcmV2VHgoXG4gIHZvdXQ6IG51bWJlcixcbiAgb3V0cHV0U2NyaXB0OiBVaW50OEFycmF5LFxuICB2YWx1ZTogYmlnaW50XG4pOiB7IHByZXZUeDogQnVmZmVyOyB0eGlkOiBzdHJpbmcgfSB7XG4gIC8vIENyZWF0ZSBhIHAyd3BraCBzY3JpcHQgZm9yIHRoZSBkdW1teSBpbnB1dFxuICAvLyBwMndwa2g6IE9QXzAgPDIwLWJ5dGUtaGFzaD4gLSB3ZSB1c2UgYSBkZXRlcm1pbmlzdGljIGhhc2hcbiAgY29uc3QgZHVtbXlIYXNoID0gZ2V0U2VlZCgnbW9jay1wcmV2LXR4LWlucHV0Jykuc3ViYXJyYXkoMCwgMjApO1xuICBjb25zdCBwMndwa2hTY3JpcHQgPSBuZXcgVWludDhBcnJheShbMHgwMCwgMHgxNCwgLi4uZHVtbXlIYXNoXSk7XG5cbiAgLy8gQ2FsY3VsYXRlIHRvdGFsIG91dHB1dCB2YWx1ZVxuICBjb25zdCBkdW1teU91dHB1dFZhbHVlID0gQmlnSW50KDEwMDApOyAvLyAxMDAwIHNhdG9zaGlzIHBlciBkdW1teSBvdXRwdXRcbiAgY29uc3QgdG90YWxPdXRwdXRWYWx1ZSA9IGR1bW15T3V0cHV0VmFsdWUgKiBCaWdJbnQodm91dCkgKyB2YWx1ZTtcblxuICAvLyBJbnB1dCB2YWx1ZSA9IG91dHB1dCB2YWx1ZSArIHNtYWxsIGZlZSAoMTAwMCBzYXQgLSByZWFzb25hYmxlIGZlZSlcbiAgY29uc3QgaW5wdXRWYWx1ZSA9IHRvdGFsT3V0cHV0VmFsdWUgKyBCaWdJbnQoMTAwMCk7XG5cbiAgLy8gQ3JlYXRlIFBTQlQgdXNpbmcgV3JhcFBzYnQgKGV4cG9ydGVkIGFzIFBzYnQpXG4gIGNvbnN0IHBzYnQgPSBuZXcgd2FzbVV0eG8uUHNidCgyLCAwKTtcblxuICAvLyBBZGQgZHVtbXkgc2Vnd2l0IGlucHV0IC0gcDJ3cGtoXG4gIHBzYnQuYWRkSW5wdXQoXG4gICAgJzAxJy5yZXBlYXQoMzIpLCAvLyBub24temVybyB0eGlkIHRvIGF2b2lkIGNvaW5iYXNlIGRldGVjdGlvblxuICAgIDAsXG4gICAgaW5wdXRWYWx1ZSxcbiAgICBwMndwa2hTY3JpcHRcbiAgKTtcblxuICAvLyBBZGQgZHVtbXkgb3V0cHV0cyBiZWZvcmUgdGhlIHRhcmdldCB2b3V0XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdm91dDsgaSsrKSB7XG4gICAgcHNidC5hZGRPdXRwdXQocDJ3cGtoU2NyaXB0LCBkdW1teU91dHB1dFZhbHVlKTtcbiAgfVxuXG4gIC8vIEFkZCB0aGUgdGFyZ2V0IG91dHB1dCBhdCB0aGUgc3BlY2lmaWVkIHZvdXRcbiAgcHNidC5hZGRPdXRwdXQob3V0cHV0U2NyaXB0LCB2YWx1ZSk7XG5cbiAgLy8gR2V0IHRoZSB1bnNpZ25lZCB0cmFuc2FjdGlvbiBieXRlc1xuICAvLyBOb3RlOiBUaGlzIGlzIGEgdmFsaWQgdHJhbnNhY3Rpb24gc3RydWN0dXJlIHdpdGhvdXQgc2lnbmF0dXJlc1xuICAvLyBGb3IgcHJldlR4IHB1cnBvc2VzLCB3ZSBqdXN0IG5lZWQgdGhlIG91dHB1dCBzY3JpcHRzIGFuZCB2YWx1ZXNcbiAgY29uc3QgdHhCeXRlcyA9IHBzYnQuZ2V0VW5zaWduZWRUeCgpO1xuXG4gIC8vIFBhcnNlIHdpdGggd2FzbS11dHhvIFRyYW5zYWN0aW9uIHRvIGdldCB0aGUgdHhpZFxuICBjb25zdCB0eCA9IHdhc21VdHhvLlRyYW5zYWN0aW9uLmZyb21CeXRlcyh0eEJ5dGVzKTtcbiAgY29uc3QgdHhpZCA9IHR4LmdldElkKCk7XG5cbiAgcmV0dXJuIHtcbiAgICBwcmV2VHg6IEJ1ZmZlci5mcm9tKHR4Qnl0ZXMpLFxuICAgIHR4aWQsXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlIHVuc3BlbnQgd2l0aCBwcmV2VHggdXNpbmcgd2FzbS11dHhvIG9ubHkgKG5vIHV0eG9saWIgZGVwZW5kZW5jeSkuXG4gKiBUaGUgcHJldlR4IGlzIGJ1aWx0IHVzaW5nIHdhc20tdXR4bydzIGxvdy1sZXZlbCBQc2J0IGNsYXNzLlxuICpcbiAqIEtleTogVGhlIHVuc3BlbnQgaWQgdXNlcyB0aGUgYWN0dWFsIHR4aWQgZnJvbSB0aGUgZ2VuZXJhdGVkIHByZXZUeCxcbiAqIGVuc3VyaW5nIHRoZSBNb2NrUmVjb3ZlcnlQcm92aWRlciByZXR1cm5zIHRoZSBjb3JyZWN0IHByZXZUeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVW5zcGVudFdpdGhQcmV2VHgoXG4gIGlucHV0OiBJbnB1dCxcbiAgaW5kZXg6IG51bWJlcixcbiAgbmV0d29yazogTmV0d29ya0FyZyxcbiAgcm9vdFdhbGxldEtleXM6IFdhc21Sb290V2FsbGV0S2V5c1xuKTogV2FsbGV0VW5zcGVudFdpdGhQcmV2VHg8YmlnaW50PiB7XG4gIGNvbnN0IHNjcmlwdFR5cGUgPSBpbnB1dC5zY3JpcHRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcgPyAncDJ0ck11c2lnMicgOiBpbnB1dC5zY3JpcHRUeXBlO1xuICBjb25zdCBjaGFpbiA9IGdldEludGVybmFsQ2hhaW5Db2RlKHNjcmlwdFR5cGUpO1xuICBjb25zdCBjb2luTmFtZSA9IHRvQ29pbk5hbWUobmV0d29yayk7XG5cbiAgLy8gR2V0IHRoZSBvdXRwdXQgc2NyaXB0IGZvciB0aGUgd2FsbGV0IGFkZHJlc3NcbiAgY29uc3Qgb3V0cHV0U2NyaXB0ID0gd2FzbVV0eG8uZml4ZWRTY3JpcHRXYWxsZXQub3V0cHV0U2NyaXB0KHJvb3RXYWxsZXRLZXlzLCBjaGFpbiwgaW5kZXgsIGNvaW5OYW1lKTtcblxuICAvLyBDcmVhdGUgbW9jayBwcmV2VHggd2l0aCBvdXRwdXQgYXQgdm91dD0wXG4gIGNvbnN0IHsgcHJldlR4LCB0eGlkIH0gPSBjcmVhdGVNb2NrUHJldlR4KDAsIG91dHB1dFNjcmlwdCwgaW5wdXQudmFsdWUpO1xuXG4gIC8vIEdldCB0aGUgd2FsbGV0IGFkZHJlc3NcbiAgY29uc3QgYWRkcmVzcyA9IGdldFdhbGxldEFkZHJlc3ModG9Db2luTmFtZShuZXR3b3JrKSwgcm9vdFdhbGxldEtleXMsIGNoYWluLCBpbmRleCk7XG5cbiAgLy8gVXNlIHRoZSBhY3R1YWwgdHhpZCBmcm9tIHRoZSBwcmV2VHggaW4gdGhlIHVuc3BlbnQgaWRcbiAgcmV0dXJuIHtcbiAgICBpZDogYCR7dHhpZH06MGAsXG4gICAgYWRkcmVzcyxcbiAgICBjaGFpbixcbiAgICBpbmRleCxcbiAgICB2YWx1ZTogaW5wdXQudmFsdWUsXG4gICAgcHJldlR4LFxuICB9O1xufVxuIl19
|