@bitgo-beta/utxo-lib 8.0.3-beta.1449 → 8.0.3-beta.1450
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.
|
@@ -129,6 +129,7 @@ export declare class AcidTest {
|
|
|
129
129
|
constructor(network: Network, signStage: SignStage, txFormat: TxFormat, rootWalletKeys: RootWalletKeys, otherWalletKeys: RootWalletKeys, inputs: Input[], outputs: Output[]);
|
|
130
130
|
static withConfig(network: Network, signStage: SignStage, txFormat: TxFormat, suiteConfig: SuiteConfig): AcidTest;
|
|
131
131
|
get name(): string;
|
|
132
|
+
getReplayProtectionPublicKey(): Buffer;
|
|
132
133
|
getReplayProtectionOutputScript(): Buffer;
|
|
133
134
|
createPsbt(): UtxoPsbt;
|
|
134
135
|
static suite(suiteConfig?: SuiteConfig): AcidTest[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../../src/testutil/psbt.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,UAAU,EACV,cAAc,EAGf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EASL,OAAO,EAEP,cAAc,EAEd,OAAO,EACP,QAAQ,EACR,eAAe,EAIhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAA6C,OAAO,EAAY,MAAM,aAAa,CAAC;AAK3F;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,qBAAqB,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,UAAU,mDAAoD,CAAC;AAC5E,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD;;GAEG;AAEH,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IAEd,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAG5B,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACpC,GAAG,CAAC;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEzG;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,kGAA2E,CAAC;AAEzG;;GAEG;AACH,eAAO,MAAM,iBAAiB,+DAAkB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,eAAe,GAAG;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAKtG;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,YAAY,GAAG,YAAY,EACjC,MAAM,CAAC,EAAE;IACP,OAAO,CAAC,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GACA,IAAI,CAaN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,KAAK,EAAE,EACf,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,YAAY,GAAG,YAAY,EACjC,MAAM,CAAC,EAAE;IACP,OAAO,CAAC,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GACA,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,CAAC,EAAE;IACP,OAAO,CAAC,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GACA,QAAQ,CAuEV;AAED,eAAO,MAAM,SAAS,gCAAiC,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,KAAK,WAAW,GAAG;IACjB;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ;IACnB,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,SAAgB,cAAc,EAAE,cAAc,CAAC;IAC/C,SAAgB,eAAe,EAAE,cAAc,CAAC;IAChD,SAAgB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChC,SAAgB,OAAO,EAAE,MAAM,EAAE,CAAC;gBAGhC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,cAAc,EAC/B,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,EAAE,MAAM,EAAE;IAWnB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAG,QAAQ;IA2BjH,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,+BAA+B,IAAI,MAAM;IAMzC,UAAU,IAAI,QAAQ;IAWtB,MAAM,CAAC,KAAK,CAAC,WAAW,GAAE,WAAgB,GAAG,QAAQ,EAAE;CASxD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,EAC3B,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAC3B,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,GAChB,OAAO,CAiBT"}
|
|
1
|
+
{"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../../src/testutil/psbt.ts"],"names":[],"mappings":"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"}
|
|
@@ -192,8 +192,11 @@ class AcidTest {
|
|
|
192
192
|
const networkName = (0, networks_1.getNetworkName)(this.network);
|
|
193
193
|
return `${networkName} ${this.signStage} ${this.txFormat}`;
|
|
194
194
|
}
|
|
195
|
+
getReplayProtectionPublicKey() {
|
|
196
|
+
return this.rootWalletKeys.user.publicKey;
|
|
197
|
+
}
|
|
195
198
|
getReplayProtectionOutputScript() {
|
|
196
|
-
const { scriptPubKey } = (0, outputScripts_1.createOutputScriptP2shP2pk)(this.
|
|
199
|
+
const { scriptPubKey } = (0, outputScripts_1.createOutputScriptP2shP2pk)(this.getReplayProtectionPublicKey());
|
|
197
200
|
(0, assert_1.ok)(scriptPubKey);
|
|
198
201
|
return scriptPubKey;
|
|
199
202
|
}
|
|
@@ -239,4 +242,4 @@ function verifyFullySignedSignatures(tx, unspents, walletKeys, signer, cosigner)
|
|
|
239
242
|
}
|
|
240
243
|
});
|
|
241
244
|
}
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9GQSw4QkFpQkM7QUFRRCxnQ0FLQztBQU1ELHNDQXlCQztBQU1ELDhDQWdCQztBQUtELHNDQW1GQztBQXVIRCxrRUF1QkM7QUE3WUQsOENBQThDO0FBQzlDLG1DQUFzQztBQUV0QywwREFPZ0M7QUFDaEMsb0NBbUJrQjtBQUNsQiwwQ0FBMkY7QUFDM0YsaUNBQXdFO0FBQ3hFLHdDQUE0QztBQUM1QyxpQ0FBb0U7QUFtQnZELFFBQUEsVUFBVSxHQUFHLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLENBQVUsQ0FBQztBQWdCNUU7Ozs7R0FJRztBQUNVLFFBQUEsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLCtCQUFlLEVBQUUscUJBQXFCLEVBQUUsa0NBQWtCLENBQVUsQ0FBQztBQUV6Rzs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsK0JBQWUsQ0FBQztBQUVqRDs7R0FFRztBQUNILFNBQWdCLFNBQVMsQ0FDdkIsS0FBWSxFQUNaLEtBQWEsRUFDYixPQUFnQixFQUNoQixjQUE4QjtJQUU5QixJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFBLGtDQUEyQixFQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN6RyxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sS0FBSyxHQUFHLElBQUEsNEJBQW9CLEVBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakgsT0FBTyxJQUFBLHdCQUFp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LEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDL0YsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7aUJBQU0sSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDeEcsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiaXRjb2luanNsaWIgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgeyBvayBhcyBhc3NlcnQgfSBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQge1xuICBjcmVhdGVPdXRwdXRTY3JpcHRQMnNoUDJwayxcbiAgaXNTdXBwb3J0ZWRTY3JpcHRUeXBlLFxuICBTY3JpcHRUeXBlLFxuICBTY3JpcHRUeXBlMk9mMyxcbiAgc2NyaXB0VHlwZVAyc2hQMnBrLFxuICBzY3JpcHRUeXBlczJPZjMsXG59IGZyb20gJy4uL2JpdGdvL291dHB1dFNjcmlwdHMnO1xuaW1wb3J0IHtcbiAgYWRkUmVwbGF5UHJvdGVjdGlvblVuc3BlbnRUb1BzYnQsXG4gIGFkZFdhbGxldE91dHB1dFRvUHNidCxcbiAgYWRkV2FsbGV0VW5zcGVudFRvUHNidCxcbiAgY3JlYXRlUHNidEZvck5ldHdvcmssXG4gIGdldEV4dGVybmFsQ2hhaW5Db2RlLFxuICBnZXRJbnRlcm5hbENoYWluQ29kZSxcbiAgZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9ucyxcbiAgaXNXYWxsZXRVbnNwZW50LFxuICBLZXlOYW1lLFxuICBwYXJzZVNpZ25hdHVyZVNjcmlwdDJPZjMsXG4gIFJvb3RXYWxsZXRLZXlzLFxuICB0b091dHB1dCxcbiAgVW5zcGVudCxcbiAgVXR4b1BzYnQsXG4gIFV0eG9UcmFuc2FjdGlvbixcbiAgdmVyaWZ5U2lnbmF0dXJlV2l0aFVuc3BlbnQsXG4gIGFkZFhwdWJzVG9Qc2J0LFxuICBjbG9uZVBzYnRXaXRob3V0Tm9uV2l0bmVzc1V0eG8sXG59IGZyb20gJy4uL2JpdGdvJztcbmltcG9ydCB7IGdldE5ldHdvcmtMaXN0LCBnZXROZXR3b3JrTmFtZSwgaXNNYWlubmV0LCBOZXR3b3JrLCBuZXR3b3JrcyB9IGZyb20gJy4uL25ldHdvcmtzJztcbmltcG9ydCB7IG1vY2tSZXBsYXlQcm90ZWN0aW9uVW5zcGVudCwgbW9ja1dhbGxldFVuc3BlbnQgfSBmcm9tICcuL21vY2snO1xuaW1wb3J0IHsgdG9PdXRwdXRTY3JpcHQgfSBmcm9tICcuLi9hZGRyZXNzJztcbmltcG9ydCB7IGdldERlZmF1bHRXYWxsZXRLZXlzLCBnZXRXYWxsZXRLZXlzRm9yU2VlZCB9IGZyb20gJy4va2V5cyc7XG5cbi8qKlxuICogVGhpcyBpcyBhIGJpdCBvZiBhIG1pc25vbWVyLCBhcyBpdCBhY3R1YWxseSBzcGVjaWZpZXMgdGhlIHNwZW5kIHR5cGUgb2YgdGhlIGlucHV0LlxuICogVGhpcyBtYWtlcyBhIGRpZmZlcmVuY2UgZm9yIHAydHJNdXNpZzIgaW5wdXRzLCBhcyB0aGV5IGNhbiBiZSBzcGVudCBlaXRoZXIgYnkga2V5IHBhdGggb3Igc2NyaXB0IHBhdGguXG4gKiBUaGUgdmFsdWUgcDJ0ck11c2lnMiBpcyB1c2VkIGZvciBwMnRyTXVzaWcyIHNjcmlwdCBwYXRoLlxuICogVGhlIHZhbHVlIHRhcHJvb3RLZXlQYXRoU3BlbmQgaXMgdXNlZCBmb3IgcDJ0ck11c2lnMiBrZXkgcGF0aC5cbiAqL1xuZXhwb3J0IHR5cGUgSW5wdXRTY3JpcHRUeXBlID0gU2NyaXB0VHlwZSB8ICd0YXByb290S2V5UGF0aFNwZW5kJztcbmV4cG9ydCB0eXBlIE91dHB1dFNjcmlwdFR5cGUgPSBTY3JpcHRUeXBlMk9mMztcblxuLyoqXG4gKiBpbnB1dCBzY3JpcHQgdHlwZSBhbmQgdmFsdWVcbiAqL1xuZXhwb3J0IHR5cGUgSW5wdXQgPSB7XG4gIHNjcmlwdFR5cGU6IElucHV0U2NyaXB0VHlwZTtcbiAgdmFsdWU6IGJpZ2ludDtcbn07XG5cbmV4cG9ydCBjb25zdCBzaWduU3RhZ2VzID0gWyd1bnNpZ25lZCcsICdoYWxmc2lnbmVkJywgJ2Z1bGxzaWduZWQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFNpZ25TdGFnZSA9ICh0eXBlb2Ygc2lnblN0YWdlcylbbnVtYmVyXTtcblxuLyoqXG4gKiBTZXQgaXNJbnRlcm5hbEFkZHJlc3M9dHJ1ZSBmb3IgaW50ZXJuYWwgb3V0cHV0IGFkZHJlc3NcbiAqL1xuLy8gTWFrZSBzY3JpcHQ6IHN0cmluZyBhcyBpbnN0ZWFkIG9mIHNjcmlwdFR5cGUgb3IgYWRkcmVzc1xuZXhwb3J0IHR5cGUgT3V0cHV0ID0ge1xuICB2YWx1ZTogYmlnaW50O1xuICAvLyBEZXRlcm1pbmVzIGNoYWluIGNvZGUgZm9yIHRoZSBvdXRwdXRcbiAgaXNJbnRlcm5hbEFkZHJlc3M/OiBib29sZWFuO1xuICAvLyBEZXRlcm1pbmVzIHRoZSB3YWxsZXQga2V5cyB0byB1c2UgZm9yIHRoZSBvdXRwdXQuIEJ5IGRlZmF1bHQgdXNlIHJvb3Qgd2FsbGV0IGtleXMgdXNlZCBmb3IgdGhlIGlucHV0cy5cbiAgLy8gV2hlbiBzZXQgdG8gbnVsbCwgb21pdHMgdGhlIGRlcml2YXRpb24gaW5mbyBhbmQgZWZmZWN0aXZlbHkgbWFrZXMgdGhlIG91dHB1dCBub24td2FsbGV0IG91dHB1dC5cbiAgd2FsbGV0S2V5cz86IFJvb3RXYWxsZXRLZXlzIHwgbnVsbDtcbn0gJiAoeyBzY3JpcHRUeXBlOiBPdXRwdXRTY3JpcHRUeXBlIH0gfCB7IGFkZHJlc3M6IHN0cmluZyB9IHwgeyBzY3JpcHQ6IHN0cmluZyB9IHwgeyBvcFJldHVybjogc3RyaW5nIH0pO1xuXG4vKipcbiAqIGFycmF5IG9mIHN1cHBvcnRlZCBpbnB1dCBzY3JpcHQgdHlwZXMuXG4gKiB1c2UgcDJ0ck11c2lnMiBmb3IgcDJ0ck11c2lnMiBzY3JpcHQgcGF0aC5cbiAqIHVzZSB0YXByb290S2V5UGF0aFNwZW5kIGZvciBwMnRyTXVzaWcyIGtleSBwYXRoLlxuICovXG5leHBvcnQgY29uc3QgaW5wdXRTY3JpcHRUeXBlcyA9IFsuLi5zY3JpcHRUeXBlczJPZjMsICd0YXByb290S2V5UGF0aFNwZW5kJywgc2NyaXB0VHlwZVAyc2hQMnBrXSBhcyBjb25zdDtcblxuLyoqXG4gKiBhcnJheSBvZiBzdXBwb3J0ZWQgb3V0cHV0IHNjcmlwdCB0eXBlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IG91dHB1dFNjcmlwdFR5cGVzID0gc2NyaXB0VHlwZXMyT2YzO1xuXG4vKipcbiAqIGNyZWF0ZSB1bnNwZW50IG9iamVjdCBmcm9tIGlucHV0IHNjcmlwdCB0eXBlLCBpbmRleCwgbmV0d29yayBhbmQgcm9vdCB3YWxsZXQga2V5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9VbnNwZW50KFxuICBpbnB1dDogSW5wdXQsXG4gIGluZGV4OiBudW1iZXIsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5c1xuKTogVW5zcGVudDxiaWdpbnQ+IHtcbiAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICByZXR1cm4gbW9ja1JlcGxheVByb3RlY3Rpb25VbnNwZW50KG5ldHdvcmssIGlucHV0LnZhbHVlLCB7IGtleTogcm9vdFdhbGxldEtleXNbJ3VzZXInXSwgdm91dDogaW5kZXggfSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY2hhaW4gPSBnZXRJbnRlcm5hbENoYWluQ29kZShpbnB1dC5zY3JpcHRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcgPyAncDJ0ck11c2lnMicgOiBpbnB1dC5zY3JpcHRUeXBlKTtcbiAgICByZXR1cm4gbW9ja1dhbGxldFVuc3BlbnQobmV0d29yaywgaW5wdXQudmFsdWUsIHtcbiAgICAgIGNoYWluLFxuICAgICAgdm91dDogaW5kZXgsXG4gICAgICBrZXlzOiByb290V2FsbGV0S2V5cyxcbiAgICAgIGluZGV4LFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogcmV0dXJucyBzaWduZXIgYW5kIGNvc2lnbmVyIG5hbWVzIGZvciBJbnB1dFNjcmlwdFR5cGUuXG4gKiB1c2VyIGFuZCB1bmRlZmluZWQgYXMgc2lnbmVyIGFuZCBjb3NpZ25lciByZXNwZWN0aXZlbHkgZm9yIHAyc2hQMnBrLlxuICogdXNlciBhbmQgYmFja3VwIGFzIHNpZ25lciBhbmQgY29zaWduZXIgcmVzcGVjdGl2ZWx5IGZvciBwMnRyTXVzaWcyLlxuICogdXNlciBhbmQgYml0Z28gYXMgc2lnbmVyIGFuZCBjb3NpZ25lciByZXNwZWN0aXZlbHkgZm9yIG90aGVyIGlucHV0IHNjcmlwdCB0eXBlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ25lcnMoaW5wdXRUeXBlOiBJbnB1dFNjcmlwdFR5cGUpOiB7IHNpZ25lck5hbWU6IEtleU5hbWU7IGNvc2lnbmVyTmFtZT86IEtleU5hbWUgfSB7XG4gIHJldHVybiB7XG4gICAgc2lnbmVyTmFtZTogJ3VzZXInLFxuICAgIGNvc2lnbmVyTmFtZTogaW5wdXRUeXBlID09PSAncDJzaFAycGsnID8gdW5kZWZpbmVkIDogaW5wdXRUeXBlID09PSAncDJ0ck11c2lnMicgPyAnYmFja3VwJyA6ICdiaXRnbycsXG4gIH07XG59XG5cbi8qKlxuICogc2lnbnMgd2l0aCBmaXJzdCBvciBzZWNvbmQgc2lnbmF0dXJlIGZvciBzaW5nbGUgaW5wdXQuXG4gKiBwMnNoUDJwayBpcyBzaWduZWQgb25seSB3aXRoIGZpcnN0IHNpZ24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduUHNidElucHV0KFxuICBwc2J0OiBVdHhvUHNidCxcbiAgaW5wdXQ6IElucHV0LFxuICBpbnB1dEluZGV4OiBudW1iZXIsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgc2lnbjogJ2hhbGZzaWduZWQnIHwgJ2Z1bGxzaWduZWQnLFxuICBwYXJhbXM/OiB7XG4gICAgc2lnbmVycz86IHsgc2lnbmVyTmFtZTogS2V5TmFtZTsgY29zaWduZXJOYW1lPzogS2V5TmFtZSB9O1xuICAgIGRldGVybWluaXN0aWM/OiBib29sZWFuO1xuICAgIC8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBrZWVwIHRoaXMgaGVyZS5cbiAgICBza2lwTm9uV2l0bmVzc1V0eG8/OiBib29sZWFuO1xuICB9XG4pOiB2b2lkIHtcbiAgY29uc3QgeyBzaWduZXJzLCBkZXRlcm1pbmlzdGljIH0gPSBwYXJhbXMgPz8ge307XG4gIGNvbnN0IHsgc2lnbmVyTmFtZSwgY29zaWduZXJOYW1lIH0gPSBzaWduZXJzID8gc2lnbmVycyA6IGdldFNpZ25lcnMoaW5wdXQuc2NyaXB0VHlwZSk7XG4gIGlmIChzaWduID09PSAnaGFsZnNpZ25lZCcpIHtcbiAgICBpZiAoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgICAgcHNidC5zaWduSW5wdXQoaW5wdXRJbmRleCwgcm9vdFdhbGxldEtleXNbc2lnbmVyTmFtZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwc2J0LnNpZ25JbnB1dEhEKGlucHV0SW5kZXgsIHJvb3RXYWxsZXRLZXlzW3NpZ25lck5hbWVdKTtcbiAgICB9XG4gIH1cbiAgaWYgKHNpZ24gPT09ICdmdWxsc2lnbmVkJyAmJiBjb3NpZ25lck5hbWUgJiYgaW5wdXQuc2NyaXB0VHlwZSAhPT0gJ3Ayc2hQMnBrJykge1xuICAgIHBzYnQuc2lnbklucHV0SEQoaW5wdXRJbmRleCwgcm9vdFdhbGxldEtleXNbY29zaWduZXJOYW1lXSwgeyBkZXRlcm1pbmlzdGljIH0pO1xuICB9XG59XG5cbi8qKlxuICogc2lnbnMgd2l0aCBmaXJzdCBvciBzZWNvbmQgc2lnbmF0dXJlIGZvciBhbGwgaW5wdXRzLlxuICogcDJzaFAycGsgaXMgc2lnbmVkIG9ubHkgd2l0aCBmaXJzdCBzaWduLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbkFsbFBzYnRJbnB1dHMoXG4gIHBzYnQ6IFV0eG9Qc2J0LFxuICBpbnB1dHM6IElucHV0W10sXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgc2lnbjogJ2hhbGZzaWduZWQnIHwgJ2Z1bGxzaWduZWQnLFxuICBwYXJhbXM/OiB7XG4gICAgc2lnbmVycz86IHsgc2lnbmVyTmFtZTogS2V5TmFtZTsgY29zaWduZXJOYW1lPzogS2V5TmFtZSB9O1xuICAgIGRldGVybWluaXN0aWM/OiBib29sZWFuO1xuICAgIC8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBrZWVwIHRoaXMgaGVyZS5cbiAgICBza2lwTm9uV2l0bmVzc1V0eG8/OiBib29sZWFuO1xuICB9XG4pOiB2b2lkIHtcbiAgY29uc3QgeyBzaWduZXJzLCBkZXRlcm1pbmlzdGljIH0gPSBwYXJhbXMgPz8ge307XG4gIGlucHV0cy5mb3JFYWNoKChpbnB1dCwgaW5wdXRJbmRleCkgPT4ge1xuICAgIHNpZ25Qc2J0SW5wdXQocHNidCwgaW5wdXQsIGlucHV0SW5kZXgsIHJvb3RXYWxsZXRLZXlzLCBzaWduLCB7IHNpZ25lcnMsIGRldGVybWluaXN0aWMgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIGNvbnN0cnVjdCBwc2J0IGZvciBnaXZlbiBpbnB1dHMsIG91dHB1dHMsIG5ldHdvcmsgYW5kIHJvb3Qgd2FsbGV0IGtleXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RQc2J0KFxuICBpbnB1dHM6IElucHV0W10sXG4gIG91dHB1dHM6IE91dHB1dFtdLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ25TdGFnZTogU2lnblN0YWdlLFxuICBwYXJhbXM/OiB7XG4gICAgc2lnbmVycz86IHsgc2lnbmVyTmFtZTogS2V5TmFtZTsgY29zaWduZXJOYW1lPzogS2V5TmFtZSB9O1xuICAgIGRldGVybWluaXN0aWM/OiBib29sZWFuO1xuICAgIHNraXBOb25XaXRuZXNzVXR4bz86IGJvb2xlYW47XG4gICAgYWRkR2xvYmFsWFB1YnM/OiBib29sZWFuO1xuICB9XG4pOiBVdHhvUHNidCB7XG4gIGNvbnN0IHsgc2lnbmVycywgZGV0ZXJtaW5pc3RpYywgc2tpcE5vbldpdG5lc3NVdHhvIH0gPSBwYXJhbXMgPz8ge307XG4gIGNvbnN0IHRvdGFsSW5wdXRBbW91bnQgPSBpbnB1dHMucmVkdWNlKChzdW0sIGlucHV0KSA9PiBzdW0gKyBpbnB1dC52YWx1ZSwgQmlnSW50KDApKTtcbiAgY29uc3Qgb3V0cHV0SW5wdXRBbW91bnQgPSBvdXRwdXRzLnJlZHVjZSgoc3VtLCBvdXRwdXQpID0+IHN1bSArIG91dHB1dC52YWx1ZSwgQmlnSW50KDApKTtcbiAgYXNzZXJ0KHRvdGFsSW5wdXRBbW91bnQgPj0gb3V0cHV0SW5wdXRBbW91bnQsICd0b3RhbCBvdXRwdXQgY2FuIG5vdCBleGNlZWQgdG90YWwgaW5wdXQnKTtcblxuICBjb25zdCBwc2J0ID0gY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrIH0pO1xuXG4gIGlmIChwYXJhbXM/LmFkZEdsb2JhbFhQdWJzKSB7XG4gICAgYWRkWHB1YnNUb1BzYnQocHNidCwgcm9vdFdhbGxldEtleXMpO1xuICB9XG5cbiAgY29uc3QgdW5zcGVudHMgPSBpbnB1dHMubWFwKChpbnB1dCwgaSkgPT4gdG9VbnNwZW50KGlucHV0LCBpLCBuZXR3b3JrLCByb290V2FsbGV0S2V5cykpO1xuXG4gIHVuc3BlbnRzLmZvckVhY2goKHUsIGkpID0+IHtcbiAgICBjb25zdCB7IHNpZ25lck5hbWUsIGNvc2lnbmVyTmFtZSB9ID0gc2lnbmVycyA/IHNpZ25lcnMgOiBnZXRTaWduZXJzKGlucHV0c1tpXS5zY3JpcHRUeXBlKTtcbiAgICBpZiAoaXNXYWxsZXRVbnNwZW50KHUpICYmIGNvc2lnbmVyTmFtZSkge1xuICAgICAgYWRkV2FsbGV0VW5zcGVudFRvUHNidChwc2J0LCB1LCByb290V2FsbGV0S2V5cywgc2lnbmVyTmFtZSwgY29zaWduZXJOYW1lLCB7IHNraXBOb25XaXRuZXNzVXR4byB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyByZWRlZW1TY3JpcHQgfSA9IGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrKHJvb3RXYWxsZXRLZXlzLnVzZXIucHVibGljS2V5KTtcbiAgICAgIGFzc2VydChyZWRlZW1TY3JpcHQpO1xuICAgICAgYWRkUmVwbGF5UHJvdGVjdGlvblVuc3BlbnRUb1BzYnQocHNidCwgdSwgcmVkZWVtU2NyaXB0LCB7IHNraXBOb25XaXRuZXNzVXR4byB9KTtcbiAgICB9XG4gIH0pO1xuXG4gIG91dHB1dHMuZm9yRWFjaCgob3V0cHV0LCBpKSA9PiB7XG4gICAgaWYgKCdzY3JpcHRUeXBlJyBpbiBvdXRwdXQpIHtcbiAgICAgIGFkZFdhbGxldE91dHB1dFRvUHNidChcbiAgICAgICAgcHNidCxcbiAgICAgICAgb3V0cHV0LndhbGxldEtleXMgPz8gcm9vdFdhbGxldEtleXMsXG4gICAgICAgIG91dHB1dC5pc0ludGVybmFsQWRkcmVzcyA/IGdldEludGVybmFsQ2hhaW5Db2RlKG91dHB1dC5zY3JpcHRUeXBlKSA6IGdldEV4dGVybmFsQ2hhaW5Db2RlKG91dHB1dC5zY3JpcHRUeXBlKSxcbiAgICAgICAgaSxcbiAgICAgICAgb3V0cHV0LnZhbHVlLFxuICAgICAgICB7IGFkZERlcml2YXRpb25JbmZvOiBvdXRwdXQud2FsbGV0S2V5cyAhPT0gbnVsbCB9XG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoJ2FkZHJlc3MnIGluIG91dHB1dCkge1xuICAgICAgY29uc3QgeyBhZGRyZXNzLCB2YWx1ZSB9ID0gb3V0cHV0O1xuICAgICAgcHNidC5hZGRPdXRwdXQoeyBzY3JpcHQ6IHRvT3V0cHV0U2NyaXB0KGFkZHJlc3MsIG5ldHdvcmspLCB2YWx1ZSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCdvcFJldHVybicgaW4gb3V0cHV0KSB7XG4gICAgICBjb25zdCB7IG9wUmV0dXJuLCB2YWx1ZSB9ID0gb3V0cHV0O1xuICAgICAgY29uc3Qgc2NyaXB0ID0gYml0Y29pbmpzbGliLnBheW1lbnRzLmVtYmVkKHsgZGF0YTogW0J1ZmZlci5mcm9tKG9wUmV0dXJuLCAnYXNjaWknKV0gfSkub3V0cHV0O1xuICAgICAgYXNzZXJ0KHNjcmlwdCwgJ3NjcmlwdCBpcyByZXF1aXJlZCcpO1xuICAgICAgcHNidC5hZGRPdXRwdXQoeyBzY3JpcHQsIHZhbHVlIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoJ3NjcmlwdCcgaW4gb3V0cHV0KSB7XG4gICAgICBjb25zdCB7IHNjcmlwdCwgdmFsdWUgfSA9IG91dHB1dDtcbiAgICAgIHBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0OiBCdWZmZXIuZnJvbShzY3JpcHQsICdoZXgnKSwgdmFsdWUgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIG91dHB1dCcpO1xuICB9KTtcblxuICBpZiAoc2lnblN0YWdlID09PSAndW5zaWduZWQnKSB7XG4gICAgcmV0dXJuIHBzYnQ7XG4gIH1cblxuICAvKiB1c2UgZml4ZWQgc2Vzc2lvbklkIGZvciBkZXRlcm1pbmlzdGljIG5vbmNlIGNyZWF0aW9uICovXG4gIGNvbnN0IHNlc3Npb25JZCA9IEJ1ZmZlci5hbGxvYygzMik7XG4gIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5c1sndXNlciddLCB7IHNlc3Npb25JZCB9KTtcbiAgcHNidC5zZXRBbGxJbnB1dHNNdXNpZzJOb25jZUhEKHJvb3RXYWxsZXRLZXlzWydiaXRnbyddLCB7IGRldGVybWluaXN0aWMgfSk7XG5cbiAgc2lnbkFsbFBzYnRJbnB1dHMocHNidCwgaW5wdXRzLCByb290V2FsbGV0S2V5cywgJ2hhbGZzaWduZWQnLCB7IHNpZ25lcnMsIHNraXBOb25XaXRuZXNzVXR4byB9KTtcblxuICBpZiAoc2lnblN0YWdlID09PSAnZnVsbHNpZ25lZCcpIHtcbiAgICBzaWduQWxsUHNidElucHV0cyhwc2J0LCBpbnB1dHMsIHJvb3RXYWxsZXRLZXlzLCBzaWduU3RhZ2UsIHsgc2lnbmVycywgZGV0ZXJtaW5pc3RpYywgc2tpcE5vbldpdG5lc3NVdHhvIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBzYnQ7XG59XG5cbmV4cG9ydCBjb25zdCB0eEZvcm1hdHMgPSBbJ3BzYnQnLCAncHNidC1saXRlJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBUeEZvcm1hdCA9ICh0eXBlb2YgdHhGb3JtYXRzKVtudW1iZXJdO1xuXG50eXBlIFN1aXRlQ29uZmlnID0ge1xuICAvKipcbiAgICogQnkgZGVmYXVsdCwgd2UgaW5jbHVkZSBwMnRyTXVzaWcyIHNjcmlwdCBwYXRoIGluIHRoZSBpbnB1dHMuXG4gICAqIFRoaXMgaW5wdXQgaXMgYSBiaXQgb2YgYSB3ZWlyZG8gYmVjYXVzZSBpdCBpcyBzaWduZWQgYnkgdGhlIHVzZXIgYW5kIHRoZVxuICAgKiBiYWNrdXAga2V5LCB3aGljaCB1c3VhbGx5IGlzIG5vdCBtaXhlZCB3aXRoIG90aGVyIGlucHV0cyBhbmQgb3V0cHV0cy5cbiAgICpcbiAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRvIGV4Y2x1ZGUgdGhpcyBpbnB1dCBmcm9tIHRoZSBpbnB1dHMuXG4gICAqL1xuICBpbmNsdWRlUDJ0ck11c2lnMlNjcmlwdFBhdGg/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgdmFsaWQgUFNCVCB3aXRoIGFzIG1hbnkgZmVhdHVyZXMgYXMgcG9zc2libGUuXG4gKlxuICogLSBJbnB1dHM6XG4gKiAgIC0gQWxsIHdhbGxldCBzY3JpcHQgdHlwZXMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBuZXR3b3JrLlxuICogICAtIEEgcDJzaFAycGsgaW5wdXQgKGZvciByZXBsYXkgcHJvdGVjdGlvbilcbiAqIC0gT3V0cHV0czpcbiAqICAgLSBBbGwgd2FsbGV0IHNjcmlwdCB0eXBlcyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhlIG5ldHdvcmsuXG4gKiAgIC0gQSBwMnNoIG91dHB1dCB3aXRoIGRlcml2YXRpb24gaW5mbyBvZiBhIGRpZmZlcmVudCB3YWxsZXQgKG5vdCBpbiB0aGUgZ2xvYmFsIHBzYnQgeHB1YnMpXG4gKiAgIC0gQSBwMnNoIG91dHB1dCB3aXRoIG5vIGRlcml2YXRpb24gaW5mbyAoZXh0ZXJuYWwgb3V0cHV0KVxuICogICAtIEFuIE9QX1JFVFVSTiBvdXRwdXRcbiAqL1xuZXhwb3J0IGNsYXNzIEFjaWRUZXN0IHtcbiAgcHVibGljIHJlYWRvbmx5IG5ldHdvcms6IE5ldHdvcms7XG4gIHB1YmxpYyByZWFkb25seSBzaWduU3RhZ2U6IFNpZ25TdGFnZTtcbiAgcHVibGljIHJlYWRvbmx5IHR4Rm9ybWF0OiBUeEZvcm1hdDtcbiAgcHVibGljIHJlYWRvbmx5IHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cztcbiAgcHVibGljIHJlYWRvbmx5IG90aGVyV2FsbGV0S2V5czogUm9vdFdhbGxldEtleXM7XG4gIHB1YmxpYyByZWFkb25seSBpbnB1dHM6IElucHV0W107XG4gIHB1YmxpYyByZWFkb25seSBvdXRwdXRzOiBPdXRwdXRbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBuZXR3b3JrOiBOZXR3b3JrLFxuICAgIHNpZ25TdGFnZTogU2lnblN0YWdlLFxuICAgIHR4Rm9ybWF0OiBUeEZvcm1hdCxcbiAgICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gICAgb3RoZXJXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgICBpbnB1dHM6IElucHV0W10sXG4gICAgb3V0cHV0czogT3V0cHV0W11cbiAgKSB7XG4gICAgdGhpcy5uZXR3b3JrID0gbmV0d29yaztcbiAgICB0aGlzLnNpZ25TdGFnZSA9IHNpZ25TdGFnZTtcbiAgICB0aGlzLnR4Rm9ybWF0ID0gdHhGb3JtYXQ7XG4gICAgdGhpcy5yb290V2FsbGV0S2V5cyA9IHJvb3RXYWxsZXRLZXlzO1xuICAgIHRoaXMub3RoZXJXYWxsZXRLZXlzID0gb3RoZXJXYWxsZXRLZXlzO1xuICAgIHRoaXMuaW5wdXRzID0gaW5wdXRzO1xuICAgIHRoaXMub3V0cHV0cyA9IG91dHB1dHM7XG4gIH1cblxuICBzdGF0aWMgd2l0aENvbmZpZyhuZXR3b3JrOiBOZXR3b3JrLCBzaWduU3RhZ2U6IFNpZ25TdGFnZSwgdHhGb3JtYXQ6IFR4Rm9ybWF0LCBzdWl0ZUNvbmZpZzogU3VpdGVDb25maWcpOiBBY2lkVGVzdCB7XG4gICAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSBnZXREZWZhdWx0V2FsbGV0S2V5cygpO1xuXG4gICAgY29uc3Qgb3RoZXJXYWxsZXRLZXlzID0gZ2V0V2FsbGV0S2V5c0ZvclNlZWQoJ3RvbyBtYW55IHNlY3JldHMnKTtcbiAgICBjb25zdCBpbnB1dHM6IElucHV0W10gPSBpbnB1dFNjcmlwdFR5cGVzXG4gICAgICAuZmlsdGVyKChzY3JpcHRUeXBlKSA9PlxuICAgICAgICBzY3JpcHRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCdcbiAgICAgICAgICA/IGlzU3VwcG9ydGVkU2NyaXB0VHlwZShuZXR3b3JrLCAncDJ0ck11c2lnMicpXG4gICAgICAgICAgOiBpc1N1cHBvcnRlZFNjcmlwdFR5cGUobmV0d29yaywgc2NyaXB0VHlwZSlcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoKHNjcmlwdFR5cGUpID0+IChzdWl0ZUNvbmZpZy5pbmNsdWRlUDJ0ck11c2lnMlNjcmlwdFBhdGggPz8gdHJ1ZSkgfHwgc2NyaXB0VHlwZSAhPT0gJ3AydHJNdXNpZzInKVxuICAgICAgLm1hcCgoc2NyaXB0VHlwZSkgPT4gKHsgc2NyaXB0VHlwZSwgdmFsdWU6IEJpZ0ludCgyMDAwKSB9KSk7XG5cbiAgICBjb25zdCBvdXRwdXRzOiBPdXRwdXRbXSA9IG91dHB1dFNjcmlwdFR5cGVzXG4gICAgICAuZmlsdGVyKChzY3JpcHRUeXBlKSA9PiBpc1N1cHBvcnRlZFNjcmlwdFR5cGUobmV0d29yaywgc2NyaXB0VHlwZSkpXG4gICAgICAubWFwKChzY3JpcHRUeXBlKSA9PiAoeyBzY3JpcHRUeXBlLCB2YWx1ZTogQmlnSW50KDkwMCkgfSkpO1xuXG4gICAgLy8gVGVzdCBvdGhlciB3YWxsZXQgb3V0cHV0ICh3aXRoIGRlcml2YXRpb24gaW5mbylcbiAgICBvdXRwdXRzLnB1c2goeyBzY3JpcHRUeXBlOiAncDJzaCcsIHZhbHVlOiBCaWdJbnQoOTAwKSwgd2FsbGV0S2V5czogb3RoZXJXYWxsZXRLZXlzIH0pO1xuICAgIC8vIFRlcyBub24td2FsbGV0IG91dHB1dFxuICAgIG91dHB1dHMucHVzaCh7IHNjcmlwdFR5cGU6ICdwMnNoJywgdmFsdWU6IEJpZ0ludCg5MDApLCB3YWxsZXRLZXlzOiBudWxsIH0pO1xuICAgIC8vIFRlc3QgT1BfUkVUVVJOIG91dHB1dFxuICAgIG91dHB1dHMucHVzaCh7IG9wUmV0dXJuOiAnc2V0ZWMgYXN0cm9ub215JywgdmFsdWU6IEJpZ0ludCgwKSB9KTtcblxuICAgIHJldHVybiBuZXcgQWNpZFRlc3QobmV0d29yaywgc2lnblN0YWdlLCB0eEZvcm1hdCwgcm9vdFdhbGxldEtleXMsIG90aGVyV2FsbGV0S2V5cywgaW5wdXRzLCBvdXRwdXRzKTtcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbmV0d29ya05hbWUgPSBnZXROZXR3b3JrTmFtZSh0aGlzLm5ldHdvcmspO1xuICAgIHJldHVybiBgJHtuZXR3b3JrTmFtZX0gJHt0aGlzLnNpZ25TdGFnZX0gJHt0aGlzLnR4Rm9ybWF0fWA7XG4gIH1cblxuICBnZXRSZXBsYXlQcm90ZWN0aW9uT3V0cHV0U2NyaXB0KCk6IEJ1ZmZlciB7XG4gICAgY29uc3QgeyBzY3JpcHRQdWJLZXkgfSA9IGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrKHRoaXMucm9vdFdhbGxldEtleXMudXNlci5wdWJsaWNLZXkpO1xuICAgIGFzc2VydChzY3JpcHRQdWJLZXkpO1xuICAgIHJldHVybiBzY3JpcHRQdWJLZXk7XG4gIH1cblxuICBjcmVhdGVQc2J0KCk6IFV0eG9Qc2J0IHtcbiAgICBjb25zdCBwc2J0ID0gY29uc3RydWN0UHNidCh0aGlzLmlucHV0cywgdGhpcy5vdXRwdXRzLCB0aGlzLm5ldHdvcmssIHRoaXMucm9vdFdhbGxldEtleXMsIHRoaXMuc2lnblN0YWdlLCB7XG4gICAgICBkZXRlcm1pbmlzdGljOiB0cnVlLFxuICAgICAgYWRkR2xvYmFsWFB1YnM6IHRydWUsXG4gICAgfSk7XG4gICAgaWYgKHRoaXMudHhGb3JtYXQgPT09ICdwc2J0LWxpdGUnKSB7XG4gICAgICByZXR1cm4gY2xvbmVQc2J0V2l0aG91dE5vbldpdG5lc3NVdHhvKHBzYnQpO1xuICAgIH1cbiAgICByZXR1cm4gcHNidDtcbiAgfVxuXG4gIHN0YXRpYyBzdWl0ZShzdWl0ZUNvbmZpZzogU3VpdGVDb25maWcgPSB7fSk6IEFjaWRUZXN0W10ge1xuICAgIHJldHVybiBnZXROZXR3b3JrTGlzdCgpXG4gICAgICAuZmlsdGVyKChuZXR3b3JrKSA9PiBpc01haW5uZXQobmV0d29yaykgJiYgbmV0d29yayAhPT0gbmV0d29ya3MuYml0Y29pbnN2KVxuICAgICAgLmZsYXRNYXAoKG5ldHdvcmspID0+XG4gICAgICAgIHNpZ25TdGFnZXMuZmxhdE1hcCgoc2lnblN0YWdlKSA9PlxuICAgICAgICAgIHR4Rm9ybWF0cy5mbGF0TWFwKCh0eEZvcm1hdCkgPT4gQWNpZFRlc3Qud2l0aENvbmZpZyhuZXR3b3JrLCBzaWduU3RhZ2UsIHR4Rm9ybWF0LCBzdWl0ZUNvbmZpZykpXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBWZXJpZmllcyBzaWduYXR1cmVzIG9mIGZ1bGx5IHNpZ25lZCB0eCAod2l0aCB0YXByb290IGtleSBwYXRoIHN1cHBvcnQpLlxuICogTk9URTogdGFwcm9vdCBrZXkgcGF0aCB0eCBjYW4gb25seSBiZSBidWlsdCBhbmQgc2lnbmVkIHdpdGggUFNCVC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUZ1bGx5U2lnbmVkU2lnbmF0dXJlcyhcbiAgdHg6IFV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+LFxuICB1bnNwZW50czogVW5zcGVudDxiaWdpbnQ+W10sXG4gIHdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduZXI6IEtleU5hbWUsXG4gIGNvc2lnbmVyOiBLZXlOYW1lXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcHJldk91dHB1dHMgPSB1bnNwZW50cy5tYXAoKHUpID0+IHRvT3V0cHV0KHUsIHR4Lm5ldHdvcmspKTtcbiAgcmV0dXJuIHVuc3BlbnRzLmV2ZXJ5KCh1LCBpbmRleCkgPT4ge1xuICAgIGlmIChwYXJzZVNpZ25hdHVyZVNjcmlwdDJPZjModHguaW5zW2luZGV4XSkuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBnZXRTaWduYXR1cmVWZXJpZmljYXRpb25zKHR4LCBpbmRleCwgdS52YWx1ZSwgdW5kZWZpbmVkLCBwcmV2T3V0cHV0cyk7XG4gICAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA9PT0gMSAmJiByZXN1bHRbMF0uc2lnbmF0dXJlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB2ZXJpZnlTaWduYXR1cmVXaXRoVW5zcGVudCh0eCwgaW5kZXgsIHVuc3BlbnRzLCB3YWxsZXRLZXlzKTtcbiAgICAgIGlmICgoc2lnbmVyID09PSAndXNlcicgJiYgY29zaWduZXIgPT09ICdiaXRnbycpIHx8IChzaWduZXIgPT09ICdiaXRnbycgJiYgY29zaWduZXIgPT09ICd1c2VyJykpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFswXSAmJiAhcmVzdWx0WzFdICYmIHJlc3VsdFsyXTtcbiAgICAgIH0gZWxzZSBpZiAoKHNpZ25lciA9PT0gJ3VzZXInICYmIGNvc2lnbmVyID09PSAnYmFja3VwJykgfHwgKHNpZ25lciA9PT0gJ2JhY2t1cCcgJiYgY29zaWduZXIgPT09ICd1c2VyJykpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFswXSAmJiByZXN1bHRbMV0gJiYgIXJlc3VsdFsyXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAhcmVzdWx0WzBdICYmIHJlc3VsdFsxXSAmJiByZXN1bHRbMl07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9GQSw4QkFpQkM7QUFRRCxnQ0FLQztBQU1ELHNDQXlCQztBQU1ELDhDQWdCQztBQUtELHNDQW1GQztBQTJIRCxrRUF1QkM7QUFqWkQsOENBQThDO0FBQzlDLG1DQUFzQztBQUV0QywwREFPZ0M7QUFDaEMsb0NBbUJrQjtBQUNsQiwwQ0FBMkY7QUFDM0YsaUNBQXdFO0FBQ3hFLHdDQUE0QztBQUM1QyxpQ0FBb0U7QUFtQnZELFFBQUEsVUFBVSxHQUFHLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLENBQVUsQ0FBQztBQWdCNUU7Ozs7R0FJRztBQUNVLFFBQUEsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLCtCQUFlLEVBQUUscUJBQXFCLEVBQUUsa0NBQWtCLENBQVUsQ0FBQztBQUV6Rzs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsK0JBQWUsQ0FBQztBQUVqRDs7R0FFRztBQUNILFNBQWdCLFNBQVMsQ0FDdkIsS0FBWSxFQUNaLEtBQWEsRUFDYixPQUFnQixFQUNoQixjQUE4QjtJQUU5QixJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFBLGtDQUEyQixFQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN6RyxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sS0FBSyxHQUFHLElBQUEsNEJBQW9CLEVBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakgsT0FBTyxJQUFBLHdCQUFp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TSxJQUFJLFFBQVEsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLElBQUksUUFBUSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQy9GLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDO2lCQUFNLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLFFBQVEsS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksUUFBUSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3hHLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYml0Y29pbmpzbGliIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0IHsgb2sgYXMgYXNzZXJ0IH0gZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHtcbiAgY3JlYXRlT3V0cHV0U2NyaXB0UDJzaFAycGssXG4gIGlzU3VwcG9ydGVkU2NyaXB0VHlwZSxcbiAgU2NyaXB0VHlwZSxcbiAgU2NyaXB0VHlwZTJPZjMsXG4gIHNjcmlwdFR5cGVQMnNoUDJwayxcbiAgc2NyaXB0VHlwZXMyT2YzLFxufSBmcm9tICcuLi9iaXRnby9vdXRwdXRTY3JpcHRzJztcbmltcG9ydCB7XG4gIGFkZFJlcGxheVByb3RlY3Rpb25VbnNwZW50VG9Qc2J0LFxuICBhZGRXYWxsZXRPdXRwdXRUb1BzYnQsXG4gIGFkZFdhbGxldFVuc3BlbnRUb1BzYnQsXG4gIGNyZWF0ZVBzYnRGb3JOZXR3b3JrLFxuICBnZXRFeHRlcm5hbENoYWluQ29kZSxcbiAgZ2V0SW50ZXJuYWxDaGFpbkNvZGUsXG4gIGdldFNpZ25hdHVyZVZlcmlmaWNhdGlvbnMsXG4gIGlzV2FsbGV0VW5zcGVudCxcbiAgS2V5TmFtZSxcbiAgcGFyc2VTaWduYXR1cmVTY3JpcHQyT2YzLFxuICBSb290V2FsbGV0S2V5cyxcbiAgdG9PdXRwdXQsXG4gIFVuc3BlbnQsXG4gIFV0eG9Qc2J0LFxuICBVdHhvVHJhbnNhY3Rpb24sXG4gIHZlcmlmeVNpZ25hdHVyZVdpdGhVbnNwZW50LFxuICBhZGRYcHVic1RvUHNidCxcbiAgY2xvbmVQc2J0V2l0aG91dE5vbldpdG5lc3NVdHhvLFxufSBmcm9tICcuLi9iaXRnbyc7XG5pbXBvcnQgeyBnZXROZXR3b3JrTGlzdCwgZ2V0TmV0d29ya05hbWUsIGlzTWFpbm5ldCwgTmV0d29yaywgbmV0d29ya3MgfSBmcm9tICcuLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBtb2NrUmVwbGF5UHJvdGVjdGlvblVuc3BlbnQsIG1vY2tXYWxsZXRVbnNwZW50IH0gZnJvbSAnLi9tb2NrJztcbmltcG9ydCB7IHRvT3V0cHV0U2NyaXB0IH0gZnJvbSAnLi4vYWRkcmVzcyc7XG5pbXBvcnQgeyBnZXREZWZhdWx0V2FsbGV0S2V5cywgZ2V0V2FsbGV0S2V5c0ZvclNlZWQgfSBmcm9tICcuL2tleXMnO1xuXG4vKipcbiAqIFRoaXMgaXMgYSBiaXQgb2YgYSBtaXNub21lciwgYXMgaXQgYWN0dWFsbHkgc3BlY2lmaWVzIHRoZSBzcGVuZCB0eXBlIG9mIHRoZSBpbnB1dC5cbiAqIFRoaXMgbWFrZXMgYSBkaWZmZXJlbmNlIGZvciBwMnRyTXVzaWcyIGlucHV0cywgYXMgdGhleSBjYW4gYmUgc3BlbnQgZWl0aGVyIGJ5IGtleSBwYXRoIG9yIHNjcmlwdCBwYXRoLlxuICogVGhlIHZhbHVlIHAydHJNdXNpZzIgaXMgdXNlZCBmb3IgcDJ0ck11c2lnMiBzY3JpcHQgcGF0aC5cbiAqIFRoZSB2YWx1ZSB0YXByb290S2V5UGF0aFNwZW5kIGlzIHVzZWQgZm9yIHAydHJNdXNpZzIga2V5IHBhdGguXG4gKi9cbmV4cG9ydCB0eXBlIElucHV0U2NyaXB0VHlwZSA9IFNjcmlwdFR5cGUgfCAndGFwcm9vdEtleVBhdGhTcGVuZCc7XG5leHBvcnQgdHlwZSBPdXRwdXRTY3JpcHRUeXBlID0gU2NyaXB0VHlwZTJPZjM7XG5cbi8qKlxuICogaW5wdXQgc2NyaXB0IHR5cGUgYW5kIHZhbHVlXG4gKi9cbmV4cG9ydCB0eXBlIElucHV0ID0ge1xuICBzY3JpcHRUeXBlOiBJbnB1dFNjcmlwdFR5cGU7XG4gIHZhbHVlOiBiaWdpbnQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc2lnblN0YWdlcyA9IFsndW5zaWduZWQnLCAnaGFsZnNpZ25lZCcsICdmdWxsc2lnbmVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTaWduU3RhZ2UgPSAodHlwZW9mIHNpZ25TdGFnZXMpW251bWJlcl07XG5cbi8qKlxuICogU2V0IGlzSW50ZXJuYWxBZGRyZXNzPXRydWUgZm9yIGludGVybmFsIG91dHB1dCBhZGRyZXNzXG4gKi9cbi8vIE1ha2Ugc2NyaXB0OiBzdHJpbmcgYXMgaW5zdGVhZCBvZiBzY3JpcHRUeXBlIG9yIGFkZHJlc3NcbmV4cG9ydCB0eXBlIE91dHB1dCA9IHtcbiAgdmFsdWU6IGJpZ2ludDtcbiAgLy8gRGV0ZXJtaW5lcyBjaGFpbiBjb2RlIGZvciB0aGUgb3V0cHV0XG4gIGlzSW50ZXJuYWxBZGRyZXNzPzogYm9vbGVhbjtcbiAgLy8gRGV0ZXJtaW5lcyB0aGUgd2FsbGV0IGtleXMgdG8gdXNlIGZvciB0aGUgb3V0cHV0LiBCeSBkZWZhdWx0IHVzZSByb290IHdhbGxldCBrZXlzIHVzZWQgZm9yIHRoZSBpbnB1dHMuXG4gIC8vIFdoZW4gc2V0IHRvIG51bGwsIG9taXRzIHRoZSBkZXJpdmF0aW9uIGluZm8gYW5kIGVmZmVjdGl2ZWx5IG1ha2VzIHRoZSBvdXRwdXQgbm9uLXdhbGxldCBvdXRwdXQuXG4gIHdhbGxldEtleXM/OiBSb290V2FsbGV0S2V5cyB8IG51bGw7XG59ICYgKHsgc2NyaXB0VHlwZTogT3V0cHV0U2NyaXB0VHlwZSB9IHwgeyBhZGRyZXNzOiBzdHJpbmcgfSB8IHsgc2NyaXB0OiBzdHJpbmcgfSB8IHsgb3BSZXR1cm46IHN0cmluZyB9KTtcblxuLyoqXG4gKiBhcnJheSBvZiBzdXBwb3J0ZWQgaW5wdXQgc2NyaXB0IHR5cGVzLlxuICogdXNlIHAydHJNdXNpZzIgZm9yIHAydHJNdXNpZzIgc2NyaXB0IHBhdGguXG4gKiB1c2UgdGFwcm9vdEtleVBhdGhTcGVuZCBmb3IgcDJ0ck11c2lnMiBrZXkgcGF0aC5cbiAqL1xuZXhwb3J0IGNvbnN0IGlucHV0U2NyaXB0VHlwZXMgPSBbLi4uc2NyaXB0VHlwZXMyT2YzLCAndGFwcm9vdEtleVBhdGhTcGVuZCcsIHNjcmlwdFR5cGVQMnNoUDJwa10gYXMgY29uc3Q7XG5cbi8qKlxuICogYXJyYXkgb2Ygc3VwcG9ydGVkIG91dHB1dCBzY3JpcHQgdHlwZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBvdXRwdXRTY3JpcHRUeXBlcyA9IHNjcmlwdFR5cGVzMk9mMztcblxuLyoqXG4gKiBjcmVhdGUgdW5zcGVudCBvYmplY3QgZnJvbSBpbnB1dCBzY3JpcHQgdHlwZSwgaW5kZXgsIG5ldHdvcmsgYW5kIHJvb3Qgd2FsbGV0IGtleS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVW5zcGVudChcbiAgaW5wdXQ6IElucHV0LFxuICBpbmRleDogbnVtYmVyLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXNcbik6IFVuc3BlbnQ8YmlnaW50PiB7XG4gIGlmIChpbnB1dC5zY3JpcHRUeXBlID09PSAncDJzaFAycGsnKSB7XG4gICAgcmV0dXJuIG1vY2tSZXBsYXlQcm90ZWN0aW9uVW5zcGVudChuZXR3b3JrLCBpbnB1dC52YWx1ZSwgeyBrZXk6IHJvb3RXYWxsZXRLZXlzWyd1c2VyJ10sIHZvdXQ6IGluZGV4IH0pO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNoYWluID0gZ2V0SW50ZXJuYWxDaGFpbkNvZGUoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnID8gJ3AydHJNdXNpZzInIDogaW5wdXQuc2NyaXB0VHlwZSk7XG4gICAgcmV0dXJuIG1vY2tXYWxsZXRVbnNwZW50KG5ldHdvcmssIGlucHV0LnZhbHVlLCB7XG4gICAgICBjaGFpbixcbiAgICAgIHZvdXQ6IGluZGV4LFxuICAgICAga2V5czogcm9vdFdhbGxldEtleXMsXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIHJldHVybnMgc2lnbmVyIGFuZCBjb3NpZ25lciBuYW1lcyBmb3IgSW5wdXRTY3JpcHRUeXBlLlxuICogdXNlciBhbmQgdW5kZWZpbmVkIGFzIHNpZ25lciBhbmQgY29zaWduZXIgcmVzcGVjdGl2ZWx5IGZvciBwMnNoUDJway5cbiAqIHVzZXIgYW5kIGJhY2t1cCBhcyBzaWduZXIgYW5kIGNvc2lnbmVyIHJlc3BlY3RpdmVseSBmb3IgcDJ0ck11c2lnMi5cbiAqIHVzZXIgYW5kIGJpdGdvIGFzIHNpZ25lciBhbmQgY29zaWduZXIgcmVzcGVjdGl2ZWx5IGZvciBvdGhlciBpbnB1dCBzY3JpcHQgdHlwZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaWduZXJzKGlucHV0VHlwZTogSW5wdXRTY3JpcHRUeXBlKTogeyBzaWduZXJOYW1lOiBLZXlOYW1lOyBjb3NpZ25lck5hbWU/OiBLZXlOYW1lIH0ge1xuICByZXR1cm4ge1xuICAgIHNpZ25lck5hbWU6ICd1c2VyJyxcbiAgICBjb3NpZ25lck5hbWU6IGlucHV0VHlwZSA9PT0gJ3Ayc2hQMnBrJyA/IHVuZGVmaW5lZCA6IGlucHV0VHlwZSA9PT0gJ3AydHJNdXNpZzInID8gJ2JhY2t1cCcgOiAnYml0Z28nLFxuICB9O1xufVxuXG4vKipcbiAqIHNpZ25zIHdpdGggZmlyc3Qgb3Igc2Vjb25kIHNpZ25hdHVyZSBmb3Igc2luZ2xlIGlucHV0LlxuICogcDJzaFAycGsgaXMgc2lnbmVkIG9ubHkgd2l0aCBmaXJzdCBzaWduLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnblBzYnRJbnB1dChcbiAgcHNidDogVXR4b1BzYnQsXG4gIGlucHV0OiBJbnB1dCxcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ246ICdoYWxmc2lnbmVkJyB8ICdmdWxsc2lnbmVkJyxcbiAgcGFyYW1zPzoge1xuICAgIHNpZ25lcnM/OiB7IHNpZ25lck5hbWU6IEtleU5hbWU7IGNvc2lnbmVyTmFtZT86IEtleU5hbWUgfTtcbiAgICBkZXRlcm1pbmlzdGljPzogYm9vbGVhbjtcbiAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkga2VlcCB0aGlzIGhlcmUuXG4gICAgc2tpcE5vbldpdG5lc3NVdHhvPzogYm9vbGVhbjtcbiAgfVxuKTogdm9pZCB7XG4gIGNvbnN0IHsgc2lnbmVycywgZGV0ZXJtaW5pc3RpYyB9ID0gcGFyYW1zID8/IHt9O1xuICBjb25zdCB7IHNpZ25lck5hbWUsIGNvc2lnbmVyTmFtZSB9ID0gc2lnbmVycyA/IHNpZ25lcnMgOiBnZXRTaWduZXJzKGlucHV0LnNjcmlwdFR5cGUpO1xuICBpZiAoc2lnbiA9PT0gJ2hhbGZzaWduZWQnKSB7XG4gICAgaWYgKGlucHV0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJwaycpIHtcbiAgICAgIHBzYnQuc2lnbklucHV0KGlucHV0SW5kZXgsIHJvb3RXYWxsZXRLZXlzW3NpZ25lck5hbWVdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHNidC5zaWduSW5wdXRIRChpbnB1dEluZGV4LCByb290V2FsbGV0S2V5c1tzaWduZXJOYW1lXSk7XG4gICAgfVxuICB9XG4gIGlmIChzaWduID09PSAnZnVsbHNpZ25lZCcgJiYgY29zaWduZXJOYW1lICYmIGlucHV0LnNjcmlwdFR5cGUgIT09ICdwMnNoUDJwaycpIHtcbiAgICBwc2J0LnNpZ25JbnB1dEhEKGlucHV0SW5kZXgsIHJvb3RXYWxsZXRLZXlzW2Nvc2lnbmVyTmFtZV0sIHsgZGV0ZXJtaW5pc3RpYyB9KTtcbiAgfVxufVxuXG4vKipcbiAqIHNpZ25zIHdpdGggZmlyc3Qgb3Igc2Vjb25kIHNpZ25hdHVyZSBmb3IgYWxsIGlucHV0cy5cbiAqIHAyc2hQMnBrIGlzIHNpZ25lZCBvbmx5IHdpdGggZmlyc3Qgc2lnbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbGxQc2J0SW5wdXRzKFxuICBwc2J0OiBVdHhvUHNidCxcbiAgaW5wdXRzOiBJbnB1dFtdLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ246ICdoYWxmc2lnbmVkJyB8ICdmdWxsc2lnbmVkJyxcbiAgcGFyYW1zPzoge1xuICAgIHNpZ25lcnM/OiB7IHNpZ25lck5hbWU6IEtleU5hbWU7IGNvc2lnbmVyTmFtZT86IEtleU5hbWUgfTtcbiAgICBkZXRlcm1pbmlzdGljPzogYm9vbGVhbjtcbiAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkga2VlcCB0aGlzIGhlcmUuXG4gICAgc2tpcE5vbldpdG5lc3NVdHhvPzogYm9vbGVhbjtcbiAgfVxuKTogdm9pZCB7XG4gIGNvbnN0IHsgc2lnbmVycywgZGV0ZXJtaW5pc3RpYyB9ID0gcGFyYW1zID8/IHt9O1xuICBpbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICBzaWduUHNidElucHV0KHBzYnQsIGlucHV0LCBpbnB1dEluZGV4LCByb290V2FsbGV0S2V5cywgc2lnbiwgeyBzaWduZXJzLCBkZXRlcm1pbmlzdGljIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBjb25zdHJ1Y3QgcHNidCBmb3IgZ2l2ZW4gaW5wdXRzLCBvdXRwdXRzLCBuZXR3b3JrIGFuZCByb290IHdhbGxldCBrZXlzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0UHNidChcbiAgaW5wdXRzOiBJbnB1dFtdLFxuICBvdXRwdXRzOiBPdXRwdXRbXSxcbiAgbmV0d29yazogTmV0d29yayxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBzaWduU3RhZ2U6IFNpZ25TdGFnZSxcbiAgcGFyYW1zPzoge1xuICAgIHNpZ25lcnM/OiB7IHNpZ25lck5hbWU6IEtleU5hbWU7IGNvc2lnbmVyTmFtZT86IEtleU5hbWUgfTtcbiAgICBkZXRlcm1pbmlzdGljPzogYm9vbGVhbjtcbiAgICBza2lwTm9uV2l0bmVzc1V0eG8/OiBib29sZWFuO1xuICAgIGFkZEdsb2JhbFhQdWJzPzogYm9vbGVhbjtcbiAgfVxuKTogVXR4b1BzYnQge1xuICBjb25zdCB7IHNpZ25lcnMsIGRldGVybWluaXN0aWMsIHNraXBOb25XaXRuZXNzVXR4byB9ID0gcGFyYW1zID8/IHt9O1xuICBjb25zdCB0b3RhbElucHV0QW1vdW50ID0gaW5wdXRzLnJlZHVjZSgoc3VtLCBpbnB1dCkgPT4gc3VtICsgaW5wdXQudmFsdWUsIEJpZ0ludCgwKSk7XG4gIGNvbnN0IG91dHB1dElucHV0QW1vdW50ID0gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBvdXRwdXQudmFsdWUsIEJpZ0ludCgwKSk7XG4gIGFzc2VydCh0b3RhbElucHV0QW1vdW50ID49IG91dHB1dElucHV0QW1vdW50LCAndG90YWwgb3V0cHV0IGNhbiBub3QgZXhjZWVkIHRvdGFsIGlucHV0Jyk7XG5cbiAgY29uc3QgcHNidCA9IGNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yayB9KTtcblxuICBpZiAocGFyYW1zPy5hZGRHbG9iYWxYUHVicykge1xuICAgIGFkZFhwdWJzVG9Qc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzKTtcbiAgfVxuXG4gIGNvbnN0IHVuc3BlbnRzID0gaW5wdXRzLm1hcCgoaW5wdXQsIGkpID0+IHRvVW5zcGVudChpbnB1dCwgaSwgbmV0d29yaywgcm9vdFdhbGxldEtleXMpKTtcblxuICB1bnNwZW50cy5mb3JFYWNoKCh1LCBpKSA9PiB7XG4gICAgY29uc3QgeyBzaWduZXJOYW1lLCBjb3NpZ25lck5hbWUgfSA9IHNpZ25lcnMgPyBzaWduZXJzIDogZ2V0U2lnbmVycyhpbnB1dHNbaV0uc2NyaXB0VHlwZSk7XG4gICAgaWYgKGlzV2FsbGV0VW5zcGVudCh1KSAmJiBjb3NpZ25lck5hbWUpIHtcbiAgICAgIGFkZFdhbGxldFVuc3BlbnRUb1BzYnQocHNidCwgdSwgcm9vdFdhbGxldEtleXMsIHNpZ25lck5hbWUsIGNvc2lnbmVyTmFtZSwgeyBza2lwTm9uV2l0bmVzc1V0eG8gfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgcmVkZWVtU2NyaXB0IH0gPSBjcmVhdGVPdXRwdXRTY3JpcHRQMnNoUDJwayhyb290V2FsbGV0S2V5cy51c2VyLnB1YmxpY0tleSk7XG4gICAgICBhc3NlcnQocmVkZWVtU2NyaXB0KTtcbiAgICAgIGFkZFJlcGxheVByb3RlY3Rpb25VbnNwZW50VG9Qc2J0KHBzYnQsIHUsIHJlZGVlbVNjcmlwdCwgeyBza2lwTm9uV2l0bmVzc1V0eG8gfSk7XG4gICAgfVxuICB9KTtcblxuICBvdXRwdXRzLmZvckVhY2goKG91dHB1dCwgaSkgPT4ge1xuICAgIGlmICgnc2NyaXB0VHlwZScgaW4gb3V0cHV0KSB7XG4gICAgICBhZGRXYWxsZXRPdXRwdXRUb1BzYnQoXG4gICAgICAgIHBzYnQsXG4gICAgICAgIG91dHB1dC53YWxsZXRLZXlzID8/IHJvb3RXYWxsZXRLZXlzLFxuICAgICAgICBvdXRwdXQuaXNJbnRlcm5hbEFkZHJlc3MgPyBnZXRJbnRlcm5hbENoYWluQ29kZShvdXRwdXQuc2NyaXB0VHlwZSkgOiBnZXRFeHRlcm5hbENoYWluQ29kZShvdXRwdXQuc2NyaXB0VHlwZSksXG4gICAgICAgIGksXG4gICAgICAgIG91dHB1dC52YWx1ZSxcbiAgICAgICAgeyBhZGREZXJpdmF0aW9uSW5mbzogb3V0cHV0LndhbGxldEtleXMgIT09IG51bGwgfVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCdhZGRyZXNzJyBpbiBvdXRwdXQpIHtcbiAgICAgIGNvbnN0IHsgYWRkcmVzcywgdmFsdWUgfSA9IG91dHB1dDtcbiAgICAgIHBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0OiB0b091dHB1dFNjcmlwdChhZGRyZXNzLCBuZXR3b3JrKSwgdmFsdWUgfSk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICgnb3BSZXR1cm4nIGluIG91dHB1dCkge1xuICAgICAgY29uc3QgeyBvcFJldHVybiwgdmFsdWUgfSA9IG91dHB1dDtcbiAgICAgIGNvbnN0IHNjcmlwdCA9IGJpdGNvaW5qc2xpYi5wYXltZW50cy5lbWJlZCh7IGRhdGE6IFtCdWZmZXIuZnJvbShvcFJldHVybiwgJ2FzY2lpJyldIH0pLm91dHB1dDtcbiAgICAgIGFzc2VydChzY3JpcHQsICdzY3JpcHQgaXMgcmVxdWlyZWQnKTtcbiAgICAgIHBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0LCB2YWx1ZSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKCdzY3JpcHQnIGluIG91dHB1dCkge1xuICAgICAgY29uc3QgeyBzY3JpcHQsIHZhbHVlIH0gPSBvdXRwdXQ7XG4gICAgICBwc2J0LmFkZE91dHB1dCh7IHNjcmlwdDogQnVmZmVyLmZyb20oc2NyaXB0LCAnaGV4JyksIHZhbHVlIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBvdXRwdXQnKTtcbiAgfSk7XG5cbiAgaWYgKHNpZ25TdGFnZSA9PT0gJ3Vuc2lnbmVkJykge1xuICAgIHJldHVybiBwc2J0O1xuICB9XG5cbiAgLyogdXNlIGZpeGVkIHNlc3Npb25JZCBmb3IgZGV0ZXJtaW5pc3RpYyBub25jZSBjcmVhdGlvbiAqL1xuICBjb25zdCBzZXNzaW9uSWQgPSBCdWZmZXIuYWxsb2MoMzIpO1xuICBwc2J0LnNldEFsbElucHV0c011c2lnMk5vbmNlSEQocm9vdFdhbGxldEtleXNbJ3VzZXInXSwgeyBzZXNzaW9uSWQgfSk7XG4gIHBzYnQuc2V0QWxsSW5wdXRzTXVzaWcyTm9uY2VIRChyb290V2FsbGV0S2V5c1snYml0Z28nXSwgeyBkZXRlcm1pbmlzdGljIH0pO1xuXG4gIHNpZ25BbGxQc2J0SW5wdXRzKHBzYnQsIGlucHV0cywgcm9vdFdhbGxldEtleXMsICdoYWxmc2lnbmVkJywgeyBzaWduZXJzLCBza2lwTm9uV2l0bmVzc1V0eG8gfSk7XG5cbiAgaWYgKHNpZ25TdGFnZSA9PT0gJ2Z1bGxzaWduZWQnKSB7XG4gICAgc2lnbkFsbFBzYnRJbnB1dHMocHNidCwgaW5wdXRzLCByb290V2FsbGV0S2V5cywgc2lnblN0YWdlLCB7IHNpZ25lcnMsIGRldGVybWluaXN0aWMsIHNraXBOb25XaXRuZXNzVXR4byB9KTtcbiAgfVxuXG4gIHJldHVybiBwc2J0O1xufVxuXG5leHBvcnQgY29uc3QgdHhGb3JtYXRzID0gWydwc2J0JywgJ3BzYnQtbGl0ZSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgVHhGb3JtYXQgPSAodHlwZW9mIHR4Rm9ybWF0cylbbnVtYmVyXTtcblxudHlwZSBTdWl0ZUNvbmZpZyA9IHtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIHdlIGluY2x1ZGUgcDJ0ck11c2lnMiBzY3JpcHQgcGF0aCBpbiB0aGUgaW5wdXRzLlxuICAgKiBUaGlzIGlucHV0IGlzIGEgYml0IG9mIGEgd2VpcmRvIGJlY2F1c2UgaXQgaXMgc2lnbmVkIGJ5IHRoZSB1c2VyIGFuZCB0aGVcbiAgICogYmFja3VwIGtleSwgd2hpY2ggdXN1YWxseSBpcyBub3QgbWl4ZWQgd2l0aCBvdGhlciBpbnB1dHMgYW5kIG91dHB1dHMuXG4gICAqXG4gICAqIFRoaXMgb3B0aW9uIGFsbG93cyB0byBleGNsdWRlIHRoaXMgaW5wdXQgZnJvbSB0aGUgaW5wdXRzLlxuICAgKi9cbiAgaW5jbHVkZVAydHJNdXNpZzJTY3JpcHRQYXRoPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIHZhbGlkIFBTQlQgd2l0aCBhcyBtYW55IGZlYXR1cmVzIGFzIHBvc3NpYmxlLlxuICpcbiAqIC0gSW5wdXRzOlxuICogICAtIEFsbCB3YWxsZXQgc2NyaXB0IHR5cGVzIHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGUgbmV0d29yay5cbiAqICAgLSBBIHAyc2hQMnBrIGlucHV0IChmb3IgcmVwbGF5IHByb3RlY3Rpb24pXG4gKiAtIE91dHB1dHM6XG4gKiAgIC0gQWxsIHdhbGxldCBzY3JpcHQgdHlwZXMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBuZXR3b3JrLlxuICogICAtIEEgcDJzaCBvdXRwdXQgd2l0aCBkZXJpdmF0aW9uIGluZm8gb2YgYSBkaWZmZXJlbnQgd2FsbGV0IChub3QgaW4gdGhlIGdsb2JhbCBwc2J0IHhwdWJzKVxuICogICAtIEEgcDJzaCBvdXRwdXQgd2l0aCBubyBkZXJpdmF0aW9uIGluZm8gKGV4dGVybmFsIG91dHB1dClcbiAqICAgLSBBbiBPUF9SRVRVUk4gb3V0cHV0XG4gKi9cbmV4cG9ydCBjbGFzcyBBY2lkVGVzdCB7XG4gIHB1YmxpYyByZWFkb25seSBuZXR3b3JrOiBOZXR3b3JrO1xuICBwdWJsaWMgcmVhZG9ubHkgc2lnblN0YWdlOiBTaWduU3RhZ2U7XG4gIHB1YmxpYyByZWFkb25seSB0eEZvcm1hdDogVHhGb3JtYXQ7XG4gIHB1YmxpYyByZWFkb25seSByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXM7XG4gIHB1YmxpYyByZWFkb25seSBvdGhlcldhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRzOiBJbnB1dFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgb3V0cHV0czogT3V0cHV0W107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbmV0d29yazogTmV0d29yayxcbiAgICBzaWduU3RhZ2U6IFNpZ25TdGFnZSxcbiAgICB0eEZvcm1hdDogVHhGb3JtYXQsXG4gICAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICAgIG90aGVyV2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gICAgaW5wdXRzOiBJbnB1dFtdLFxuICAgIG91dHB1dHM6IE91dHB1dFtdXG4gICkge1xuICAgIHRoaXMubmV0d29yayA9IG5ldHdvcms7XG4gICAgdGhpcy5zaWduU3RhZ2UgPSBzaWduU3RhZ2U7XG4gICAgdGhpcy50eEZvcm1hdCA9IHR4Rm9ybWF0O1xuICAgIHRoaXMucm9vdFdhbGxldEtleXMgPSByb290V2FsbGV0S2V5cztcbiAgICB0aGlzLm90aGVyV2FsbGV0S2V5cyA9IG90aGVyV2FsbGV0S2V5cztcbiAgICB0aGlzLmlucHV0cyA9IGlucHV0cztcbiAgICB0aGlzLm91dHB1dHMgPSBvdXRwdXRzO1xuICB9XG5cbiAgc3RhdGljIHdpdGhDb25maWcobmV0d29yazogTmV0d29yaywgc2lnblN0YWdlOiBTaWduU3RhZ2UsIHR4Rm9ybWF0OiBUeEZvcm1hdCwgc3VpdGVDb25maWc6IFN1aXRlQ29uZmlnKTogQWNpZFRlc3Qge1xuICAgIGNvbnN0IHJvb3RXYWxsZXRLZXlzID0gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTtcblxuICAgIGNvbnN0IG90aGVyV2FsbGV0S2V5cyA9IGdldFdhbGxldEtleXNGb3JTZWVkKCd0b28gbWFueSBzZWNyZXRzJyk7XG4gICAgY29uc3QgaW5wdXRzOiBJbnB1dFtdID0gaW5wdXRTY3JpcHRUeXBlc1xuICAgICAgLmZpbHRlcigoc2NyaXB0VHlwZSkgPT5cbiAgICAgICAgc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnXG4gICAgICAgICAgPyBpc1N1cHBvcnRlZFNjcmlwdFR5cGUobmV0d29yaywgJ3AydHJNdXNpZzInKVxuICAgICAgICAgIDogaXNTdXBwb3J0ZWRTY3JpcHRUeXBlKG5ldHdvcmssIHNjcmlwdFR5cGUpXG4gICAgICApXG4gICAgICAuZmlsdGVyKChzY3JpcHRUeXBlKSA9PiAoc3VpdGVDb25maWcuaW5jbHVkZVAydHJNdXNpZzJTY3JpcHRQYXRoID8/IHRydWUpIHx8IHNjcmlwdFR5cGUgIT09ICdwMnRyTXVzaWcyJylcbiAgICAgIC5tYXAoKHNjcmlwdFR5cGUpID0+ICh7IHNjcmlwdFR5cGUsIHZhbHVlOiBCaWdJbnQoMjAwMCkgfSkpO1xuXG4gICAgY29uc3Qgb3V0cHV0czogT3V0cHV0W10gPSBvdXRwdXRTY3JpcHRUeXBlc1xuICAgICAgLmZpbHRlcigoc2NyaXB0VHlwZSkgPT4gaXNTdXBwb3J0ZWRTY3JpcHRUeXBlKG5ldHdvcmssIHNjcmlwdFR5cGUpKVxuICAgICAgLm1hcCgoc2NyaXB0VHlwZSkgPT4gKHsgc2NyaXB0VHlwZSwgdmFsdWU6IEJpZ0ludCg5MDApIH0pKTtcblxuICAgIC8vIFRlc3Qgb3RoZXIgd2FsbGV0IG91dHB1dCAod2l0aCBkZXJpdmF0aW9uIGluZm8pXG4gICAgb3V0cHV0cy5wdXNoKHsgc2NyaXB0VHlwZTogJ3Ayc2gnLCB2YWx1ZTogQmlnSW50KDkwMCksIHdhbGxldEtleXM6IG90aGVyV2FsbGV0S2V5cyB9KTtcbiAgICAvLyBUZXMgbm9uLXdhbGxldCBvdXRwdXRcbiAgICBvdXRwdXRzLnB1c2goeyBzY3JpcHRUeXBlOiAncDJzaCcsIHZhbHVlOiBCaWdJbnQoOTAwKSwgd2FsbGV0S2V5czogbnVsbCB9KTtcbiAgICAvLyBUZXN0IE9QX1JFVFVSTiBvdXRwdXRcbiAgICBvdXRwdXRzLnB1c2goeyBvcFJldHVybjogJ3NldGVjIGFzdHJvbm9teScsIHZhbHVlOiBCaWdJbnQoMCkgfSk7XG5cbiAgICByZXR1cm4gbmV3IEFjaWRUZXN0KG5ldHdvcmssIHNpZ25TdGFnZSwgdHhGb3JtYXQsIHJvb3RXYWxsZXRLZXlzLCBvdGhlcldhbGxldEtleXMsIGlucHV0cywgb3V0cHV0cyk7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5ldHdvcmtOYW1lID0gZ2V0TmV0d29ya05hbWUodGhpcy5uZXR3b3JrKTtcbiAgICByZXR1cm4gYCR7bmV0d29ya05hbWV9ICR7dGhpcy5zaWduU3RhZ2V9ICR7dGhpcy50eEZvcm1hdH1gO1xuICB9XG5cbiAgZ2V0UmVwbGF5UHJvdGVjdGlvblB1YmxpY0tleSgpOiBCdWZmZXIge1xuICAgIHJldHVybiB0aGlzLnJvb3RXYWxsZXRLZXlzLnVzZXIucHVibGljS2V5O1xuICB9XG5cbiAgZ2V0UmVwbGF5UHJvdGVjdGlvbk91dHB1dFNjcmlwdCgpOiBCdWZmZXIge1xuICAgIGNvbnN0IHsgc2NyaXB0UHViS2V5IH0gPSBjcmVhdGVPdXRwdXRTY3JpcHRQMnNoUDJwayh0aGlzLmdldFJlcGxheVByb3RlY3Rpb25QdWJsaWNLZXkoKSk7XG4gICAgYXNzZXJ0KHNjcmlwdFB1YktleSk7XG4gICAgcmV0dXJuIHNjcmlwdFB1YktleTtcbiAgfVxuXG4gIGNyZWF0ZVBzYnQoKTogVXR4b1BzYnQge1xuICAgIGNvbnN0IHBzYnQgPSBjb25zdHJ1Y3RQc2J0KHRoaXMuaW5wdXRzLCB0aGlzLm91dHB1dHMsIHRoaXMubmV0d29yaywgdGhpcy5yb290V2FsbGV0S2V5cywgdGhpcy5zaWduU3RhZ2UsIHtcbiAgICAgIGRldGVybWluaXN0aWM6IHRydWUsXG4gICAgICBhZGRHbG9iYWxYUHViczogdHJ1ZSxcbiAgICB9KTtcbiAgICBpZiAodGhpcy50eEZvcm1hdCA9PT0gJ3BzYnQtbGl0ZScpIHtcbiAgICAgIHJldHVybiBjbG9uZVBzYnRXaXRob3V0Tm9uV2l0bmVzc1V0eG8ocHNidCk7XG4gICAgfVxuICAgIHJldHVybiBwc2J0O1xuICB9XG5cbiAgc3RhdGljIHN1aXRlKHN1aXRlQ29uZmlnOiBTdWl0ZUNvbmZpZyA9IHt9KTogQWNpZFRlc3RbXSB7XG4gICAgcmV0dXJuIGdldE5ldHdvcmtMaXN0KClcbiAgICAgIC5maWx0ZXIoKG5ldHdvcmspID0+IGlzTWFpbm5ldChuZXR3b3JrKSAmJiBuZXR3b3JrICE9PSBuZXR3b3Jrcy5iaXRjb2luc3YpXG4gICAgICAuZmxhdE1hcCgobmV0d29yaykgPT5cbiAgICAgICAgc2lnblN0YWdlcy5mbGF0TWFwKChzaWduU3RhZ2UpID0+XG4gICAgICAgICAgdHhGb3JtYXRzLmZsYXRNYXAoKHR4Rm9ybWF0KSA9PiBBY2lkVGVzdC53aXRoQ29uZmlnKG5ldHdvcmssIHNpZ25TdGFnZSwgdHhGb3JtYXQsIHN1aXRlQ29uZmlnKSlcbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFZlcmlmaWVzIHNpZ25hdHVyZXMgb2YgZnVsbHkgc2lnbmVkIHR4ICh3aXRoIHRhcHJvb3Qga2V5IHBhdGggc3VwcG9ydCkuXG4gKiBOT1RFOiB0YXByb290IGtleSBwYXRoIHR4IGNhbiBvbmx5IGJlIGJ1aWx0IGFuZCBzaWduZWQgd2l0aCBQU0JULlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5RnVsbHlTaWduZWRTaWduYXR1cmVzKFxuICB0eDogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4sXG4gIHVuc3BlbnRzOiBVbnNwZW50PGJpZ2ludD5bXSxcbiAgd2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHNpZ25lcjogS2V5TmFtZSxcbiAgY29zaWduZXI6IEtleU5hbWVcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2T3V0cHV0cyA9IHVuc3BlbnRzLm1hcCgodSkgPT4gdG9PdXRwdXQodSwgdHgubmV0d29yaykpO1xuICByZXR1cm4gdW5zcGVudHMuZXZlcnkoKHUsIGluZGV4KSA9PiB7XG4gICAgaWYgKHBhcnNlU2lnbmF0dXJlU2NyaXB0Mk9mMyh0eC5pbnNbaW5kZXhdKS5zY3JpcHRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGdldFNpZ25hdHVyZVZlcmlmaWNhdGlvbnModHgsIGluZGV4LCB1LnZhbHVlLCB1bmRlZmluZWQsIHByZXZPdXRwdXRzKTtcbiAgICAgIHJldHVybiByZXN1bHQubGVuZ3RoID09PSAxICYmIHJlc3VsdFswXS5zaWduYXR1cmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHZlcmlmeVNpZ25hdHVyZVdpdGhVbnNwZW50KHR4LCBpbmRleCwgdW5zcGVudHMsIHdhbGxldEtleXMpO1xuICAgICAgaWYgKChzaWduZXIgPT09ICd1c2VyJyAmJiBjb3NpZ25lciA9PT0gJ2JpdGdvJykgfHwgKHNpZ25lciA9PT0gJ2JpdGdvJyAmJiBjb3NpZ25lciA9PT0gJ3VzZXInKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0WzBdICYmICFyZXN1bHRbMV0gJiYgcmVzdWx0WzJdO1xuICAgICAgfSBlbHNlIGlmICgoc2lnbmVyID09PSAndXNlcicgJiYgY29zaWduZXIgPT09ICdiYWNrdXAnKSB8fCAoc2lnbmVyID09PSAnYmFja3VwJyAmJiBjb3NpZ25lciA9PT0gJ3VzZXInKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0WzBdICYmIHJlc3VsdFsxXSAmJiAhcmVzdWx0WzJdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICFyZXN1bHRbMF0gJiYgcmVzdWx0WzFdICYmIHJlc3VsdFsyXTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/utxo-lib",
|
|
3
|
-
"version": "8.0.3-beta.
|
|
3
|
+
"version": "8.0.3-beta.1450",
|
|
4
4
|
"description": "Client-side Bitcoin JavaScript library",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"engines": {
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"dist/src"
|
|
47
47
|
],
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@bitgo-beta/blake2b": "3.0.4-beta.
|
|
50
|
-
"@bitgo-beta/secp256k1": "1.0.2-beta.
|
|
49
|
+
"@bitgo-beta/blake2b": "3.0.4-beta.1687",
|
|
50
|
+
"@bitgo-beta/secp256k1": "1.0.2-beta.1476",
|
|
51
51
|
"@brandonblack/musig": "^0.0.1-alpha.0",
|
|
52
52
|
"bech32": "^2.0.0",
|
|
53
53
|
"bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
},
|
|
78
78
|
"author": "BitGo SDK Team <sdkteam@bitgo.com>",
|
|
79
79
|
"license": "MIT",
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "cc9e3f276340909a66349010c733cbccd4ccc35f"
|
|
81
81
|
}
|