Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@bitgo/utxo-lib

Package Overview
Dependencies
Maintainers
4
Versions
171
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bitgo/utxo-lib - npm Package Compare versions

Comparing version 2.2.0-rc.1 to 2.2.0-rc.2

10

dist/src/address.js

@@ -9,3 +9,3 @@ "use strict";

function fromOutputScript(outputScript, network) {
if ((0, coins_1.isValidNetwork)(network) && (0, coins_1.isZcash)(network)) {
if (coins_1.isValidNetwork(network) && coins_1.isZcash(network)) {
return zcashAddress.fromOutputScript(outputScript, network);

@@ -17,3 +17,3 @@ }

function toOutputScript(address, network) {
if ((0, coins_1.isValidNetwork)(network) && (0, coins_1.isZcash)(network)) {
if (coins_1.isValidNetwork(network) && coins_1.isZcash(network)) {
return zcashAddress.toOutputScript(address, network);

@@ -25,3 +25,3 @@ }

function toBase58Check(hash, version, network) {
if ((0, coins_1.isValidNetwork)(network) && (0, coins_1.isZcash)(network)) {
if (coins_1.isValidNetwork(network) && coins_1.isZcash(network)) {
return zcashAddress.toBase58Check(hash, version);

@@ -33,3 +33,3 @@ }

function fromBase58Check(address, network) {
if ((0, coins_1.isValidNetwork)(network) && (0, coins_1.isZcash)(network)) {
if (coins_1.isValidNetwork(network) && coins_1.isZcash(network)) {
return zcashAddress.fromBase58Check(address);

@@ -41,2 +41,2 @@ }

_a = bitcoinjs.address, exports.fromBech32 = _a.fromBech32, exports.toBech32 = _a.toBech32;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwyQ0FBMkM7QUFFM0MsMkRBQTJEO0FBRzNELG1DQUFrRDtBQUdsRCxTQUFnQixnQkFBZ0IsQ0FBQyxZQUFvQixFQUFFLE9BQWdCO0lBQ3JFLElBQUksSUFBQSxzQkFBYyxFQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUEsZUFBTyxFQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQy9DLE9BQU8sWUFBWSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUM3RDtJQUNELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsT0FBNEIsQ0FBQyxDQUFDO0FBQ3hGLENBQUM7QUFMRCw0Q0FLQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxPQUFlLEVBQUUsT0FBZ0I7SUFDOUQsSUFBSSxJQUFBLHNCQUFjLEVBQUMsT0FBTyxDQUFDLElBQUksSUFBQSxlQUFPLEVBQUMsT0FBTyxDQUFDLEVBQUU7UUFDL0MsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztLQUN0RDtJQUNELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE9BQTRCLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBTEQsd0NBS0M7QUFFRCxTQUFnQixhQUFhLENBQUMsSUFBWSxFQUFFLE9BQWUsRUFBRSxPQUFnQjtJQUMzRSxJQUFJLElBQUEsc0JBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFBLGVBQU8sRUFBQyxPQUFPLENBQUMsRUFBRTtRQUMvQyxPQUFPLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ2xEO0lBQ0QsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUxELHNDQUtDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE9BQWUsRUFBRSxPQUFnQjtJQUMvRCxJQUFJLElBQUEsc0JBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFBLGVBQU8sRUFBQyxPQUFPLENBQUMsRUFBRTtRQUMvQyxPQUFPLFlBQVksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDOUM7SUFDRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFMRCwwQ0FLQztBQUVZLEtBQTJCLFNBQVMsQ0FBQyxPQUFPLEVBQTFDLGtCQUFVLGtCQUFFLGdCQUFRLGVBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYml0Y29pbmpzIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5pbXBvcnQgKiBhcyB6Y2FzaEFkZHJlc3MgZnJvbSAnLi4vc3JjL2JpdGdvL3pjYXNoL2FkZHJlc3MnO1xuXG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3JrVHlwZXMnO1xuaW1wb3J0IHsgaXNWYWxpZE5ldHdvcmssIGlzWmNhc2ggfSBmcm9tICcuL2NvaW5zJztcbmltcG9ydCB7IEJhc2U1OENoZWNrUmVzdWx0LCBCZWNoMzJSZXN1bHQgfSBmcm9tICdiaXRjb2luanMtbGliL3R5cGVzL2FkZHJlc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJvbU91dHB1dFNjcmlwdChvdXRwdXRTY3JpcHQ6IEJ1ZmZlciwgbmV0d29yazogTmV0d29yayk6IHN0cmluZyB7XG4gIGlmIChpc1ZhbGlkTmV0d29yayhuZXR3b3JrKSAmJiBpc1pjYXNoKG5ldHdvcmspKSB7XG4gICAgcmV0dXJuIHpjYXNoQWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KG91dHB1dFNjcmlwdCwgbmV0d29yayk7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qcy5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQob3V0cHV0U2NyaXB0LCBuZXR3b3JrIGFzIGJpdGNvaW5qcy5OZXR3b3JrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvT3V0cHV0U2NyaXB0KGFkZHJlc3M6IHN0cmluZywgbmV0d29yazogTmV0d29yayk6IEJ1ZmZlciB7XG4gIGlmIChpc1ZhbGlkTmV0d29yayhuZXR3b3JrKSAmJiBpc1pjYXNoKG5ldHdvcmspKSB7XG4gICAgcmV0dXJuIHpjYXNoQWRkcmVzcy50b091dHB1dFNjcmlwdChhZGRyZXNzLCBuZXR3b3JrKTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzLmFkZHJlc3MudG9PdXRwdXRTY3JpcHQoYWRkcmVzcywgbmV0d29yayBhcyBiaXRjb2luanMuTmV0d29yayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2U1OENoZWNrKGhhc2g6IEJ1ZmZlciwgdmVyc2lvbjogbnVtYmVyLCBuZXR3b3JrOiBOZXR3b3JrKTogc3RyaW5nIHtcbiAgaWYgKGlzVmFsaWROZXR3b3JrKG5ldHdvcmspICYmIGlzWmNhc2gobmV0d29yaykpIHtcbiAgICByZXR1cm4gemNhc2hBZGRyZXNzLnRvQmFzZTU4Q2hlY2soaGFzaCwgdmVyc2lvbik7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qcy5hZGRyZXNzLnRvQmFzZTU4Q2hlY2soaGFzaCwgdmVyc2lvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQmFzZTU4Q2hlY2soYWRkcmVzczogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrKTogQmFzZTU4Q2hlY2tSZXN1bHQge1xuICBpZiAoaXNWYWxpZE5ldHdvcmsobmV0d29yaykgJiYgaXNaY2FzaChuZXR3b3JrKSkge1xuICAgIHJldHVybiB6Y2FzaEFkZHJlc3MuZnJvbUJhc2U1OENoZWNrKGFkZHJlc3MpO1xuICB9XG4gIHJldHVybiBiaXRjb2luanMuYWRkcmVzcy5mcm9tQmFzZTU4Q2hlY2soYWRkcmVzcyk7XG59XG5cbmV4cG9ydCBjb25zdCB7IGZyb21CZWNoMzIsIHRvQmVjaDMyIH0gPSBiaXRjb2luanMuYWRkcmVzcztcblxuZXhwb3J0IHsgQmFzZTU4Q2hlY2tSZXN1bHQsIEJlY2gzMlJlc3VsdCB9O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwyQ0FBMkM7QUFFM0MsMkRBQTJEO0FBRzNELG1DQUFrRDtBQUdsRCxTQUFnQixnQkFBZ0IsQ0FBQyxZQUFvQixFQUFFLE9BQWdCO0lBQ3JFLElBQUksc0JBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxlQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDL0MsT0FBTyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQzdEO0lBQ0QsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxPQUE0QixDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUxELDRDQUtDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE9BQWUsRUFBRSxPQUFnQjtJQUM5RCxJQUFJLHNCQUFjLENBQUMsT0FBTyxDQUFDLElBQUksZUFBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQy9DLE9BQU8sWUFBWSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDdEQ7SUFDRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUE0QixDQUFDLENBQUM7QUFDakYsQ0FBQztBQUxELHdDQUtDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQVksRUFBRSxPQUFlLEVBQUUsT0FBZ0I7SUFDM0UsSUFBSSxzQkFBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGVBQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMvQyxPQUFPLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ2xEO0lBQ0QsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUxELHNDQUtDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE9BQWUsRUFBRSxPQUFnQjtJQUMvRCxJQUFJLHNCQUFjLENBQUMsT0FBTyxDQUFDLElBQUksZUFBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQy9DLE9BQU8sWUFBWSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM5QztJQUNELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUxELDBDQUtDO0FBRVksS0FBMkIsU0FBUyxDQUFDLE9BQU8sRUFBMUMsa0JBQVUsa0JBQUUsZ0JBQVEsZUFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiaXRjb2luanMgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5cbmltcG9ydCAqIGFzIHpjYXNoQWRkcmVzcyBmcm9tICcuLi9zcmMvYml0Z28vemNhc2gvYWRkcmVzcyc7XG5cbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICcuL25ldHdvcmtUeXBlcyc7XG5pbXBvcnQgeyBpc1ZhbGlkTmV0d29yaywgaXNaY2FzaCB9IGZyb20gJy4vY29pbnMnO1xuaW1wb3J0IHsgQmFzZTU4Q2hlY2tSZXN1bHQsIEJlY2gzMlJlc3VsdCB9IGZyb20gJ2JpdGNvaW5qcy1saWIvdHlwZXMvYWRkcmVzcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tT3V0cHV0U2NyaXB0KG91dHB1dFNjcmlwdDogQnVmZmVyLCBuZXR3b3JrOiBOZXR3b3JrKTogc3RyaW5nIHtcbiAgaWYgKGlzVmFsaWROZXR3b3JrKG5ldHdvcmspICYmIGlzWmNhc2gobmV0d29yaykpIHtcbiAgICByZXR1cm4gemNhc2hBZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQob3V0cHV0U2NyaXB0LCBuZXR3b3JrKTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChvdXRwdXRTY3JpcHQsIG5ldHdvcmsgYXMgYml0Y29pbmpzLk5ldHdvcmspO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9PdXRwdXRTY3JpcHQoYWRkcmVzczogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrKTogQnVmZmVyIHtcbiAgaWYgKGlzVmFsaWROZXR3b3JrKG5ldHdvcmspICYmIGlzWmNhc2gobmV0d29yaykpIHtcbiAgICByZXR1cm4gemNhc2hBZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGFkZHJlc3MsIG5ldHdvcmspO1xuICB9XG4gIHJldHVybiBiaXRjb2luanMuYWRkcmVzcy50b091dHB1dFNjcmlwdChhZGRyZXNzLCBuZXR3b3JrIGFzIGJpdGNvaW5qcy5OZXR3b3JrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQmFzZTU4Q2hlY2soaGFzaDogQnVmZmVyLCB2ZXJzaW9uOiBudW1iZXIsIG5ldHdvcms6IE5ldHdvcmspOiBzdHJpbmcge1xuICBpZiAoaXNWYWxpZE5ldHdvcmsobmV0d29yaykgJiYgaXNaY2FzaChuZXR3b3JrKSkge1xuICAgIHJldHVybiB6Y2FzaEFkZHJlc3MudG9CYXNlNThDaGVjayhoYXNoLCB2ZXJzaW9uKTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzLmFkZHJlc3MudG9CYXNlNThDaGVjayhoYXNoLCB2ZXJzaW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21CYXNlNThDaGVjayhhZGRyZXNzOiBzdHJpbmcsIG5ldHdvcms6IE5ldHdvcmspOiBCYXNlNThDaGVja1Jlc3VsdCB7XG4gIGlmIChpc1ZhbGlkTmV0d29yayhuZXR3b3JrKSAmJiBpc1pjYXNoKG5ldHdvcmspKSB7XG4gICAgcmV0dXJuIHpjYXNoQWRkcmVzcy5mcm9tQmFzZTU4Q2hlY2soYWRkcmVzcyk7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qcy5hZGRyZXNzLmZyb21CYXNlNThDaGVjayhhZGRyZXNzKTtcbn1cblxuZXhwb3J0IGNvbnN0IHsgZnJvbUJlY2gzMiwgdG9CZWNoMzIgfSA9IGJpdGNvaW5qcy5hZGRyZXNzO1xuXG5leHBvcnQgeyBCYXNlNThDaGVja1Jlc3VsdCwgQmVjaDMyUmVzdWx0IH07XG4iXX0=

@@ -12,3 +12,3 @@ "use strict";

this.type = 0;
if (!(0, coins_1.isDash)(network)) {
if (!coins_1.isDash(network)) {
throw new Error(`invalid network`);

@@ -44,3 +44,3 @@ }

byteLength(_ALLOW_WITNESS) {
return super.byteLength(_ALLOW_WITNESS) + (this.extraPayload ? (0, UtxoTransaction_1.varSliceSize)(this.extraPayload) : 0);
return super.byteLength(_ALLOW_WITNESS) + (this.extraPayload ? UtxoTransaction_1.varSliceSize(this.extraPayload) : 0);
}

@@ -112,2 +112,2 @@ /**

DashTransaction.DASH_QUORUM_COMMITMENT = 6;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGFzaFRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2Rhc2gvRGFzaFRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUEyRTtBQUMzRSxpREFBK0Q7QUFFL0Qsd0RBQW1FO0FBRW5FLHVDQUFxQztBQUVyQyxNQUFhLGVBQWdCLFNBQVEsaUNBQWU7SUFZbEQsWUFBWSxPQUFnQixFQUFFLEVBQXNDO1FBQ2xFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFKZCxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBTWQsSUFBSSxDQUFDLElBQUEsY0FBTSxFQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwQztRQUVELElBQUksRUFBRSxFQUFFO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO1lBRTFCLElBQUksRUFBRSxZQUFZLGVBQWUsRUFBRTtnQkFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDckM7U0FDRjtRQUVELGlFQUFpRTtRQUNoRSxJQUFZLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUMzRCxDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFtQjtRQUN4QyxPQUFPLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBYyxFQUFFLFFBQWlCLEVBQUUsT0FBZ0I7UUFDbkUsTUFBTSxNQUFNLEdBQUcsaUNBQWUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxP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LElBQUksMEJBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFFaEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJO2dCQUM3QixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLHNCQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QztRQUVELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7QUF6SEgsMENBMEhDO0FBekhRLDJCQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLHNDQUFzQixHQUFHLENBQUMsQ0FBQztBQUMzQiw0Q0FBNEIsR0FBRyxDQUFDLENBQUM7QUFDakMsOENBQThCLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLDJDQUEyQixHQUFHLENBQUMsQ0FBQztBQUNoQyw2QkFBYSxHQUFHLENBQUMsQ0FBQztBQUNsQixzQ0FBc0IsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWZmZXJSZWFkZXIsIEJ1ZmZlcldyaXRlciB9IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL2J1ZmZlcnV0aWxzJztcbmltcG9ydCB7IGNyeXB0byBhcyBiY3J5cHRvLCBUcmFuc2FjdGlvbiB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb24sIHZhclNsaWNlU2l6ZSB9IGZyb20gJy4uL1V0eG9UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAnLi4vLi4vbmV0d29ya1R5cGVzJztcbmltcG9ydCB7IGlzRGFzaCB9IGZyb20gJy4uLy4uL2NvaW5zJztcblxuZXhwb3J0IGNsYXNzIERhc2hUcmFuc2FjdGlvbiBleHRlbmRzIFV0eG9UcmFuc2FjdGlvbiB7XG4gIHN0YXRpYyBEQVNIX05PUk1BTCA9IDA7XG4gIHN0YXRpYyBEQVNIX1BST1ZJREVSX1JFR0lTVEVSID0gMTtcbiAgc3RhdGljIERBU0hfUFJPVklERVJfVVBEQVRFX1NFUlZJQ0UgPSAyO1xuICBzdGF0aWMgREFTSF9QUk9WSURFUl9VUERBVEVfUkVHSVNUUkFSID0gMztcbiAgc3RhdGljIERBU0hfUFJPVklERVJfVVBEQVRFX1JFVk9LRSA9IDQ7XG4gIHN0YXRpYyBEQVNIX0NPSU5CQVNFID0gNTtcbiAgc3RhdGljIERBU0hfUVVPUlVNX0NPTU1JVE1FTlQgPSA2O1xuXG4gIHB1YmxpYyB0eXBlID0gMDtcbiAgcHVibGljIGV4dHJhUGF5bG9hZD86IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihuZXR3b3JrOiBOZXR3b3JrLCB0eD86IFV0eG9UcmFuc2FjdGlvbiB8IERhc2hUcmFuc2FjdGlvbikge1xuICAgIHN1cGVyKG5ldHdvcmssIHR4KTtcblxuICAgIGlmICghaXNEYXNoKG5ldHdvcmspKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29ya2ApO1xuICAgIH1cblxuICAgIGlmICh0eCkge1xuICAgICAgdGhpcy52ZXJzaW9uID0gdHgudmVyc2lvbjtcblxuICAgICAgaWYgKHR4IGluc3RhbmNlb2YgRGFzaFRyYW5zYWN0aW9uKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR4LnR5cGU7XG4gICAgICAgIHRoaXMuZXh0cmFQYXlsb2FkID0gdHguZXh0cmFQYXlsb2FkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNpbmNlIGBfX3RvQnVmZmVyYCBpcyBwcml2YXRlIHdlIGhhdmUgdG8gZG8gYSBsaXR0bGUgaGFjayBoZXJlXG4gICAgKHRoaXMgYXMgYW55KS5fX3RvQnVmZmVyID0gdGhpcy50b0J1ZmZlcldpdGhFeHRyYVBheWxvYWQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVRyYW5zYWN0aW9uKHR4OiBEYXNoVHJhbnNhY3Rpb24pOiBEYXNoVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGFzaFRyYW5zYWN0aW9uKHR4Lm5ldHdvcmssIHR4KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQnVmZmVyKGJ1ZmZlcjogQnVmZmVyLCBub1N0cmljdDogYm9vbGVhbiwgbmV0d29yazogTmV0d29yayk6IERhc2hUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4ID0gVXR4b1RyYW5zYWN0aW9uLmZyb21CdWZmZXIoYnVmZmVyLCB0cnVlLCBuZXR3b3JrKTtcbiAgICBjb25zdCB0eCA9IG5ldyBEYXNoVHJhbnNhY3Rpb24obmV0d29yaywgYmFzZVR4KTtcbiAgICB0eC52ZXJzaW9uID0gYmFzZVR4LnZlcnNpb24gJiAweGZmZmY7XG4gICAgdHgudHlwZSA9IGJhc2VUeC52ZXJzaW9uID4+IDE2O1xuICAgIGlmIChiYXNlVHguYnl0ZUxlbmd0aCgpICE9PSBidWZmZXIubGVuZ3RoKSB7XG4gICAgICBjb25zdCBidWZmZXJSZWFkZXIgPSBuZXcgQnVmZmVyUmVhZGVyKGJ1ZmZlciwgYmFzZVR4LmJ5dGVMZW5ndGgoKSk7XG4gICAgICB0eC5leHRyYVBheWxvYWQgPSBidWZmZXJSZWFkZXIucmVhZFZhclNsaWNlKCk7XG4gICAgfVxuICAgIHJldHVybiB0eDtcbiAgfVxuXG4gIGNsb25lKCk6IERhc2hUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEYXNoVHJhbnNhY3Rpb24odGhpcy5uZXR3b3JrLCB0aGlzKTtcbiAgfVxuXG4gIGJ5dGVMZW5ndGgoX0FMTE9XX1dJVE5FU1M/OiBib29sZWFuKTogbnVtYmVyIHtcbiAgICByZXR1cm4gc3VwZXIuYnl0ZUxlbmd0aChfQUxMT1dfV0lUTkVTUykgKyAodGhpcy5leHRyYVBheWxvYWQgPyB2YXJTbGljZVNpemUodGhpcy5leHRyYVBheWxvYWQpIDogMCk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIHRvIG92ZXJyaWRlIGBfX3RvQnVmZmVyKClgIG9mIGJpdGNvaW5qcy5UcmFuc2FjdGlvbi5cbiAgICogU2luY2UgdGhlIG1ldGhvZCBpcyBwcml2YXRlLCB3ZSB1c2UgYSBoYWNrIGluIHRoZSBjb25zdHJ1Y3RvciB0byBtYWtlIGl0IHdvcmsuXG4gICAqXG4gICAqIFRPRE86IHJlbW92ZSBgcHJpdmF0ZWAgbW9kaWZpZXIgaW4gYml0Y29pbmpzIGBfX3RvQnVmZmVyKClgIG9yIGZpbmQgc29tZSBvdGhlciBzb2x1dGlvblxuICAgKlxuICAgKiBAcGFyYW0gYnVmZmVyIC0gb3B0aW9uYWwgdGFyZ2V0IGJ1ZmZlclxuICAgKiBAcGFyYW0gaW5pdGlhbE9mZnNldCAtIGNhbiBvbmx5IGJlIHVuZGVmaW5lZCBvciAwLiBPdGhlciB2YWx1ZXMgYXJlIG9ubHkgdXNlZCBmb3Igc2VyaWFsaXphdGlvbiBpbiBibG9ja3MuXG4gICAqIEBwYXJhbSBfQUxMT1dfV0lUTkVTUyAtIGlnbm9yZWRcbiAgICovXG4gIHByaXZhdGUgdG9CdWZmZXJXaXRoRXh0cmFQYXlsb2FkKGJ1ZmZlcj86IEJ1ZmZlciwgaW5pdGlhbE9mZnNldD86IG51bWJlciwgX0FMTE9XX1dJVE5FU1MgPSBmYWxzZSk6IEJ1ZmZlciB7XG4gICAgLy8gV2UgY2FuIGlnbm9yZSB0aGUgYF9BTExPV19XSVRORVNTYCBwYXJhbWV0ZXIgaGVyZSBzaW5jZSBpdCBoYXMgbm8gZWZmZWN0LlxuICAgIGlmICghYnVmZmVyKSB7XG4gICAgICBidWZmZXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUodGhpcy5ieXRlTGVuZ3RoKGZhbHNlKSk7XG4gICAgfVxuXG4gICAgaWYgKGluaXRpYWxPZmZzZXQgIT09IHVuZGVmaW5lZCAmJiBpbml0aWFsT2Zmc2V0ICE9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG5vdCBzdXBwb3J0ZWRgKTtcbiAgICB9XG5cbiAgICAvLyBTdGFydCBvdXQgd2l0aCByZWd1bGFyIGJpdGNvaW4gYnl0ZSBzZXF1ZW5jZS5cbiAgICAvLyBUaGlzIGJ1ZmZlciB3aWxsIGhhdmUgZXhjZXNzIHNpemUgYmVjYXVzZSBpdCB1c2VzIGBieXRlTGVuZ3RoKClgIHRvIGFsbG9jYXRlLlxuICAgIGNvbnN0IGJhc2VCdWZmZXIgPSAoVHJhbnNhY3Rpb24ucHJvdG90eXBlIGFzIGFueSkuX190b0J1ZmZlci5jYWxsKHRoaXMpO1xuICAgIGJhc2VCdWZmZXIuY29weShidWZmZXIpO1xuXG4gICAgLy8gb3ZlcndyaXRlIGxlYWRpbmcgdmVyc2lvbiBieXRlcyAodWludDE2IHZlcnNpb24sIHVpbnQxNiB0eXBlKVxuICAgIGNvbnN0IGJ1ZmZlcldyaXRlciA9IG5ldyBCdWZmZXJXcml0ZXIoYnVmZmVyLCAwKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIoKHRoaXMudmVyc2lvbiAmIDB4ZmZmZikgfCAodGhpcy50eXBlIDw8IDE2KSk7XG5cbiAgICAvLyBTZWVrIHRvIGVuZCBvZiBvcmlnaW5hbCBieXRlIHNlcXVlbmNlIGFuZCBhZGQgZXh0cmFQYXlsb2FkLlxuICAgIC8vIFdlIG11c3QgdXNlIHRoZSBieXRlTGVuZ3RoIGFzIGNhbGN1bGF0ZWQgYnkgdGhlIGJpdGNvaW5qcyBpbXBsZW1lbnRhdGlvbiBzaW5jZVxuICAgIC8vIGBiYXNlQnVmZmVyYCBoYXMgYW4gZXhjZXNzIHNpemUuXG4gICAgaWYgKHRoaXMuZXh0cmFQYXlsb2FkKSB7XG4gICAgICBidWZmZXJXcml0ZXIub2Zmc2V0ID0gVHJhbnNhY3Rpb24ucHJvdG90eXBlLmJ5dGVMZW5ndGguY2FsbCh0aGlzKTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKHRoaXMuZXh0cmFQYXlsb2FkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmZmVyO1xuICB9XG5cbiAgZ2V0SGFzaChmb3JXaXRuZXNzPzogYm9vbGVhbik6IEJ1ZmZlciB7XG4gICAgaWYgKGZvcldpdG5lc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhcmd1bWVudGApO1xuICAgIH1cbiAgICByZXR1cm4gYmNyeXB0by5oYXNoMjU2KHRoaXMudG9CdWZmZXIoKSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBoYXNoIGZvciBhbGwgb3Igbm9uZSBvZiB0aGUgdHJhbnNhY3Rpb24gaW5wdXRzIGRlcGVuZGluZyBvbiB0aGUgaGFzaHR5cGVcbiAgICogQHBhcmFtIGhhc2hUeXBlXG4gICAqIEByZXR1cm5zIEJ1ZmZlclxuICAgKi9cbiAgZ2V0UHJldm91dEhhc2goaGFzaFR5cGU6IG51bWJlcik6IEJ1ZmZlciB7XG4gICAgaWYgKCEoaGFzaFR5cGUgJiBVdHhvVHJhbnNhY3Rpb24uU0lHSEFTSF9BTllPTkVDQU5QQVkpKSB7XG4gICAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvY1Vuc2FmZSgzNiAqIHRoaXMuaW5zLmxlbmd0aCkpO1xuXG4gICAgICB0aGlzLmlucy5mb3JFYWNoKGZ1bmN0aW9uICh0eEluKSB7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKHR4SW4uaGFzaCk7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eEluLmluZGV4KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYmNyeXB0by5oYXNoMjU2KGJ1ZmZlcldyaXRlci5idWZmZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBCdWZmZXIuYWxsb2MoMzIsIDApO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGFzaFRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2Rhc2gvRGFzaFRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUEyRTtBQUMzRSxpREFBK0Q7QUFFL0Qsd0RBQW1FO0FBRW5FLHVDQUFxQztBQUVyQyxNQUFhLGVBQWdCLFNBQVEsaUNBQWU7SUFZbEQsWUFBWSxPQUFnQixFQUFFLEVBQXNDO1FBQ2xFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFKZCxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBTWQsSUFBSSxDQUFDLGNBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDcEM7UUFFRCxJQUFJLEVBQUUsRUFBRTtZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUUxQixJQUFJLEVBQUUsWUFBWSxlQUFlLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO2FBQ3JDO1NBQ0Y7UUFFRCxpRUFBaUU7UUFDaEUsSUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7SUFDM0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBbUI7UUFDeEMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWMsRUFBRSxRQUFpQixFQUFFLE9BQWdCO1FBQ25FLE1BQU0sTUFBTSxHQUFHLGlDQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxD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WSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUVoRixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUk7Z0JBQzdCLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sc0JBQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzdDO1FBRUQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOztBQXpISCwwQ0EwSEM7QUF6SFEsMkJBQVcsR0FBRyxDQUFDLENBQUM7QUFDaEIsc0NBQXNCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLDRDQUE0QixHQUFHLENBQUMsQ0FBQztBQUNqQyw4Q0FBOEIsR0FBRyxDQUFDLENBQUM7QUFDbkMsMkNBQTJCLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLDZCQUFhLEdBQUcsQ0FBQyxDQUFDO0FBQ2xCLHNDQUFzQixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1ZmZlclJlYWRlciwgQnVmZmVyV3JpdGVyIH0gZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvYnVmZmVydXRpbHMnO1xuaW1wb3J0IHsgY3J5cHRvIGFzIGJjcnlwdG8sIFRyYW5zYWN0aW9uIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5cbmltcG9ydCB7IFV0eG9UcmFuc2FjdGlvbiwgdmFyU2xpY2VTaXplIH0gZnJvbSAnLi4vVXR4b1RyYW5zYWN0aW9uJztcbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICcuLi8uLi9uZXR3b3JrVHlwZXMnO1xuaW1wb3J0IHsgaXNEYXNoIH0gZnJvbSAnLi4vLi4vY29pbnMnO1xuXG5leHBvcnQgY2xhc3MgRGFzaFRyYW5zYWN0aW9uIGV4dGVuZHMgVXR4b1RyYW5zYWN0aW9uIHtcbiAgc3RhdGljIERBU0hfTk9STUFMID0gMDtcbiAgc3RhdGljIERBU0hfUFJPVklERVJfUkVHSVNURVIgPSAxO1xuICBzdGF0aWMgREFTSF9QUk9WSURFUl9VUERBVEVfU0VSVklDRSA9IDI7XG4gIHN0YXRpYyBEQVNIX1BST1ZJREVSX1VQREFURV9SRUdJU1RSQVIgPSAzO1xuICBzdGF0aWMgREFTSF9QUk9WSURFUl9VUERBVEVfUkVWT0tFID0gNDtcbiAgc3RhdGljIERBU0hfQ09JTkJBU0UgPSA1O1xuICBzdGF0aWMgREFTSF9RVU9SVU1fQ09NTUlUTUVOVCA9IDY7XG5cbiAgcHVibGljIHR5cGUgPSAwO1xuICBwdWJsaWMgZXh0cmFQYXlsb2FkPzogQnVmZmVyO1xuXG4gIGNvbnN0cnVjdG9yKG5ldHdvcms6IE5ldHdvcmssIHR4PzogVXR4b1RyYW5zYWN0aW9uIHwgRGFzaFRyYW5zYWN0aW9uKSB7XG4gICAgc3VwZXIobmV0d29yaywgdHgpO1xuXG4gICAgaWYgKCFpc0Rhc2gobmV0d29yaykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG4gICAgfVxuXG4gICAgaWYgKHR4KSB7XG4gICAgICB0aGlzLnZlcnNpb24gPSB0eC52ZXJzaW9uO1xuXG4gICAgICBpZiAodHggaW5zdGFuY2VvZiBEYXNoVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgdGhpcy50eXBlID0gdHgudHlwZTtcbiAgICAgICAgdGhpcy5leHRyYVBheWxvYWQgPSB0eC5leHRyYVBheWxvYWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2luY2UgYF9fdG9CdWZmZXJgIGlzIHByaXZhdGUgd2UgaGF2ZSB0byBkbyBhIGxpdHRsZSBoYWNrIGhlcmVcbiAgICAodGhpcyBhcyBhbnkpLl9fdG9CdWZmZXIgPSB0aGlzLnRvQnVmZmVyV2l0aEV4dHJhUGF5bG9hZDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHJhbnNhY3Rpb24odHg6IERhc2hUcmFuc2FjdGlvbik6IERhc2hUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEYXNoVHJhbnNhY3Rpb24odHgubmV0d29yaywgdHgpO1xuICB9XG5cbiAgc3RhdGljIGZyb21CdWZmZXIoYnVmZmVyOiBCdWZmZXIsIG5vU3RyaWN0OiBib29sZWFuLCBuZXR3b3JrOiBOZXR3b3JrKTogRGFzaFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHggPSBVdHhvVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcihidWZmZXIsIHRydWUsIG5ldHdvcmspO1xuICAgIGNvbnN0IHR4ID0gbmV3IERhc2hUcmFuc2FjdGlvbihuZXR3b3JrLCBiYXNlVHgpO1xuICAgIHR4LnZlcnNpb24gPSBiYXNlVHgudmVyc2lvbiAmIDB4ZmZmZjtcbiAgICB0eC50eXBlID0gYmFzZVR4LnZlcnNpb24gPj4gMTY7XG4gICAgaWYgKGJhc2VUeC5ieXRlTGVuZ3RoKCkgIT09IGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGJ1ZmZlclJlYWRlciA9IG5ldyBCdWZmZXJSZWFkZXIoYnVmZmVyLCBiYXNlVHguYnl0ZUxlbmd0aCgpKTtcbiAgICAgIHR4LmV4dHJhUGF5bG9hZCA9IGJ1ZmZlclJlYWRlci5yZWFkVmFyU2xpY2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgY2xvbmUoKTogRGFzaFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERhc2hUcmFuc2FjdGlvbih0aGlzLm5ldHdvcmssIHRoaXMpO1xuICB9XG5cbiAgYnl0ZUxlbmd0aChfQUxMT1dfV0lUTkVTUz86IGJvb2xlYW4pOiBudW1iZXIge1xuICAgIHJldHVybiBzdXBlci5ieXRlTGVuZ3RoKF9BTExPV19XSVRORVNTKSArICh0aGlzLmV4dHJhUGF5bG9hZCA/IHZhclNsaWNlU2l6ZSh0aGlzLmV4dHJhUGF5bG9hZCkgOiAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gb3ZlcnJpZGUgYF9fdG9CdWZmZXIoKWAgb2YgYml0Y29pbmpzLlRyYW5zYWN0aW9uLlxuICAgKiBTaW5jZSB0aGUgbWV0aG9kIGlzIHByaXZhdGUsIHdlIHVzZSBhIGhhY2sgaW4gdGhlIGNvbnN0cnVjdG9yIHRvIG1ha2UgaXQgd29yay5cbiAgICpcbiAgICogVE9ETzogcmVtb3ZlIGBwcml2YXRlYCBtb2RpZmllciBpbiBiaXRjb2luanMgYF9fdG9CdWZmZXIoKWAgb3IgZmluZCBzb21lIG90aGVyIHNvbHV0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBidWZmZXIgLSBvcHRpb25hbCB0YXJnZXQgYnVmZmVyXG4gICAqIEBwYXJhbSBpbml0aWFsT2Zmc2V0IC0gY2FuIG9ubHkgYmUgdW5kZWZpbmVkIG9yIDAuIE90aGVyIHZhbHVlcyBhcmUgb25seSB1c2VkIGZvciBzZXJpYWxpemF0aW9uIGluIGJsb2Nrcy5cbiAgICogQHBhcmFtIF9BTExPV19XSVRORVNTIC0gaWdub3JlZFxuICAgKi9cbiAgcHJpdmF0ZSB0b0J1ZmZlcldpdGhFeHRyYVBheWxvYWQoYnVmZmVyPzogQnVmZmVyLCBpbml0aWFsT2Zmc2V0PzogbnVtYmVyLCBfQUxMT1dfV0lUTkVTUyA9IGZhbHNlKTogQnVmZmVyIHtcbiAgICAvLyBXZSBjYW4gaWdub3JlIHRoZSBgX0FMTE9XX1dJVE5FU1NgIHBhcmFtZXRlciBoZXJlIHNpbmNlIGl0IGhhcyBubyBlZmZlY3QuXG4gICAgaWYgKCFidWZmZXIpIHtcbiAgICAgIGJ1ZmZlciA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSh0aGlzLmJ5dGVMZW5ndGgoZmFsc2UpKTtcbiAgICB9XG5cbiAgICBpZiAoaW5pdGlhbE9mZnNldCAhPT0gdW5kZWZpbmVkICYmIGluaXRpYWxPZmZzZXQgIT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbm90IHN1cHBvcnRlZGApO1xuICAgIH1cblxuICAgIC8vIFN0YXJ0IG91dCB3aXRoIHJlZ3VsYXIgYml0Y29pbiBieXRlIHNlcXVlbmNlLlxuICAgIC8vIFRoaXMgYnVmZmVyIHdpbGwgaGF2ZSBleGNlc3Mgc2l6ZSBiZWNhdXNlIGl0IHVzZXMgYGJ5dGVMZW5ndGgoKWAgdG8gYWxsb2NhdGUuXG4gICAgY29uc3QgYmFzZUJ1ZmZlciA9IChUcmFuc2FjdGlvbi5wcm90b3R5cGUgYXMgYW55KS5fX3RvQnVmZmVyLmNhbGwodGhpcyk7XG4gICAgYmFzZUJ1ZmZlci5jb3B5KGJ1ZmZlcik7XG5cbiAgICAvLyBvdmVyd3JpdGUgbGVhZGluZyB2ZXJzaW9uIGJ5dGVzICh1aW50MTYgdmVyc2lvbiwgdWludDE2IHR5cGUpXG4gICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihidWZmZXIsIDApO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMigodGhpcy52ZXJzaW9uICYgMHhmZmZmKSB8ICh0aGlzLnR5cGUgPDwgMTYpKTtcblxuICAgIC8vIFNlZWsgdG8gZW5kIG9mIG9yaWdpbmFsIGJ5dGUgc2VxdWVuY2UgYW5kIGFkZCBleHRyYVBheWxvYWQuXG4gICAgLy8gV2UgbXVzdCB1c2UgdGhlIGJ5dGVMZW5ndGggYXMgY2FsY3VsYXRlZCBieSB0aGUgYml0Y29pbmpzIGltcGxlbWVudGF0aW9uIHNpbmNlXG4gICAgLy8gYGJhc2VCdWZmZXJgIGhhcyBhbiBleGNlc3Mgc2l6ZS5cbiAgICBpZiAodGhpcy5leHRyYVBheWxvYWQpIHtcbiAgICAgIGJ1ZmZlcldyaXRlci5vZmZzZXQgPSBUcmFuc2FjdGlvbi5wcm90b3R5cGUuYnl0ZUxlbmd0aC5jYWxsKHRoaXMpO1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVmFyU2xpY2UodGhpcy5leHRyYVBheWxvYWQpO1xuICAgIH1cblxuICAgIHJldHVybiBidWZmZXI7XG4gIH1cblxuICBnZXRIYXNoKGZvcldpdG5lc3M/OiBib29sZWFuKTogQnVmZmVyIHtcbiAgICBpZiAoZm9yV2l0bmVzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFyZ3VtZW50YCk7XG4gICAgfVxuICAgIHJldHVybiBiY3J5cHRvLmhhc2gyNTYodGhpcy50b0J1ZmZlcigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGhhc2ggZm9yIGFsbCBvciBub25lIG9mIHRoZSB0cmFuc2FjdGlvbiBpbnB1dHMgZGVwZW5kaW5nIG9uIHRoZSBoYXNodHlwZVxuICAgKiBAcGFyYW0gaGFzaFR5cGVcbiAgICogQHJldHVybnMgQnVmZmVyXG4gICAqL1xuICBnZXRQcmV2b3V0SGFzaChoYXNoVHlwZTogbnVtYmVyKTogQnVmZmVyIHtcbiAgICBpZiAoIShoYXNoVHlwZSAmIFV0eG9UcmFuc2FjdGlvbi5TSUdIQVNIX0FOWU9ORUNBTlBBWSkpIHtcbiAgICAgIGNvbnN0IGJ1ZmZlcldyaXRlciA9IG5ldyBCdWZmZXJXcml0ZXIoQnVmZmVyLmFsbG9jVW5zYWZlKDM2ICogdGhpcy5pbnMubGVuZ3RoKSk7XG5cbiAgICAgIHRoaXMuaW5zLmZvckVhY2goZnVuY3Rpb24gKHR4SW4pIHtcbiAgICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UodHhJbi5oYXNoKTtcbiAgICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHR4SW4uaW5kZXgpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBiY3J5cHRvLmhhc2gyNTYoYnVmZmVyV3JpdGVyLmJ1ZmZlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIEJ1ZmZlci5hbGxvYygzMiwgMCk7XG4gIH1cbn1cbiJdfQ==

@@ -37,3 +37,3 @@ "use strict";

function createOutputScript2of3(pubkeys, scriptType) {
if (!(0, types_1.isTriple)(pubkeys)) {
if (!types_1.isTriple(pubkeys)) {
throw new Error(`must provide pubkey triple`);

@@ -107,2 +107,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0U2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9vdXRwdXRTY3JpcHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUNqQywyQ0FBMkM7QUFDM0MsNkNBQTZEO0FBQzdELG1DQUEyQztBQUU5QixRQUFBLGVBQWUsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBVSxDQUFDO0FBRy9FLFNBQWdCLGdCQUFnQixDQUFDLENBQVM7SUFDeEMsT0FBTyx1QkFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFtQixDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUZELDRDQUVDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsQ0FBaUI7SUFDM0QsUUFBUSxDQUFDLEVBQUU7UUFDVCxLQUFLLE1BQU07WUFDVCxPQUFPLFdBQVcsQ0FBQztRQUNyQixLQUFLLFdBQVc7WUFDZCxPQUFPLGlCQUFpQixDQUFDO1FBQzNCLEtBQUssT0FBTztZQUNWLE9BQU8sWUFBWSxDQUFDO1FBQ3RCO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNuRDtBQUNILENBQUM7QUFYRCxrRUFXQztBQVVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsT0FBaUIsRUFBRSxVQUEwQjtJQUNsRixJQUFJLENBQUMsSUFBQSxnQkFBUSxFQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQUMvQztJQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN0QixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxNQUFNLDZCQUE2QixD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QixDQUFDO1FBQy9ELE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ25CLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVmLDBFQUEwRTtJQUMxRSxPQUFPO1FBQ0wsWUFBWSxFQUFFLE1BQU07S0FDckIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIGJpdGNvaW5qcyBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCB7IE9QX0NIRUNLU0lHLCBPUF9DSEVDS1NJR1ZFUklGWSB9IGZyb20gJ2JpdGNvaW4tb3BzJztcbmltcG9ydCB7IGlzVHJpcGxlLCBUcmlwbGUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IHNjcmlwdFR5cGVzMk9mMyA9IFsncDJzaCcsICdwMnNoUDJ3c2gnLCAncDJ3c2gnLCAncDJ0ciddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgU2NyaXB0VHlwZTJPZjMgPSB0eXBlb2Ygc2NyaXB0VHlwZXMyT2YzW251bWJlcl07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NjcmlwdFR5cGUyT2YzKHQ6IHN0cmluZyk6IHQgaXMgU2NyaXB0VHlwZTJPZjMge1xuICByZXR1cm4gc2NyaXB0VHlwZXMyT2YzLmluY2x1ZGVzKHQgYXMgU2NyaXB0VHlwZTJPZjMpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB0XG4gKiBAcmV0dXJuIHN0cmluZyBwcmV2T3V0IGFzIGRlZmluZWQgaW4gUFJFVk9VVF9UWVBFUyAoYml0Y29pbmpzLWxpYi8uLi4vdHJhbnNhY3Rpb25fYnVpbGRlci5qcylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjcmlwdFR5cGUyT2YzQXNQcmV2T3V0VHlwZSh0OiBTY3JpcHRUeXBlMk9mMyk6IHN0cmluZyB7XG4gIHN3aXRjaCAodCkge1xuICAgIGNhc2UgJ3Ayc2gnOlxuICAgICAgcmV0dXJuICdwMnNoLXAybXMnO1xuICAgIGNhc2UgJ3Ayc2hQMndzaCc6XG4gICAgICByZXR1cm4gJ3Ayc2gtcDJ3c2gtcDJtcyc7XG4gICAgY2FzZSAncDJ3c2gnOlxuICAgICAgcmV0dXJuICdwMndzaC1wMm1zJztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBzY3JpcHQgdHlwZSAke3R9YCk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgU3BlbmRhYmxlU2NyaXB0ID0ge1xuICBzY3JpcHRQdWJLZXk6IEJ1ZmZlcjtcbiAgcmVkZWVtU2NyaXB0PzogQnVmZmVyO1xuICB3aXRuZXNzU2NyaXB0PzogQnVmZmVyO1xuICAvKiogQSB0cmlwbGUgb2YgY29udHJvbCBibG9ja3MgZm9yIHRoZSB1c2VyK2JpdGdvLCB1c2VyK2JhY2t1cCwgYW5kIGJhY2t1cCtiaXRnbyBzY3JpcHRzIGluIHRoYXQgb3JkZXIuICovXG4gIGNvbnRyb2xCbG9ja3M/OiBbdXNlckJpdEdvU2NyaXB0OiBCdWZmZXIsIHVzZXJCYWNrdXBTY3JpcHQ6IEJ1ZmZlciwgYmFja3VwQml0R29TY3JpcHQ6IEJ1ZmZlcl07XG59O1xuXG4vKipcbiAqIFJldHVybiBzY3JpcHRzIGZvciAyLW9mLTMgbXVsdGlzaWcgb3V0cHV0XG4gKiBAcGFyYW0gcHVia2V5cyAtIHRoZSBrZXkgdHJpcGxlIGZvciBtdWx0aXNpZ1xuICogQHBhcmFtIHNjcmlwdFR5cGVcbiAqIEByZXR1cm5zIHt7cmVkZWVtU2NyaXB0LCB3aXRuZXNzU2NyaXB0LCBzY3JpcHRQdWJLZXl9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhwdWJrZXlzOiBCdWZmZXJbXSwgc2NyaXB0VHlwZTogU2NyaXB0VHlwZTJPZjMpOiBTcGVuZGFibGVTY3JpcHQge1xuICBpZiAoIWlzVHJpcGxlKHB1YmtleXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgcHVia2V5IHRyaXBsZWApO1xuICB9XG5cbiAgcHVia2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoa2V5Lmxlbmd0aCAhPT0gMzMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBrZXkgbGVuZ3RoICR7a2V5Lmxlbmd0aH0uIE11c3QgdXNlIGNvbXByZXNzZWQga2V5cy5gKTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChzY3JpcHRUeXBlID09PSAncDJ0cicpIHtcbiAgICAvLyBwMnRyIGFkZHJlc3NlcyB1c2UgYSBjb21iaW5hdGlvbiBvZiAyIG9mIDIgbXVsdGlzaWcgc2NyaXB0cyBkaXN0aW5jdCBmcm9tXG4gICAgLy8gdGhlIDIgb2YgMyBtdWx0aXNpZyB1c2VkIGZvciBvdGhlciBzY3JpcHQgdHlwZXNcbiAgICByZXR1cm4gY3JlYXRlVGFwcm9vdFNjcmlwdDJvZjMocHVia2V5cyk7XG4gIH1cblxuICBjb25zdCBzY3JpcHQyb2YzID0gYml0Y29pbmpzLnBheW1lbnRzLnAybXMoeyBtOiAyLCBwdWJrZXlzIH0pO1xuICBhc3NlcnQoc2NyaXB0Mm9mMy5vdXRwdXQpO1xuXG4gIGxldCBzY3JpcHRQdWJLZXk6IGJpdGNvaW5qcy5QYXltZW50O1xuICBsZXQgcmVkZWVtU2NyaXB0OiBiaXRjb2luanMuUGF5bWVudCB8IHVuZGVmaW5lZDtcbiAgbGV0IHdpdG5lc3NTY3JpcHQ6IGJpdGNvaW5qcy5QYXltZW50IHwgdW5kZWZpbmVkO1xuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICAgIHJlZGVlbVNjcmlwdCA9IHNjcmlwdDJvZjM7XG4gICAgICBzY3JpcHRQdWJLZXkgPSBiaXRjb2luanMucGF5bWVudHMucDJzaCh7IHJlZGVlbTogc2NyaXB0Mm9mMyB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3Ayc2hQMndzaCc6XG4gICAgICB3aXRuZXNzU2NyaXB0ID0gc2NyaXB0Mm9mMztcbiAgICAgIHJlZGVlbVNjcmlwdCA9IGJpdGNvaW5qcy5wYXltZW50cy5wMndzaCh7IHJlZGVlbTogc2NyaXB0Mm9mMyB9KTtcbiAgICAgIHNjcmlwdFB1YktleSA9IGJpdGNvaW5qcy5wYXltZW50cy5wMnNoKHsgcmVkZWVtOiByZWRlZW1TY3JpcHQgfSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdwMndzaCc6XG4gICAgICB3aXRuZXNzU2NyaXB0ID0gc2NyaXB0Mm9mMztcbiAgICAgIHNjcmlwdFB1YktleSA9IGJpdGNvaW5qcy5wYXltZW50cy5wMndzaCh7IHJlZGVlbTogd2l0bmVzc1NjcmlwdCB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gbXVsdGlzaWcgc2NyaXB0IHR5cGUgJHtzY3JpcHRUeXBlfWApO1xuICB9XG5cbiAgYXNzZXJ0KHNjcmlwdFB1YktleSk7XG4gIGFzc2VydChzY3JpcHRQdWJLZXkub3V0cHV0KTtcblxuICByZXR1cm4ge1xuICAgIHNjcmlwdFB1YktleTogc2NyaXB0UHViS2V5Lm91dHB1dCxcbiAgICByZWRlZW1TY3JpcHQ6IHJlZGVlbVNjcmlwdD8ub3V0cHV0LFxuICAgIHdpdG5lc3NTY3JpcHQ6IHdpdG5lc3NTY3JpcHQ/Lm91dHB1dCxcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuZCByZXR1cm5zIGEgdGFwcm9vdCBvdXRwdXQgc2NyaXB0IHVzaW5nIHRoZSB1c2VyIGFuZCBiaXRnbyBrZXlzIGZvciB0aGUgYWdncmVnYXRlXG4gKiBwdWJsaWMga2V5IGFuZCBhIHRhcHRyZWUgY29udGFpbmluZyBhIHVzZXIrYml0Z28gMi1vZi0yIHNjcmlwdCBhdCB0aGUgZmlyc3QgZGVwdGggbGV2ZWwgb2YgdGhlXG4gKiB0cmVlIGFuZCB1c2VyK2JhY2t1cCBhbmQgYml0Z28rYmFja3VwIDItb2YtMiBzY3JpcHRzIG9uZSBsZXZlbCBkZWVwZXIuXG4gKiBAcGFyYW0gcHVia2V5cyAtIGEgcHVia2V5IGFycmF5IGNvbnRhaW5pbmcgdGhlIHVzZXIga2V5LCBiYWNrdXAga2V5LCBhbmQgYml0Z28ga2V5IGluIHRoYXQgb3JkZXJcbiAqIEByZXR1cm5zIHt7c2NyaXB0UHViS2V5fX1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlVGFwcm9vdFNjcmlwdDJvZjMoW3VzZXJLZXksIGJhY2t1cEtleSwgYml0R29LZXldOiBUcmlwbGU8QnVmZmVyPik6IFNwZW5kYWJsZVNjcmlwdCB7XG4gIGNvbnN0IHVzZXJCaXRHb1NjcmlwdCA9IGJpdGNvaW5qcy5zY3JpcHQuY29tcGlsZShbdXNlcktleSwgT1BfQ0hFQ0tTSUdWRVJJRlksIGJpdEdvS2V5LCBPUF9DSEVDS1NJR10pO1xuICBjb25zdCB1c2VyQmFja3VwU2NyaXB0ID0gYml0Y29pbmpzLnNjcmlwdC5jb21waWxlKFt1c2VyS2V5LCBPUF9DSEVDS1NJR1ZFUklGWSwgYmFja3VwS2V5LCBPUF9DSEVDS1NJR10pO1xuICBjb25zdCBiYWNrdXBCaXRHb1NjcmlwdCA9IGJpdGNvaW5qcy5zY3JpcHQuY29tcGlsZShbYmFja3VwS2V5LCBPUF9DSEVDS1NJR1ZFUklGWSwgYml0R29LZXksIE9QX0NIRUNLU0lHXSk7XG5cbiAgYXNzZXJ0KHVzZXJCaXRHb1NjcmlwdCk7XG4gIGFzc2VydCh1c2VyQmFja3VwU2NyaXB0KTtcbiAgYXNzZXJ0KGJhY2t1cEJpdEdvU2NyaXB0KTtcblxuICBjb25zdCB7IG91dHB1dCB9ID0gYml0Y29pbmpzLnBheW1lbnRzLnAydHIoe1xuICAgIHB1YmtleXM6IFt1c2VyS2V5LCBiaXRHb0tleV0sXG4gICAgc2NyaXB0czogW3VzZXJCaXRHb1NjcmlwdCwgdXNlckJhY2t1cFNjcmlwdCwgYmFja3VwQml0R29TY3JpcHRdLFxuICAgIHdlaWdodHM6IFsyLCAxLCAxXSxcbiAgfSk7XG5cbiAgYXNzZXJ0KG91dHB1dCk7XG5cbiAgLy8gVE9ETzogcmV0dXJuIGNvbnRyb2wgYmxvY2tzIG9uY2UgdGhleSBhcmUgcmV0dXJuZWQgZnJvbSBwYXltZW50cy5wMnRyKClcbiAgcmV0dXJuIHtcbiAgICBzY3JpcHRQdWJLZXk6IG91dHB1dCxcbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0U2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9vdXRwdXRTY3JpcHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUNqQywyQ0FBMkM7QUFDM0MsNkNBQTZEO0FBQzdELG1DQUEyQztBQUU5QixRQUFBLGVBQWUsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBVSxDQUFDO0FBRy9FLFNBQWdCLGdCQUFnQixDQUFDLENBQVM7SUFDeEMsT0FBTyx1QkFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFtQixDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUZELDRDQUVDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsQ0FBaUI7SUFDM0QsUUFBUSxDQUFDLEVBQUU7UUFDVCxLQUFLLE1BQU07WUFDVCxPQUFPLFdBQVcsQ0FBQztRQUNyQixLQUFLLFdBQVc7WUFDZCxPQUFPLGlCQUFpQixDQUFDO1FBQzNCLEtBQUssT0FBTztZQUNWLE9BQU8sWUFBWSxDQUFDO1FBQ3RCO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNuRDtBQUNILENBQUM7QUFYRCxrRUFXQztBQVVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsT0FBaUIsRUFBRSxVQUEwQjtJQUNsRixJQUFJLENBQUMsZ0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDL0M7SUFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDdEIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixHQUFHLENBQUMsTUFBTSw2QkFBNkIsQ0FBQyxD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QztRQUMvRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNuQixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFZiwwRUFBMEU7SUFDMUUsT0FBTztRQUNMLFlBQVksRUFBRSxNQUFNO0tBQ3JCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyBiaXRjb2luanMgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgeyBPUF9DSEVDS1NJRywgT1BfQ0hFQ0tTSUdWRVJJRlkgfSBmcm9tICdiaXRjb2luLW9wcyc7XG5pbXBvcnQgeyBpc1RyaXBsZSwgVHJpcGxlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBzY3JpcHRUeXBlczJPZjMgPSBbJ3Ayc2gnLCAncDJzaFAyd3NoJywgJ3Ayd3NoJywgJ3AydHInXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFNjcmlwdFR5cGUyT2YzID0gdHlwZW9mIHNjcmlwdFR5cGVzMk9mM1tudW1iZXJdO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNTY3JpcHRUeXBlMk9mMyh0OiBzdHJpbmcpOiB0IGlzIFNjcmlwdFR5cGUyT2YzIHtcbiAgcmV0dXJuIHNjcmlwdFR5cGVzMk9mMy5pbmNsdWRlcyh0IGFzIFNjcmlwdFR5cGUyT2YzKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gdFxuICogQHJldHVybiBzdHJpbmcgcHJldk91dCBhcyBkZWZpbmVkIGluIFBSRVZPVVRfVFlQRVMgKGJpdGNvaW5qcy1saWIvLi4uL3RyYW5zYWN0aW9uX2J1aWxkZXIuanMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY3JpcHRUeXBlMk9mM0FzUHJldk91dFR5cGUodDogU2NyaXB0VHlwZTJPZjMpOiBzdHJpbmcge1xuICBzd2l0Y2ggKHQpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICAgIHJldHVybiAncDJzaC1wMm1zJztcbiAgICBjYXNlICdwMnNoUDJ3c2gnOlxuICAgICAgcmV0dXJuICdwMnNoLXAyd3NoLXAybXMnO1xuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICAgIHJldHVybiAncDJ3c2gtcDJtcyc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgc2NyaXB0IHR5cGUgJHt0fWApO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFNwZW5kYWJsZVNjcmlwdCA9IHtcbiAgc2NyaXB0UHViS2V5OiBCdWZmZXI7XG4gIHJlZGVlbVNjcmlwdD86IEJ1ZmZlcjtcbiAgd2l0bmVzc1NjcmlwdD86IEJ1ZmZlcjtcbiAgLyoqIEEgdHJpcGxlIG9mIGNvbnRyb2wgYmxvY2tzIGZvciB0aGUgdXNlcitiaXRnbywgdXNlcitiYWNrdXAsIGFuZCBiYWNrdXArYml0Z28gc2NyaXB0cyBpbiB0aGF0IG9yZGVyLiAqL1xuICBjb250cm9sQmxvY2tzPzogW3VzZXJCaXRHb1NjcmlwdDogQnVmZmVyLCB1c2VyQmFja3VwU2NyaXB0OiBCdWZmZXIsIGJhY2t1cEJpdEdvU2NyaXB0OiBCdWZmZXJdO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gc2NyaXB0cyBmb3IgMi1vZi0zIG11bHRpc2lnIG91dHB1dFxuICogQHBhcmFtIHB1YmtleXMgLSB0aGUga2V5IHRyaXBsZSBmb3IgbXVsdGlzaWdcbiAqIEBwYXJhbSBzY3JpcHRUeXBlXG4gKiBAcmV0dXJucyB7e3JlZGVlbVNjcmlwdCwgd2l0bmVzc1NjcmlwdCwgc2NyaXB0UHViS2V5fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMocHVia2V5czogQnVmZmVyW10sIHNjcmlwdFR5cGU6IFNjcmlwdFR5cGUyT2YzKTogU3BlbmRhYmxlU2NyaXB0IHtcbiAgaWYgKCFpc1RyaXBsZShwdWJrZXlzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBwcm92aWRlIHB1YmtleSB0cmlwbGVgKTtcbiAgfVxuXG4gIHB1YmtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgaWYgKGtleS5sZW5ndGggIT09IDMzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQga2V5IGxlbmd0aCAke2tleS5sZW5ndGh9LiBNdXN0IHVzZSBjb21wcmVzc2VkIGtleXMuYCk7XG4gICAgfVxuICB9KTtcblxuICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AydHInKSB7XG4gICAgLy8gcDJ0ciBhZGRyZXNzZXMgdXNlIGEgY29tYmluYXRpb24gb2YgMiBvZiAyIG11bHRpc2lnIHNjcmlwdHMgZGlzdGluY3QgZnJvbVxuICAgIC8vIHRoZSAyIG9mIDMgbXVsdGlzaWcgdXNlZCBmb3Igb3RoZXIgc2NyaXB0IHR5cGVzXG4gICAgcmV0dXJuIGNyZWF0ZVRhcHJvb3RTY3JpcHQyb2YzKHB1YmtleXMpO1xuICB9XG5cbiAgY29uc3Qgc2NyaXB0Mm9mMyA9IGJpdGNvaW5qcy5wYXltZW50cy5wMm1zKHsgbTogMiwgcHVia2V5cyB9KTtcbiAgYXNzZXJ0KHNjcmlwdDJvZjMub3V0cHV0KTtcblxuICBsZXQgc2NyaXB0UHViS2V5OiBiaXRjb2luanMuUGF5bWVudDtcbiAgbGV0IHJlZGVlbVNjcmlwdDogYml0Y29pbmpzLlBheW1lbnQgfCB1bmRlZmluZWQ7XG4gIGxldCB3aXRuZXNzU2NyaXB0OiBiaXRjb2luanMuUGF5bWVudCB8IHVuZGVmaW5lZDtcbiAgc3dpdGNoIChzY3JpcHRUeXBlKSB7XG4gICAgY2FzZSAncDJzaCc6XG4gICAgICByZWRlZW1TY3JpcHQgPSBzY3JpcHQyb2YzO1xuICAgICAgc2NyaXB0UHViS2V5ID0gYml0Y29pbmpzLnBheW1lbnRzLnAyc2goeyByZWRlZW06IHNjcmlwdDJvZjMgfSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdwMnNoUDJ3c2gnOlxuICAgICAgd2l0bmVzc1NjcmlwdCA9IHNjcmlwdDJvZjM7XG4gICAgICByZWRlZW1TY3JpcHQgPSBiaXRjb2luanMucGF5bWVudHMucDJ3c2goeyByZWRlZW06IHNjcmlwdDJvZjMgfSk7XG4gICAgICBzY3JpcHRQdWJLZXkgPSBiaXRjb2luanMucGF5bWVudHMucDJzaCh7IHJlZGVlbTogcmVkZWVtU2NyaXB0IH0pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncDJ3c2gnOlxuICAgICAgd2l0bmVzc1NjcmlwdCA9IHNjcmlwdDJvZjM7XG4gICAgICBzY3JpcHRQdWJLZXkgPSBiaXRjb2luanMucGF5bWVudHMucDJ3c2goeyByZWRlZW06IHdpdG5lc3NTY3JpcHQgfSk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIG11bHRpc2lnIHNjcmlwdCB0eXBlICR7c2NyaXB0VHlwZX1gKTtcbiAgfVxuXG4gIGFzc2VydChzY3JpcHRQdWJLZXkpO1xuICBhc3NlcnQoc2NyaXB0UHViS2V5Lm91dHB1dCk7XG5cbiAgcmV0dXJuIHtcbiAgICBzY3JpcHRQdWJLZXk6IHNjcmlwdFB1YktleS5vdXRwdXQsXG4gICAgcmVkZWVtU2NyaXB0OiByZWRlZW1TY3JpcHQ/Lm91dHB1dCxcbiAgICB3aXRuZXNzU2NyaXB0OiB3aXRuZXNzU2NyaXB0Py5vdXRwdXQsXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIHRhcHJvb3Qgb3V0cHV0IHNjcmlwdCB1c2luZyB0aGUgdXNlciBhbmQgYml0Z28ga2V5cyBmb3IgdGhlIGFnZ3JlZ2F0ZVxuICogcHVibGljIGtleSBhbmQgYSB0YXB0cmVlIGNvbnRhaW5pbmcgYSB1c2VyK2JpdGdvIDItb2YtMiBzY3JpcHQgYXQgdGhlIGZpcnN0IGRlcHRoIGxldmVsIG9mIHRoZVxuICogdHJlZSBhbmQgdXNlcitiYWNrdXAgYW5kIGJpdGdvK2JhY2t1cCAyLW9mLTIgc2NyaXB0cyBvbmUgbGV2ZWwgZGVlcGVyLlxuICogQHBhcmFtIHB1YmtleXMgLSBhIHB1YmtleSBhcnJheSBjb250YWluaW5nIHRoZSB1c2VyIGtleSwgYmFja3VwIGtleSwgYW5kIGJpdGdvIGtleSBpbiB0aGF0IG9yZGVyXG4gKiBAcmV0dXJucyB7e3NjcmlwdFB1YktleX19XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVRhcHJvb3RTY3JpcHQyb2YzKFt1c2VyS2V5LCBiYWNrdXBLZXksIGJpdEdvS2V5XTogVHJpcGxlPEJ1ZmZlcj4pOiBTcGVuZGFibGVTY3JpcHQge1xuICBjb25zdCB1c2VyQml0R29TY3JpcHQgPSBiaXRjb2luanMuc2NyaXB0LmNvbXBpbGUoW3VzZXJLZXksIE9QX0NIRUNLU0lHVkVSSUZZLCBiaXRHb0tleSwgT1BfQ0hFQ0tTSUddKTtcbiAgY29uc3QgdXNlckJhY2t1cFNjcmlwdCA9IGJpdGNvaW5qcy5zY3JpcHQuY29tcGlsZShbdXNlcktleSwgT1BfQ0hFQ0tTSUdWRVJJRlksIGJhY2t1cEtleSwgT1BfQ0hFQ0tTSUddKTtcbiAgY29uc3QgYmFja3VwQml0R29TY3JpcHQgPSBiaXRjb2luanMuc2NyaXB0LmNvbXBpbGUoW2JhY2t1cEtleSwgT1BfQ0hFQ0tTSUdWRVJJRlksIGJpdEdvS2V5LCBPUF9DSEVDS1NJR10pO1xuXG4gIGFzc2VydCh1c2VyQml0R29TY3JpcHQpO1xuICBhc3NlcnQodXNlckJhY2t1cFNjcmlwdCk7XG4gIGFzc2VydChiYWNrdXBCaXRHb1NjcmlwdCk7XG5cbiAgY29uc3QgeyBvdXRwdXQgfSA9IGJpdGNvaW5qcy5wYXltZW50cy5wMnRyKHtcbiAgICBwdWJrZXlzOiBbdXNlcktleSwgYml0R29LZXldLFxuICAgIHNjcmlwdHM6IFt1c2VyQml0R29TY3JpcHQsIHVzZXJCYWNrdXBTY3JpcHQsIGJhY2t1cEJpdEdvU2NyaXB0XSxcbiAgICB3ZWlnaHRzOiBbMiwgMSwgMV0sXG4gIH0pO1xuXG4gIGFzc2VydChvdXRwdXQpO1xuXG4gIC8vIFRPRE86IHJldHVybiBjb250cm9sIGJsb2NrcyBvbmNlIHRoZXkgYXJlIHJldHVybmVkIGZyb20gcGF5bWVudHMucDJ0cigpXG4gIHJldHVybiB7XG4gICAgc2NyaXB0UHViS2V5OiBvdXRwdXQsXG4gIH07XG59XG4iXX0=

@@ -23,3 +23,3 @@ "use strict";

function getDefaultSigHash(network) {
switch ((0, coins_1.getMainnet)(network)) {
switch (coins_1.getMainnet(network)) {
case networks.bitcoincash:

@@ -241,2 +241,2 @@ case networks.bitcoinsv:

exports.verifySignature = verifySignature;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FBdUM7QUFFdkMsaURBQStFO0FBQy9FLHVEQUF1RDtBQUN2RCxzRUFBc0U7QUFHdEUsd0NBQXdDO0FBQ3hDLG9DQUFzQztBQUN0Qyx1REFBb0Q7QUFFcEQsTUFBTSxVQUFVLEdBQUc7SUFDakIsVUFBVTtJQUNWLGFBQWE7SUFDYixVQUFVO0lBQ1YsUUFBUTtJQUNSLFlBQVk7SUFDWixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7Q0FDWCxDQUFDO0FBMEJYLFNBQWdCLGlCQUFpQixDQUFDLE9BQWdCO0lBQ2hELFFBQVEsSUFBQSxrQkFBVSxFQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDeEIsS0FBSyxRQUFRLENBQUMsV0FBVztZQUN2QixPQUFPLDJCQUFXLENBQUMsV0FBVyxHQUFHLGlDQUFlLENBQUMsY0FBYyxDQUFDO1FBQ2xFO1lBQ0UsT0FBTywyQkFBVyxDQUFDLFdBQVcsQ0FBQztLQUNsQztBQUNILENBQUM7QUFURCw4Q0FTQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ2xDLEtBQWM7SUFFZCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDL0MsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDdEQsSUFBSSxtQkFBbUIsRUFBRSxtQkFBOEIsQ0FBQztJQUN4RCxJQUFJLGFBQWEsRUFBRTtRQUNqQixrSEFBa0g7UUFDbEgsZ0hBQWdIO1FBQ2hILGlIQUFpSDtRQUNqSCxnR0FBZ0c7UUFDaEcsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNwQyxJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFjLENBQUM7U0FDaEY7YUFBTTtZQUNMLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQWMsQ0FBQztTQUN2RTtLQUNGO1NBQU07UUFDTCxtQkFBbUIsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFjLENBQUM7UUFDdEUsbUJBQW1CLEdBQUcsc0JBQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3REO0lBRUQsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztLQUMvQztJQUVELElBQUksbUJBQW1CLEtBQUssUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDaEQsSUFBSSxDQUFDLG1CQUFtQixJQUFJLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRyxtQkFBbUIsQ0FBQztRQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixNQUFNLFVBQVUsR0FBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sU0FBUyxHQUFHLHdCQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRS9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztLQUNsRjtJQUVELDhHQUE4RztJQUM5RyxzSEFBc0g7SUFDdEgsc0dBQXNHO0lBQ3RHLGlHQUFpRztJQUNqRyxrR0FBa0c7SUFDbEcsa0hBQWtIO0lBQ2xILGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsK0RBQStEO0lBQy9ELG9FQUFvRTtJQUNwRSxFQUFFO0lBQ0YsOEdBQThHO0lBQzlHLDRIQUE0SDtJQUM1SCxNQUFNLGtCQUFrQixHQUN0QixtQkFBbUIsS0FBSyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxtQkFBbUIsS0FBSyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUM5RixNQUFNLG9CQUFvQjtJQUN4QiwwQ0FBMEM7SUFDMUMsbUJBQW1CLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDaEMscUVBQXFFO1FBQ3JFLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFFbkMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsb0JBQW9CLEVBQUU7UUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO0tBQy9DO0lBRUQsSUFBSSxhQUFhLEVBQUU7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLGtFQUFrRSxDQUFDLENBQUM7U0FDckY7UUFDRCxJQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1NBQ3RFO0tBQ0Y7U0FBTSxJQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLEVBQUU7UUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzFEO0lBRUQsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzlHLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7S0FDekU7SUFFRCxNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0tBQ3RDO0lBQ0QsTUFBTSxtQkFBbUIsR0FBRyxzQkFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RCxJQUFJLG1CQUFtQixLQUFLLElBQUksRUFBRTtRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDbEQ7SUFDRCxJQUFJLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzFEO0lBQ0QsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBYSxDQUFDO0lBQ2hFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7S0FDckU7SUFFRCxrSEFBa0g7SUFDbEgsa0hBQWtIO0lBQ2xILE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUN2QyxNQUFNLGtCQUFrQixHQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBWSxHQUFHLEVBQUUsQ0FBQztJQUNuRSxJQUFJLGtCQUFrQixLQUFLLENBQUMsRUFBRTtRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7S0FDN0U7SUFDRCxNQUFNLFFBQVEsR0FBSSxtQkFBbUIsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFZLEdBQUcsRUFBRSxDQUFDO0lBQy9ELElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixRQUFRLEVBQUUsQ0FBQyxDQUFDO0tBQ3pEO0lBRUQsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hELElBQUksVUFBVSxLQUFLLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtRQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixPQUFPLENBQUMsZ0JBQWdCLGlCQUFpQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0tBQzVGO0lBRUQsT0FBTztRQUNMLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakMsT0FBTyxDQUFDLENBQUM7YUFDVjtZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFnRDtRQUNqRCxVQUFVO1FBQ1YsU0FBUztLQUNWLENBQUM7QUFDSixDQUFDO0FBcElELG9EQW9JQztBQUVELFNBQWdCLHdCQUF3QixDQUFDLEtBQWM7SUFDckQsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUE4QixDQUFDO0lBRXhFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1FBQzNHLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7S0FDakY7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0FDdkM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7S0FDNUM7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0tBQy9DO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQWpCRCw0REFpQkM7QUEwQkQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLHlCQUF5QixDQUN2QyxXQUE0QixFQUM1QixVQUFrQixFQUNsQixNQUFjLEVBQ2QsdUJBQTZDLEVBQUU7SUFFL0MsMEJBQTBCO0lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztLQUN4QztJQUVELE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsMEJBQTBCO0lBQzFCLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0tBQ3BEO0lBRUQsTUFBTSxZQUFZLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFckQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLFVBQVU7U0FDdkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztTQUM1QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEtBQUssU0FBUyxJQUFJLG9CQUFvQixDQUFDLGNBQWMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVwSCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksb0JBQW9CLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FDcEcsQ0FBQztJQUVGLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO1FBQ3hDLCtFQUErRTtRQUMvRSxJQUFJLGVBQWUsS0FBSyxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztTQUNoQztRQUNELE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4RSxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsYUFBYTtZQUNoRCxDQUFDLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUM7WUFDcEYsQ0FBQyxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEcsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQy9DLHNCQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQ25FLENBQUM7UUFFRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7U0FDaEM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDbEM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBaERELDhEQWdEQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZUFBZSxDQUM3QixXQUE0QixFQUM1QixVQUFrQixFQUNsQixNQUFjLEVBQ2QsdUJBQTZDLEVBQUU7SUFFL0MsTUFBTSxzQkFBc0IsR0FBRyx5QkFBeUIsQ0FDdEQsV0FBVyxFQUNYLFVBQVUsRUFDVixNQUFNLEVBQ04sb0JBQW9CLENBQ3JCLENBQUMsTUFBTSxDQUNOLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDSixnRkFBZ0Y7SUFDaEYsNkVBQTZFO0lBQzdFLG9CQUFvQixDQUFDLFNBQVMsS0FBSyxTQUFTO1FBQzVDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksb0JBQW9CLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDbEYsQ0FBQztJQUVGLE9BQU8sc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7QUFDNUcsQ0FBQztBQXBCRCwwQ0FvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvcGNvZGVzIGZyb20gJ2JpdGNvaW4tb3BzJztcblxuaW1wb3J0IHsgRUNQYWlyLCBwYXltZW50cywgc2NyaXB0LCBUcmFuc2FjdGlvbiwgVHhJbnB1dCB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0ICogYXMgY2xhc3NpZnkgZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvY2xhc3NpZnknO1xuaW1wb3J0ICogYXMgU2NyaXB0U2lnbmF0dXJlIGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL3NjcmlwdF9zaWduYXR1cmUnO1xuXG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAnLi4vbmV0d29ya1R5cGVzJztcbmltcG9ydCAqIGFzIG5ldHdvcmtzIGZyb20gJy4uL25ldHdvcmtzJztcbmltcG9ydCB7IGdldE1haW5uZXQgfSBmcm9tICcuLi9jb2lucyc7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb24gfSBmcm9tICcuL1V0eG9UcmFuc2FjdGlvbic7XG5cbmNvbnN0IGlucHV0VHlwZXMgPSBbXG4gICdtdWx0aXNpZycsXG4gICdub25zdGFuZGFyZCcsXG4gICdudWxsZGF0YScsXG4gICdwdWJrZXknLFxuICAncHVia2V5aGFzaCcsXG4gICdzY3JpcHRoYXNoJyxcbiAgJ3dpdG5lc3NwdWJrZXloYXNoJyxcbiAgJ3dpdG5lc3NzY3JpcHRoYXNoJyxcbiAgJ3dpdG5lc3Njb21taXRtZW50Jyxcbl0gYXMgY29uc3Q7XG5cbnR5cGUgSW5wdXRUeXBlID0gdHlwZW9mIGlucHV0VHlwZXNbbnVtYmVyXTtcblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRTaWduYXR1cmVTY3JpcHQge1xuICBpc1NlZ3dpdElucHV0OiBib29sZWFuO1xuICBpbnB1dENsYXNzaWZpY2F0aW9uOiBJbnB1dFR5cGU7XG4gIHB1YmxpY0tleXM/OiBCdWZmZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRTaWduYXR1cmVQMlBLSCBleHRlbmRzIFBhcnNlZFNpZ25hdHVyZVNjcmlwdCB7XG4gIHNpZ25hdHVyZXM6IFtCdWZmZXJdO1xuICBwdWJsaWNLZXlzOiBbQnVmZmVyXTtcbiAgcHViU2NyaXB0OiBCdWZmZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkU2lnbmF0dXJlU2NyaXB0Mk9mMyBleHRlbmRzIFBhcnNlZFNpZ25hdHVyZVNjcmlwdCB7XG4gIHNpZ25hdHVyZXM6XG4gICAgfCBbQnVmZmVyLCBCdWZmZXJdIC8vIGZ1bGx5LXNpZ25lZCB0cmFuc2FjdGlvbnMgd2l0aCBzaWduYXR1cmVzXG4gICAgLyogUGFydGlhbGx5IHNpZ25lZCB0cmFuc2FjdGlvbnMgd2l0aCBwbGFjZWhvbGRlciBzaWduYXR1cmVzLlxuICAgICAgIEZvciBwMnNoLCB0aGUgcGxhY2Vob2xkZXIgaXMgT1BfMCAobnVtYmVyIDApICovXG4gICAgfCBbQnVmZmVyIHwgMCwgQnVmZmVyIHwgMCwgQnVmZmVyIHwgMF07XG4gIHB1YmxpY0tleXM6IFtCdWZmZXIsIEJ1ZmZlciwgQnVmZmVyXTtcbiAgcHViU2NyaXB0OiBCdWZmZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0U2lnSGFzaChuZXR3b3JrOiBOZXR3b3JrKTogbnVtYmVyIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uLlNJR0hBU0hfQUxMIHwgVXR4b1RyYW5zYWN0aW9uLlNJR0hBU0hfRk9SS0lEO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gVHJhbnNhY3Rpb24uU0lHSEFTSF9BTEw7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhIHRyYW5zYWN0aW9uJ3Mgc2lnbmF0dXJlIHNjcmlwdCB0byBvYnRhaW4gcHVibGljIGtleXMsIHNpZ25hdHVyZXMsIHRoZSBzaWcgc2NyaXB0LFxuICogYW5kIG90aGVyIHByb3BlcnRpZXMuXG4gKlxuICogT25seSBzdXBwb3J0cyBzY3JpcHQgdHlwZXMgdXNlZCBpbiBCaXRHbyB0cmFuc2FjdGlvbnMuXG4gKlxuICogQHBhcmFtIGlucHV0XG4gKiBAcmV0dXJucyBQYXJzZWRTaWduYXR1cmVTY3JpcHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2lnbmF0dXJlU2NyaXB0KFxuICBpbnB1dDogVHhJbnB1dFxuKTogUGFyc2VkU2lnbmF0dXJlU2NyaXB0IHwgUGFyc2VkU2lnbmF0dXJlUDJQS0ggfCBQYXJzZWRTaWduYXR1cmVTY3JpcHQyT2YzIHtcbiAgY29uc3QgaXNTZWd3aXRJbnB1dCA9IGlucHV0LndpdG5lc3MubGVuZ3RoID4gMDtcbiAgY29uc3QgaXNOYXRpdmVTZWd3aXRJbnB1dCA9IGlucHV0LnNjcmlwdC5sZW5ndGggPT09IDA7XG4gIGxldCBkZWNvbXBpbGVkU2lnU2NyaXB0LCBpbnB1dENsYXNzaWZpY2F0aW9uOiBJbnB1dFR5cGU7XG4gIGlmIChpc1NlZ3dpdElucHV0KSB7XG4gICAgLy8gVGhlIGRlY29tcGlsZWRTaWdTY3JpcHQgaXMgdGhlIHNjcmlwdCBjb250YWluaW5nIHRoZSBzaWduYXR1cmVzLCBwdWJsaWMga2V5cywgYW5kIHRoZSBzY3JpcHQgdGhhdCB3YXMgY29tbWl0dGVkXG4gICAgLy8gdG8gKHB1YlNjcmlwdCkuIElmIHRoaXMgaXMgYSBzZWd3aXQgaW5wdXQgdGhlIGRlY29tcGlsZWRTaWdTY3JpcHQgaXMgaW4gdGhlIHdpdG5lc3MsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdFxuICAgIC8vIGlzIG5hdGl2ZSBvciBub3QuIFRoZSBpbnB1dENsYXNzaWZpY2F0aW9uIGlzIGRldGVybWluZWQgYmFzZWQgb24gd2hldGhlciBvciBub3QgdGhlIGlucHV0IGlzIG5hdGl2ZSB0byBnaXZlIGFuXG4gICAgLy8gYWNjdXJhdGUgY2xhc3NpZmljYXRpb24uIE5vdGUgdGhhdCBwMnNoUDJ3c2ggaW5wdXRzIHdpbGwgYmUgY2xhc3NpZmllZCBhcyBwMnNoIGFuZCBub3QgcDJ3c2guXG4gICAgZGVjb21waWxlZFNpZ1NjcmlwdCA9IGlucHV0LndpdG5lc3M7XG4gICAgaWYgKGlzTmF0aXZlU2Vnd2l0SW5wdXQpIHtcbiAgICAgIGlucHV0Q2xhc3NpZmljYXRpb24gPSBjbGFzc2lmeS53aXRuZXNzKGRlY29tcGlsZWRTaWdTY3JpcHQsIHRydWUpIGFzIElucHV0VHlwZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5wdXRDbGFzc2lmaWNhdGlvbiA9IGNsYXNzaWZ5LmlucHV0KGlucHV0LnNjcmlwdCwgdHJ1ZSkgYXMgSW5wdXRUeXBlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpbnB1dENsYXNzaWZpY2F0aW9uID0gY2xhc3NpZnkuaW5wdXQoaW5wdXQuc2NyaXB0LCB0cnVlKSBhcyBJbnB1dFR5cGU7XG4gICAgZGVjb21waWxlZFNpZ1NjcmlwdCA9IHNjcmlwdC5kZWNvbXBpbGUoaW5wdXQuc2NyaXB0KTtcbiAgfVxuXG4gIGlmICghZGVjb21waWxlZFNpZ1NjcmlwdCkge1xuICAgIHJldHVybiB7IGlzU2Vnd2l0SW5wdXQsIGlucHV0Q2xhc3NpZmljYXRpb24gfTtcbiAgfVxuXG4gIGlmIChpbnB1dENsYXNzaWZpY2F0aW9uID09PSBjbGFzc2lmeS50eXBlcy5QMlBLSCkge1xuICAgIGlmICghZGVjb21waWxlZFNpZ1NjcmlwdCB8fCBkZWNvbXBpbGVkU2lnU2NyaXB0Lmxlbmd0aCAhPT0gMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmV4cGVjdGVkIHNpZ25hdHVyZSBmb3IgcDJwa2gnKTtcbiAgICB9XG4gICAgY29uc3QgW3NpZ25hdHVyZSwgcHVibGljS2V5XSA9IGRlY29tcGlsZWRTaWdTY3JpcHQ7XG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoc2lnbmF0dXJlKSB8fCAhQnVmZmVyLmlzQnVmZmVyKHB1YmxpY0tleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBzaWduYXR1cmUgZm9yIHAycGtoJyk7XG4gICAgfVxuICAgIGNvbnN0IHB1YmxpY0tleXMgPSBbcHVibGljS2V5XTtcbiAgICBjb25zdCBzaWduYXR1cmVzOiBbQnVmZmVyXSA9IFtzaWduYXR1cmVdO1xuICAgIGNvbnN0IHB1YlNjcmlwdCA9IHBheW1lbnRzLnAycGtoKHsgcHVia2V5OiBwdWJsaWNLZXkgfSkub3V0cHV0O1xuXG4gICAgcmV0dXJuIHsgaXNTZWd3aXRJbnB1dCwgaW5wdXRDbGFzc2lmaWNhdGlvbiwgc2lnbmF0dXJlcywgcHVibGljS2V5cywgcHViU2NyaXB0IH07XG4gIH1cblxuICAvLyBOb3RlIHRoZSBhc3N1bXB0aW9uIGhlcmUgdGhhdCBpZiB3ZSBoYXZlIGEgcDJzaCBvciBwMndzaCBpbnB1dCBpdCB3aWxsIGJlIG11bHRpc2lnIChhcHByb3ByaWF0ZSBiZWNhdXNlIHRoZVxuICAvLyBCaXRHbyBwbGF0Zm9ybSBvbmx5IHN1cHBvcnRzIG11bHRpc2lnIHdpdGhpbiB0aGVzZSB0eXBlcyBvZiBpbnB1dHMsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiByZXBsYXkgcHJvdGVjdGlvbiBpbnB1dHMsXG4gIC8vIHdoaWNoIGFyZSBzaW5nbGUgc2lnbmF0dXJlIHAyc2gpLiBTaWduYXR1cmVzIGFyZSBhbGwgYnV0IHRoZSBsYXN0IGVudHJ5IGluIHRoZSBkZWNvbXBpbGVkU2lnU2NyaXB0LlxuICAvLyBUaGUgcmVkZWVtU2NyaXB0L3dpdG5lc3NTY3JpcHQgKGRlcGVuZGluZyBvbiB3aGljaCB0eXBlIG9mIGlucHV0IHRoaXMgaXMpIGlzIHRoZSBsYXN0IGVudHJ5IGluXG4gIC8vIHRoZSBkZWNvbXBpbGVkU2lnU2NyaXB0IChkZW5vdGVkIGhlcmUgYXMgdGhlIHB1YlNjcmlwdCkuIFRoZSBwdWJsaWMga2V5cyBhcmUgdGhlIHNlY29uZCB0aHJvdWdoXG4gIC8vIGFudGVwZW51bHRpbWF0ZSBlbnRyaWVzIGluIHRoZSBkZWNvbXBpbGVkUHViU2NyaXB0LiBTZWUgYmVsb3cgZm9yIGEgdmlzdWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0eXBpY2FsIDItb2YtM1xuICAvLyBtdWx0aXNpZyBzZXR1cDpcbiAgLy9cbiAgLy8gICBkZWNvbXBpbGVkU2lnU2NyaXB0ID0gMCA8c2lnMT4gPHNpZzI+IFs8c2lnMz5dIDxwdWJTY3JpcHQ+XG4gIC8vICAgZGVjb21waWxlZFB1YlNjcmlwdCA9IDIgPHB1YjE+IDxwdWIyPiA8cHViMz4gMyBPUF9DSEVDS01VTFRJU0lHXG4gIC8vXG4gIC8vIFRyYW5zYWN0aW9ucyBidWlsdCB3aXRoIGAuYnVpbGQoKWAgb25seSBoYXZlIHR3byBzaWduYXR1cmVzIGA8c2lnMT5gIGFuZCBgPHNpZzI+YCBpbiBfZGVjb21waWxlZFNpZ1NjcmlwdF8uXG4gIC8vIFRyYW5zYWN0aW9ucyBidWlsdCB3aXRoIGAuYnVpbGRJbmNvbXBsZXRlKClgIGhhdmUgdGhyZWUgc2lnbmF0dXJlcywgd2hlcmUgbWlzc2luZyBzaWduYXR1cmVzIGFyZSBzdWJzdGl0dXRlZCB3aXRoIGBPUF8wYC5cbiAgY29uc3QgZXhwZWN0ZWRTY3JpcHRUeXBlID1cbiAgICBpbnB1dENsYXNzaWZpY2F0aW9uID09PSBjbGFzc2lmeS50eXBlcy5QMlNIIHx8IGlucHV0Q2xhc3NpZmljYXRpb24gPT09IGNsYXNzaWZ5LnR5cGVzLlAyV1NIO1xuICBjb25zdCBleHBlY3RlZFNjcmlwdExlbmd0aCA9XG4gICAgLy8gY29tcGxldGUgdHJhbnNhY3Rpb25zIHdpdGggMiBzaWduYXR1cmVzXG4gICAgZGVjb21waWxlZFNpZ1NjcmlwdC5sZW5ndGggPT09IDQgfHxcbiAgICAvLyBpbmNvbXBsZXRlIHRyYW5zYWN0aW9uIHdpdGggMyBzaWduYXR1cmVzIG9yIHNpZ25hdHVyZSBwbGFjZWhvbGRlcnNcbiAgICBkZWNvbXBpbGVkU2lnU2NyaXB0Lmxlbmd0aCA9PT0gNTtcblxuICBpZiAoIWV4cGVjdGVkU2NyaXB0VHlwZSB8fCAhZXhwZWN0ZWRTY3JpcHRMZW5ndGgpIHtcbiAgICByZXR1cm4geyBpc1NlZ3dpdElucHV0LCBpbnB1dENsYXNzaWZpY2F0aW9uIH07XG4gIH1cblxuICBpZiAoaXNTZWd3aXRJbnB1dCkge1xuICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKGRlY29tcGlsZWRTaWdTY3JpcHRbMF0pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkIGRlY29tcGlsZWRTaWdTY3JpcHRbMF0gdG8gYmUgYSBidWZmZXIgZm9yIHNlZ3dpdCBpbnB1dHNgKTtcbiAgICB9XG4gICAgaWYgKGRlY29tcGlsZWRTaWdTY3JpcHRbMF0ubGVuZ3RoICE9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHdpdG5lc3Mgc3RhY2sgZXhwZWN0ZWQgdG8gc3RhcnQgd2l0aCBlbXB0eSBidWZmZXJgKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZGVjb21waWxlZFNpZ1NjcmlwdFswXSAhPT0gb3Bjb2Rlcy5PUF8wKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBzaWdTY3JpcHQgZXhwZWN0ZWQgdG8gc3RhcnQgd2l0aCBPUF8wYCk7XG4gIH1cblxuICBjb25zdCBzaWduYXR1cmVzID0gZGVjb21waWxlZFNpZ1NjcmlwdC5zbGljZSgxIC8qIGlnbm9yZSBsZWFkaW5nIE9QXzAgKi8sIC0xIC8qIGlnbm9yZSB0cmFpbGluZyBwdWJTY3JpcHQgKi8pO1xuICBpZiAoc2lnbmF0dXJlcy5sZW5ndGggIT09IDIgJiYgc2lnbmF0dXJlcy5sZW5ndGggIT09IDMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkIDIgb3IgMyBzaWduYXR1cmVzLCBnb3QgJHtzaWduYXR1cmVzLmxlbmd0aH1gKTtcbiAgfVxuXG4gIGNvbnN0IHB1YlNjcmlwdCA9IGRlY29tcGlsZWRTaWdTY3JpcHRbZGVjb21waWxlZFNpZ1NjcmlwdC5sZW5ndGggLSAxXTtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIocHViU2NyaXB0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBwdWJzY3JpcHRgKTtcbiAgfVxuICBjb25zdCBkZWNvbXBpbGVkUHViU2NyaXB0ID0gc2NyaXB0LmRlY29tcGlsZShwdWJTY3JpcHQpO1xuICBpZiAoZGVjb21waWxlZFB1YlNjcmlwdCA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgY291bGQgbm90IGRlY29tcGlsZSBwdWJTY3JpcHRgKTtcbiAgfVxuICBpZiAoZGVjb21waWxlZFB1YlNjcmlwdC5sZW5ndGggIT09IDYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgZGVjb21waWxlZFB1YlNjcmlwdCBsZW5ndGhgKTtcbiAgfVxuICBjb25zdCBwdWJsaWNLZXlzID0gZGVjb21waWxlZFB1YlNjcmlwdC5zbGljZSgxLCAtMikgYXMgQnVmZmVyW107XG4gIHB1YmxpY0tleXMuZm9yRWFjaCgoYikgPT4ge1xuICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKGIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9XG4gIH0pO1xuICBpZiAocHVibGljS2V5cy5sZW5ndGggIT09IDMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkIDMgcHVibGljIGtleXMsIGdvdCAke3B1YmxpY0tleXMubGVuZ3RofWApO1xuICB9XG5cbiAgLy8gT3AgY29kZXMgODEgdGhyb3VnaCA5NiByZXByZXNlbnQgbnVtYmVycyAxIHRocm91Z2ggMTYgKHNlZSBodHRwczovL2VuLmJpdGNvaW4uaXQvd2lraS9TY3JpcHQjT3Bjb2RlcyksIHdoaWNoIGlzXG4gIC8vIHdoeSB3ZSBzdWJ0cmFjdCBieSA4MCB0byBnZXQgdGhlIG51bWJlciBvZiBzaWduYXR1cmVzIChuKSBhbmQgdGhlIG51bWJlciBvZiBwdWJsaWMga2V5cyAobSkgaW4gYW4gbi1vZi1tIHNldHVwLlxuICBjb25zdCBsZW4gPSBkZWNvbXBpbGVkUHViU2NyaXB0Lmxlbmd0aDtcbiAgY29uc3Qgc2lnbmF0dXJlVGhyZXNob2xkID0gKGRlY29tcGlsZWRQdWJTY3JpcHRbMF0gYXMgbnVtYmVyKSAtIDgwO1xuICBpZiAoc2lnbmF0dXJlVGhyZXNob2xkICE9PSAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCBzaWduYXR1cmVUaHJlc2hvbGQgMiwgZ290ICR7c2lnbmF0dXJlVGhyZXNob2xkfWApO1xuICB9XG4gIGNvbnN0IG5QdWJLZXlzID0gKGRlY29tcGlsZWRQdWJTY3JpcHRbbGVuIC0gMl0gYXMgbnVtYmVyKSAtIDgwO1xuICBpZiAoblB1YktleXMgIT09IDMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkIG5QdWJLZXlzIDMsIGdvdCAke25QdWJLZXlzfWApO1xuICB9XG5cbiAgY29uc3QgbGFzdE9wQ29kZSA9IGRlY29tcGlsZWRQdWJTY3JpcHRbbGVuIC0gMV07XG4gIGlmIChsYXN0T3BDb2RlICE9PSBvcGNvZGVzLk9QX0NIRUNLTVVMVElTSUcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkIG9wY29kZSAjJHtvcGNvZGVzLk9QX0NIRUNLTVVMVElTSUd9LCBnb3Qgb3Bjb2RlICMke2xhc3RPcENvZGV9YCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlzU2Vnd2l0SW5wdXQsXG4gICAgaW5wdXRDbGFzc2lmaWNhdGlvbixcbiAgICBzaWduYXR1cmVzOiBzaWduYXR1cmVzLm1hcCgoYikgPT4ge1xuICAgICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihiKSB8fCBiID09PSAwKSB7XG4gICAgICAgIHJldHVybiBiO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHNpZ25hdHVyZSBlbGVtZW50ICR7Yn1gKTtcbiAgICB9KSBhcyBbQnVmZmVyLCBCdWZmZXJdIHwgW0J1ZmZlciwgQnVmZmVyLCBCdWZmZXJdLFxuICAgIHB1YmxpY0tleXMsXG4gICAgcHViU2NyaXB0LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTaWduYXR1cmVTY3JpcHQyT2YzKGlucHV0OiBUeElucHV0KTogUGFyc2VkU2lnbmF0dXJlU2NyaXB0Mk9mMyB7XG4gIGNvbnN0IHJlc3VsdCA9IHBhcnNlU2lnbmF0dXJlU2NyaXB0KGlucHV0KSBhcyBQYXJzZWRTaWduYXR1cmVTY3JpcHQyT2YzO1xuXG4gIGlmICghW2NsYXNzaWZ5LnR5cGVzLlAyV1NILCBjbGFzc2lmeS50eXBlcy5QMlNILCBjbGFzc2lmeS50eXBlcy5QMlBLSF0uaW5jbHVkZXMocmVzdWx0LmlucHV0Q2xhc3NpZmljYXRpb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIGlucHV0Q2xhc3NpZmljYXRpb24gJHtyZXN1bHQuaW5wdXRDbGFzc2lmaWNhdGlvbn1gKTtcbiAgfVxuICBpZiAoIXJlc3VsdC5zaWduYXR1cmVzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtaXNzaW5nIHNpZ25hdHVyZXNgKTtcbiAgfVxuICBpZiAocmVzdWx0LnB1YmxpY0tleXMubGVuZ3RoICE9PSAzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHB1YmtleSBjb3VudGApO1xuICB9XG4gIGlmICghcmVzdWx0LnB1YlNjcmlwdCB8fCByZXN1bHQucHViU2NyaXB0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgcHViU2NyaXB0IG1pc3Npbmcgb3IgZW1wdHlgKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ29uc3RyYWludHMgZm9yIHNpZ25hdHVyZSB2ZXJpZmljYXRpb25zLlxuICogUGFyYW1ldGVycyBhcmUgY29uanVuY3RpdmU6IGlmIG11bHRpcGxlIHBhcmFtZXRlcnMgYXJlIHNldCwgYSB2ZXJpZmljYXRpb24gZm9yIGFuIGluZGl2aWR1YWxcbiAqIHNpZ25hdHVyZSBtdXN0IHNhdGlzZnkgYWxsIG9mIHRoZW0uXG4gKi9cbmV4cG9ydCB0eXBlIFZlcmlmaWNhdGlvblNldHRpbmdzID0ge1xuICAvKipcbiAgICogVGhlIGluZGV4IG9mIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5LiBPbmx5IGl0ZXJhdGVzIG92ZXIgbm9uLWVtcHR5IHNpZ25hdHVyZXMuXG4gICAqL1xuICBzaWduYXR1cmVJbmRleD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBoZXggb2YgdGhlIHB1YmxpYyBrZXkgdG8gdmVyaWZ5LlxuICAgKi9cbiAgcHVibGljS2V5PzogQnVmZmVyO1xufTtcblxuLyoqXG4gKiBSZXN1bHQgZm9yIGEgaW5kaXZpZHVhbCBzaWduYXR1cmUgdmVyaWZpY2F0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIFNpZ25hdHVyZVZlcmlmaWNhdGlvbiA9IHtcbiAgLyoqIFNldCB0byB0aGUgcHVibGljIGtleSB0aGF0IHNpZ25lZCBmb3IgdGhlIHNpZ25hdHVyZSAqL1xuICBzaWduZWRCeTogQnVmZmVyIHwgdW5kZWZpbmVkO1xufTtcblxuLyoqXG4gKiBHZXQgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbnMgZm9yIG11bHRzaWcgdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICogQHBhcmFtIGlucHV0SW5kZXhcbiAqIEBwYXJhbSBhbW91bnQgLSBtdXN0IGJlIHNldCBmb3Igc2Vnd2l0IHRyYW5zYWN0aW9ucyBhbmQgQklQMTQzIHRyYW5zYWN0aW9uc1xuICogQHBhcmFtIHZlcmlmaWNhdGlvblNldHRpbmdzXG4gKiBAcmV0dXJucyBTaWduYXR1cmVWZXJpZmljYXRpb25bXSAtIGluIG9yZGVyIG9mIHBhcnNlZCBub24tZW1wdHkgc2lnbmF0dXJlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9ucyhcbiAgdHJhbnNhY3Rpb246IFV0eG9UcmFuc2FjdGlvbixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBhbW91bnQ6IG51bWJlcixcbiAgdmVyaWZpY2F0aW9uU2V0dGluZ3M6IFZlcmlmaWNhdGlvblNldHRpbmdzID0ge31cbik6IFNpZ25hdHVyZVZlcmlmaWNhdGlvbltdIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCF0cmFuc2FjdGlvbi5pbnMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdHJhbnNhY3Rpb25gKTtcbiAgfVxuXG4gIGNvbnN0IGlucHV0ID0gdHJhbnNhY3Rpb24uaW5zW2lucHV0SW5kZXhdO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoIWlucHV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBubyBpbnB1dCBhdCBpbmRleCAke2lucHV0SW5kZXh9YCk7XG4gIH1cblxuICBjb25zdCBwYXJzZWRTY3JpcHQgPSBwYXJzZVNpZ25hdHVyZVNjcmlwdDJPZjMoaW5wdXQpO1xuXG4gIGNvbnN0IHNpZ25hdHVyZXMgPSBwYXJzZWRTY3JpcHQuc2lnbmF0dXJlc1xuICAgIC5maWx0ZXIoKHMpID0+IHMgJiYgcy5sZW5ndGgpXG4gICAgLmZpbHRlcigocywgaSkgPT4gdmVyaWZpY2F0aW9uU2V0dGluZ3Muc2lnbmF0dXJlSW5kZXggPT09IHVuZGVmaW5lZCB8fCB2ZXJpZmljYXRpb25TZXR0aW5ncy5zaWduYXR1cmVJbmRleCA9PT0gaSk7XG5cbiAgY29uc3QgcHVibGljS2V5cyA9IHBhcnNlZFNjcmlwdC5wdWJsaWNLZXlzLmZpbHRlcihcbiAgICAoYnVmKSA9PiB2ZXJpZmljYXRpb25TZXR0aW5ncy5wdWJsaWNLZXkgPT09IHVuZGVmaW5lZCB8fCB2ZXJpZmljYXRpb25TZXR0aW5ncy5wdWJsaWNLZXkuZXF1YWxzKGJ1ZilcbiAgKTtcblxuICByZXR1cm4gc2lnbmF0dXJlcy5tYXAoKHNpZ25hdHVyZUJ1ZmZlcikgPT4ge1xuICAgIC8vIHNsaWNlIHRoZSBsYXN0IGJ5dGUgZnJvbSB0aGUgc2lnbmF0dXJlIGhhc2ggaW5wdXQgYmVjYXVzZSBpdCdzIHRoZSBoYXNoIHR5cGVcbiAgICBpZiAoc2lnbmF0dXJlQnVmZmVyID09PSAwIHx8IHNpZ25hdHVyZUJ1ZmZlci5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB7IHNpZ25lZEJ5OiB1bmRlZmluZWQgfTtcbiAgICB9XG4gICAgY29uc3QgeyBzaWduYXR1cmUsIGhhc2hUeXBlIH0gPSBTY3JpcHRTaWduYXR1cmUuZGVjb2RlKHNpZ25hdHVyZUJ1ZmZlcik7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25IYXNoID0gcGFyc2VkU2NyaXB0LmlzU2Vnd2l0SW5wdXRcbiAgICAgID8gdHJhbnNhY3Rpb24uaGFzaEZvcldpdG5lc3NWMChpbnB1dEluZGV4LCBwYXJzZWRTY3JpcHQucHViU2NyaXB0LCBhbW91bnQsIGhhc2hUeXBlKVxuICAgICAgOiB0cmFuc2FjdGlvbi5oYXNoRm9yU2lnbmF0dXJlQnlOZXR3b3JrKGlucHV0SW5kZXgsIHBhcnNlZFNjcmlwdC5wdWJTY3JpcHQsIGFtb3VudCwgaGFzaFR5cGUpO1xuICAgIGNvbnN0IHNpZ25lZEJ5ID0gcHVibGljS2V5cy5maWx0ZXIoKHB1YmxpY0tleSkgPT5cbiAgICAgIEVDUGFpci5mcm9tUHVibGljS2V5KHB1YmxpY0tleSkudmVyaWZ5KHRyYW5zYWN0aW9uSGFzaCwgc2lnbmF0dXJlKVxuICAgICk7XG5cbiAgICBpZiAoc2lnbmVkQnkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4geyBzaWduZWRCeTogdW5kZWZpbmVkIH07XG4gICAgfVxuICAgIGlmIChzaWduZWRCeS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB7IHNpZ25lZEJ5OiBzaWduZWRCeVswXSB9O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGlsbGVnYWwgc3RhdGU6IHNpZ25lZCBieSBtdWx0aXBsZSBwdWJsaWMga2V5c2ApO1xuICB9KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBpbnB1dEluZGV4XG4gKiBAcGFyYW0gYW1vdW50XG4gKiBAcGFyYW0gdmVyaWZpY2F0aW9uU2V0dGluZ3MgLSBpZiBwdWJsaWNLZXkgaXMgc3BlY2lmaWVkLCByZXR1cm5zIHRydWUgaWZmIGFueSBzaWduYXR1cmUgaXMgc2lnbmVkIGJ5IHB1YmxpY0tleS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVNpZ25hdHVyZShcbiAgdHJhbnNhY3Rpb246IFV0eG9UcmFuc2FjdGlvbixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBhbW91bnQ6IG51bWJlcixcbiAgdmVyaWZpY2F0aW9uU2V0dGluZ3M6IFZlcmlmaWNhdGlvblNldHRpbmdzID0ge31cbik6IGJvb2xlYW4ge1xuICBjb25zdCBzaWduYXR1cmVWZXJpZmljYXRpb25zID0gZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9ucyhcbiAgICB0cmFuc2FjdGlvbixcbiAgICBpbnB1dEluZGV4LFxuICAgIGFtb3VudCxcbiAgICB2ZXJpZmljYXRpb25TZXR0aW5nc1xuICApLmZpbHRlcihcbiAgICAodikgPT5cbiAgICAgIC8vIElmIG5vIHB1YmxpY0tleSBpcyBzZXQgaW4gdmVyaWZpY2F0aW9uU2V0dGluZ3MsIGFsbCBzaWduYXR1cmVzIG11c3QgYmUgdmFsaWQuXG4gICAgICAvLyBPdGhlcndpc2UsIGEgc2luZ2xlIHZhbGlkIHNpZ25hdHVyZSBieSB0aGUgc3BlY2lmaWVkIHB1YmtleSBpcyBzdWZmaWNpZW50LlxuICAgICAgdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICh2LnNpZ25lZEJ5ICE9PSB1bmRlZmluZWQgJiYgdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5LmVxdWFscyh2LnNpZ25lZEJ5KSlcbiAgKTtcblxuICByZXR1cm4gc2lnbmF0dXJlVmVyaWZpY2F0aW9ucy5sZW5ndGggPiAwICYmIHNpZ25hdHVyZVZlcmlmaWNhdGlvbnMuZXZlcnkoKHYpID0+IHYuc2lnbmVkQnkgIT09IHVuZGVmaW5lZCk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FBdUM7QUFFdkMsaURBQStFO0FBQy9FLHVEQUF1RDtBQUN2RCxzRUFBc0U7QUFHdEUsd0NBQXdDO0FBQ3hDLG9DQUFzQztBQUN0Qyx1REFBb0Q7QUFFcEQsTUFBTSxVQUFVLEdBQUc7SUFDakIsVUFBVTtJQUNWLGFBQWE7SUFDYixVQUFVO0lBQ1YsUUFBUTtJQUNSLFlBQVk7SUFDWixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7Q0FDWCxDQUFDO0FBMEJYLFNBQWdCLGlCQUFpQixDQUFDLE9BQWdCO0lBQ2hELFFBQVEsa0JBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDLFdBQVc7WUFDdkIsT0FBTywyQkFBVyxDQUFDLFdBQVcsR0FBRyxpQ0FBZSxDQUFDLGNBQWMsQ0FBQztRQUNsRTtZQUNFLE9BQU8sMkJBQVcsQ0FBQyxXQUFXLENBQUM7S0FDbEM7QUFDSCxDQUFDO0FBVEQsOENBU0M7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxLQUFjO0lBRWQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3RELElBQUksbUJBQW1CLEVBQUUsbUJBQThCLENBQUM7SUFDeEQsSUFBSSxhQUFhLEVBQUU7UUFDakIsa0hBQWtIO1FBQ2xILGdIQUFnSDtRQUNoSCxpSEFBaUg7UUFDakgsZ0dBQWdHO1FBQ2hHLG1C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UyxJQUFJLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ2xGLENBQUM7SUFFRixPQUFPLHNCQUFzQixDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBQzVHLENBQUM7QUFwQkQsMENBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3Bjb2RlcyBmcm9tICdiaXRjb2luLW9wcyc7XG5cbmltcG9ydCB7IEVDUGFpciwgcGF5bWVudHMsIHNjcmlwdCwgVHJhbnNhY3Rpb24sIFR4SW5wdXQgfSBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIGNsYXNzaWZ5IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL2NsYXNzaWZ5JztcbmltcG9ydCAqIGFzIFNjcmlwdFNpZ25hdHVyZSBmcm9tICdiaXRjb2luanMtbGliL3NyYy9zY3JpcHRfc2lnbmF0dXJlJztcblxuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gJy4uL25ldHdvcmtUeXBlcyc7XG5pbXBvcnQgKiBhcyBuZXR3b3JrcyBmcm9tICcuLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBnZXRNYWlubmV0IH0gZnJvbSAnLi4vY29pbnMnO1xuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uIH0gZnJvbSAnLi9VdHhvVHJhbnNhY3Rpb24nO1xuXG5jb25zdCBpbnB1dFR5cGVzID0gW1xuICAnbXVsdGlzaWcnLFxuICAnbm9uc3RhbmRhcmQnLFxuICAnbnVsbGRhdGEnLFxuICAncHVia2V5JyxcbiAgJ3B1YmtleWhhc2gnLFxuICAnc2NyaXB0aGFzaCcsXG4gICd3aXRuZXNzcHVia2V5aGFzaCcsXG4gICd3aXRuZXNzc2NyaXB0aGFzaCcsXG4gICd3aXRuZXNzY29tbWl0bWVudCcsXG5dIGFzIGNvbnN0O1xuXG50eXBlIElucHV0VHlwZSA9IHR5cGVvZiBpbnB1dFR5cGVzW251bWJlcl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkU2lnbmF0dXJlU2NyaXB0IHtcbiAgaXNTZWd3aXRJbnB1dDogYm9vbGVhbjtcbiAgaW5wdXRDbGFzc2lmaWNhdGlvbjogSW5wdXRUeXBlO1xuICBwdWJsaWNLZXlzPzogQnVmZmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkU2lnbmF0dXJlUDJQS0ggZXh0ZW5kcyBQYXJzZWRTaWduYXR1cmVTY3JpcHQge1xuICBzaWduYXR1cmVzOiBbQnVmZmVyXTtcbiAgcHVibGljS2V5czogW0J1ZmZlcl07XG4gIHB1YlNjcmlwdDogQnVmZmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFNpZ25hdHVyZVNjcmlwdDJPZjMgZXh0ZW5kcyBQYXJzZWRTaWduYXR1cmVTY3JpcHQge1xuICBzaWduYXR1cmVzOlxuICAgIHwgW0J1ZmZlciwgQnVmZmVyXSAvLyBmdWxseS1zaWduZWQgdHJhbnNhY3Rpb25zIHdpdGggc2lnbmF0dXJlc1xuICAgIC8qIFBhcnRpYWxseSBzaWduZWQgdHJhbnNhY3Rpb25zIHdpdGggcGxhY2Vob2xkZXIgc2lnbmF0dXJlcy5cbiAgICAgICBGb3IgcDJzaCwgdGhlIHBsYWNlaG9sZGVyIGlzIE9QXzAgKG51bWJlciAwKSAqL1xuICAgIHwgW0J1ZmZlciB8IDAsIEJ1ZmZlciB8IDAsIEJ1ZmZlciB8IDBdO1xuICBwdWJsaWNLZXlzOiBbQnVmZmVyLCBCdWZmZXIsIEJ1ZmZlcl07XG4gIHB1YlNjcmlwdDogQnVmZmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFNpZ0hhc2gobmV0d29yazogTmV0d29yayk6IG51bWJlciB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvbi5TSUdIQVNIX0FMTCB8IFV0eG9UcmFuc2FjdGlvbi5TSUdIQVNIX0ZPUktJRDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uLlNJR0hBU0hfQUxMO1xuICB9XG59XG5cbi8qKlxuICogUGFyc2UgYSB0cmFuc2FjdGlvbidzIHNpZ25hdHVyZSBzY3JpcHQgdG8gb2J0YWluIHB1YmxpYyBrZXlzLCBzaWduYXR1cmVzLCB0aGUgc2lnIHNjcmlwdCxcbiAqIGFuZCBvdGhlciBwcm9wZXJ0aWVzLlxuICpcbiAqIE9ubHkgc3VwcG9ydHMgc2NyaXB0IHR5cGVzIHVzZWQgaW4gQml0R28gdHJhbnNhY3Rpb25zLlxuICpcbiAqIEBwYXJhbSBpbnB1dFxuICogQHJldHVybnMgUGFyc2VkU2lnbmF0dXJlU2NyaXB0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNpZ25hdHVyZVNjcmlwdChcbiAgaW5wdXQ6IFR4SW5wdXRcbik6IFBhcnNlZFNpZ25hdHVyZVNjcmlwdCB8IFBhcnNlZFNpZ25hdHVyZVAyUEtIIHwgUGFyc2VkU2lnbmF0dXJlU2NyaXB0Mk9mMyB7XG4gIGNvbnN0IGlzU2Vnd2l0SW5wdXQgPSBpbnB1dC53aXRuZXNzLmxlbmd0aCA+IDA7XG4gIGNvbnN0IGlzTmF0aXZlU2Vnd2l0SW5wdXQgPSBpbnB1dC5zY3JpcHQubGVuZ3RoID09PSAwO1xuICBsZXQgZGVjb21waWxlZFNpZ1NjcmlwdCwgaW5wdXRDbGFzc2lmaWNhdGlvbjogSW5wdXRUeXBlO1xuICBpZiAoaXNTZWd3aXRJbnB1dCkge1xuICAgIC8vIFRoZSBkZWNvbXBpbGVkU2lnU2NyaXB0IGlzIHRoZSBzY3JpcHQgY29udGFpbmluZyB0aGUgc2lnbmF0dXJlcywgcHVibGljIGtleXMsIGFuZCB0aGUgc2NyaXB0IHRoYXQgd2FzIGNvbW1pdHRlZFxuICAgIC8vIHRvIChwdWJTY3JpcHQpLiBJZiB0aGlzIGlzIGEgc2Vnd2l0IGlucHV0IHRoZSBkZWNvbXBpbGVkU2lnU2NyaXB0IGlzIGluIHRoZSB3aXRuZXNzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXRcbiAgICAvLyBpcyBuYXRpdmUgb3Igbm90LiBUaGUgaW5wdXRDbGFzc2lmaWNhdGlvbiBpcyBkZXRlcm1pbmVkIGJhc2VkIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBpbnB1dCBpcyBuYXRpdmUgdG8gZ2l2ZSBhblxuICAgIC8vIGFjY3VyYXRlIGNsYXNzaWZpY2F0aW9uLiBOb3RlIHRoYXQgcDJzaFAyd3NoIGlucHV0cyB3aWxsIGJlIGNsYXNzaWZpZWQgYXMgcDJzaCBhbmQgbm90IHAyd3NoLlxuICAgIGRlY29tcGlsZWRTaWdTY3JpcHQgPSBpbnB1dC53aXRuZXNzO1xuICAgIGlmIChpc05hdGl2ZVNlZ3dpdElucHV0KSB7XG4gICAgICBpbnB1dENsYXNzaWZpY2F0aW9uID0gY2xhc3NpZnkud2l0bmVzcyhkZWNvbXBpbGVkU2lnU2NyaXB0LCB0cnVlKSBhcyBJbnB1dFR5cGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0Q2xhc3NpZmljYXRpb24gPSBjbGFzc2lmeS5pbnB1dChpbnB1dC5zY3JpcHQsIHRydWUpIGFzIElucHV0VHlwZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaW5wdXRDbGFzc2lmaWNhdGlvbiA9IGNsYXNzaWZ5LmlucHV0KGlucHV0LnNjcmlwdCwgdHJ1ZSkgYXMgSW5wdXRUeXBlO1xuICAgIGRlY29tcGlsZWRTaWdTY3JpcHQgPSBzY3JpcHQuZGVjb21waWxlKGlucHV0LnNjcmlwdCk7XG4gIH1cblxuICBpZiAoIWRlY29tcGlsZWRTaWdTY3JpcHQpIHtcbiAgICByZXR1cm4geyBpc1NlZ3dpdElucHV0LCBpbnB1dENsYXNzaWZpY2F0aW9uIH07XG4gIH1cblxuICBpZiAoaW5wdXRDbGFzc2lmaWNhdGlvbiA9PT0gY2xhc3NpZnkudHlwZXMuUDJQS0gpIHtcbiAgICBpZiAoIWRlY29tcGlsZWRTaWdTY3JpcHQgfHwgZGVjb21waWxlZFNpZ1NjcmlwdC5sZW5ndGggIT09IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBzaWduYXR1cmUgZm9yIHAycGtoJyk7XG4gICAgfVxuICAgIGNvbnN0IFtzaWduYXR1cmUsIHB1YmxpY0tleV0gPSBkZWNvbXBpbGVkU2lnU2NyaXB0O1xuICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKHNpZ25hdHVyZSkgfHwgIUJ1ZmZlci5pc0J1ZmZlcihwdWJsaWNLZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgc2lnbmF0dXJlIGZvciBwMnBraCcpO1xuICAgIH1cbiAgICBjb25zdCBwdWJsaWNLZXlzID0gW3B1YmxpY0tleV07XG4gICAgY29uc3Qgc2lnbmF0dXJlczogW0J1ZmZlcl0gPSBbc2lnbmF0dXJlXTtcbiAgICBjb25zdCBwdWJTY3JpcHQgPSBwYXltZW50cy5wMnBraCh7IHB1YmtleTogcHVibGljS2V5IH0pLm91dHB1dDtcblxuICAgIHJldHVybiB7IGlzU2Vnd2l0SW5wdXQsIGlucHV0Q2xhc3NpZmljYXRpb24sIHNpZ25hdHVyZXMsIHB1YmxpY0tleXMsIHB1YlNjcmlwdCB9O1xuICB9XG5cbiAgLy8gTm90ZSB0aGUgYXNzdW1wdGlvbiBoZXJlIHRoYXQgaWYgd2UgaGF2ZSBhIHAyc2ggb3IgcDJ3c2ggaW5wdXQgaXQgd2lsbCBiZSBtdWx0aXNpZyAoYXBwcm9wcmlhdGUgYmVjYXVzZSB0aGVcbiAgLy8gQml0R28gcGxhdGZvcm0gb25seSBzdXBwb3J0cyBtdWx0aXNpZyB3aXRoaW4gdGhlc2UgdHlwZXMgb2YgaW5wdXRzLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgcmVwbGF5IHByb3RlY3Rpb24gaW5wdXRzLFxuICAvLyB3aGljaCBhcmUgc2luZ2xlIHNpZ25hdHVyZSBwMnNoKS4gU2lnbmF0dXJlcyBhcmUgYWxsIGJ1dCB0aGUgbGFzdCBlbnRyeSBpbiB0aGUgZGVjb21waWxlZFNpZ1NjcmlwdC5cbiAgLy8gVGhlIHJlZGVlbVNjcmlwdC93aXRuZXNzU2NyaXB0IChkZXBlbmRpbmcgb24gd2hpY2ggdHlwZSBvZiBpbnB1dCB0aGlzIGlzKSBpcyB0aGUgbGFzdCBlbnRyeSBpblxuICAvLyB0aGUgZGVjb21waWxlZFNpZ1NjcmlwdCAoZGVub3RlZCBoZXJlIGFzIHRoZSBwdWJTY3JpcHQpLiBUaGUgcHVibGljIGtleXMgYXJlIHRoZSBzZWNvbmQgdGhyb3VnaFxuICAvLyBhbnRlcGVudWx0aW1hdGUgZW50cmllcyBpbiB0aGUgZGVjb21waWxlZFB1YlNjcmlwdC4gU2VlIGJlbG93IGZvciBhIHZpc3VhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHlwaWNhbCAyLW9mLTNcbiAgLy8gbXVsdGlzaWcgc2V0dXA6XG4gIC8vXG4gIC8vICAgZGVjb21waWxlZFNpZ1NjcmlwdCA9IDAgPHNpZzE+IDxzaWcyPiBbPHNpZzM+XSA8cHViU2NyaXB0PlxuICAvLyAgIGRlY29tcGlsZWRQdWJTY3JpcHQgPSAyIDxwdWIxPiA8cHViMj4gPHB1YjM+IDMgT1BfQ0hFQ0tNVUxUSVNJR1xuICAvL1xuICAvLyBUcmFuc2FjdGlvbnMgYnVpbHQgd2l0aCBgLmJ1aWxkKClgIG9ubHkgaGF2ZSB0d28gc2lnbmF0dXJlcyBgPHNpZzE+YCBhbmQgYDxzaWcyPmAgaW4gX2RlY29tcGlsZWRTaWdTY3JpcHRfLlxuICAvLyBUcmFuc2FjdGlvbnMgYnVpbHQgd2l0aCBgLmJ1aWxkSW5jb21wbGV0ZSgpYCBoYXZlIHRocmVlIHNpZ25hdHVyZXMsIHdoZXJlIG1pc3Npbmcgc2lnbmF0dXJlcyBhcmUgc3Vic3RpdHV0ZWQgd2l0aCBgT1BfMGAuXG4gIGNvbnN0IGV4cGVjdGVkU2NyaXB0VHlwZSA9XG4gICAgaW5wdXRDbGFzc2lmaWNhdGlvbiA9PT0gY2xhc3NpZnkudHlwZXMuUDJTSCB8fCBpbnB1dENsYXNzaWZpY2F0aW9uID09PSBjbGFzc2lmeS50eXBlcy5QMldTSDtcbiAgY29uc3QgZXhwZWN0ZWRTY3JpcHRMZW5ndGggPVxuICAgIC8vIGNvbXBsZXRlIHRyYW5zYWN0aW9ucyB3aXRoIDIgc2lnbmF0dXJlc1xuICAgIGRlY29tcGlsZWRTaWdTY3JpcHQubGVuZ3RoID09PSA0IHx8XG4gICAgLy8gaW5jb21wbGV0ZSB0cmFuc2FjdGlvbiB3aXRoIDMgc2lnbmF0dXJlcyBvciBzaWduYXR1cmUgcGxhY2Vob2xkZXJzXG4gICAgZGVjb21waWxlZFNpZ1NjcmlwdC5sZW5ndGggPT09IDU7XG5cbiAgaWYgKCFleHBlY3RlZFNjcmlwdFR5cGUgfHwgIWV4cGVjdGVkU2NyaXB0TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHsgaXNTZWd3aXRJbnB1dCwgaW5wdXRDbGFzc2lmaWNhdGlvbiB9O1xuICB9XG5cbiAgaWYgKGlzU2Vnd2l0SW5wdXQpIHtcbiAgICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihkZWNvbXBpbGVkU2lnU2NyaXB0WzBdKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCBkZWNvbXBpbGVkU2lnU2NyaXB0WzBdIHRvIGJlIGEgYnVmZmVyIGZvciBzZWd3aXQgaW5wdXRzYCk7XG4gICAgfVxuICAgIGlmIChkZWNvbXBpbGVkU2lnU2NyaXB0WzBdLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB3aXRuZXNzIHN0YWNrIGV4cGVjdGVkIHRvIHN0YXJ0IHdpdGggZW1wdHkgYnVmZmVyYCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGRlY29tcGlsZWRTaWdTY3JpcHRbMF0gIT09IG9wY29kZXMuT1BfMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgc2lnU2NyaXB0IGV4cGVjdGVkIHRvIHN0YXJ0IHdpdGggT1BfMGApO1xuICB9XG5cbiAgY29uc3Qgc2lnbmF0dXJlcyA9IGRlY29tcGlsZWRTaWdTY3JpcHQuc2xpY2UoMSAvKiBpZ25vcmUgbGVhZGluZyBPUF8wICovLCAtMSAvKiBpZ25vcmUgdHJhaWxpbmcgcHViU2NyaXB0ICovKTtcbiAgaWYgKHNpZ25hdHVyZXMubGVuZ3RoICE9PSAyICYmIHNpZ25hdHVyZXMubGVuZ3RoICE9PSAzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAyIG9yIDMgc2lnbmF0dXJlcywgZ290ICR7c2lnbmF0dXJlcy5sZW5ndGh9YCk7XG4gIH1cblxuICBjb25zdCBwdWJTY3JpcHQgPSBkZWNvbXBpbGVkU2lnU2NyaXB0W2RlY29tcGlsZWRTaWdTY3JpcHQubGVuZ3RoIC0gMV07XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHB1YlNjcmlwdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgcHVic2NyaXB0YCk7XG4gIH1cbiAgY29uc3QgZGVjb21waWxlZFB1YlNjcmlwdCA9IHNjcmlwdC5kZWNvbXBpbGUocHViU2NyaXB0KTtcbiAgaWYgKGRlY29tcGlsZWRQdWJTY3JpcHQgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBkZWNvbXBpbGUgcHViU2NyaXB0YCk7XG4gIH1cbiAgaWYgKGRlY29tcGlsZWRQdWJTY3JpcHQubGVuZ3RoICE9PSA2KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIGRlY29tcGlsZWRQdWJTY3JpcHQgbGVuZ3RoYCk7XG4gIH1cbiAgY29uc3QgcHVibGljS2V5cyA9IGRlY29tcGlsZWRQdWJTY3JpcHQuc2xpY2UoMSwgLTIpIGFzIEJ1ZmZlcltdO1xuICBwdWJsaWNLZXlzLmZvckVhY2goKGIpID0+IHtcbiAgICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihiKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgfVxuICB9KTtcbiAgaWYgKHB1YmxpY0tleXMubGVuZ3RoICE9PSAzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAzIHB1YmxpYyBrZXlzLCBnb3QgJHtwdWJsaWNLZXlzLmxlbmd0aH1gKTtcbiAgfVxuXG4gIC8vIE9wIGNvZGVzIDgxIHRocm91Z2ggOTYgcmVwcmVzZW50IG51bWJlcnMgMSB0aHJvdWdoIDE2IChzZWUgaHR0cHM6Ly9lbi5iaXRjb2luLml0L3dpa2kvU2NyaXB0I09wY29kZXMpLCB3aGljaCBpc1xuICAvLyB3aHkgd2Ugc3VidHJhY3QgYnkgODAgdG8gZ2V0IHRoZSBudW1iZXIgb2Ygc2lnbmF0dXJlcyAobikgYW5kIHRoZSBudW1iZXIgb2YgcHVibGljIGtleXMgKG0pIGluIGFuIG4tb2YtbSBzZXR1cC5cbiAgY29uc3QgbGVuID0gZGVjb21waWxlZFB1YlNjcmlwdC5sZW5ndGg7XG4gIGNvbnN0IHNpZ25hdHVyZVRocmVzaG9sZCA9IChkZWNvbXBpbGVkUHViU2NyaXB0WzBdIGFzIG51bWJlcikgLSA4MDtcbiAgaWYgKHNpZ25hdHVyZVRocmVzaG9sZCAhPT0gMikge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgc2lnbmF0dXJlVGhyZXNob2xkIDIsIGdvdCAke3NpZ25hdHVyZVRocmVzaG9sZH1gKTtcbiAgfVxuICBjb25zdCBuUHViS2V5cyA9IChkZWNvbXBpbGVkUHViU2NyaXB0W2xlbiAtIDJdIGFzIG51bWJlcikgLSA4MDtcbiAgaWYgKG5QdWJLZXlzICE9PSAzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCBuUHViS2V5cyAzLCBnb3QgJHtuUHViS2V5c31gKTtcbiAgfVxuXG4gIGNvbnN0IGxhc3RPcENvZGUgPSBkZWNvbXBpbGVkUHViU2NyaXB0W2xlbiAtIDFdO1xuICBpZiAobGFzdE9wQ29kZSAhPT0gb3Bjb2Rlcy5PUF9DSEVDS01VTFRJU0lHKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCBvcGNvZGUgIyR7b3Bjb2Rlcy5PUF9DSEVDS01VTFRJU0lHfSwgZ290IG9wY29kZSAjJHtsYXN0T3BDb2RlfWApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpc1NlZ3dpdElucHV0LFxuICAgIGlucHV0Q2xhc3NpZmljYXRpb24sXG4gICAgc2lnbmF0dXJlczogc2lnbmF0dXJlcy5tYXAoKGIpID0+IHtcbiAgICAgIGlmIChCdWZmZXIuaXNCdWZmZXIoYikgfHwgYiA9PT0gMCkge1xuICAgICAgICByZXR1cm4gYjtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBzaWduYXR1cmUgZWxlbWVudCAke2J9YCk7XG4gICAgfSkgYXMgW0J1ZmZlciwgQnVmZmVyXSB8IFtCdWZmZXIsIEJ1ZmZlciwgQnVmZmVyXSxcbiAgICBwdWJsaWNLZXlzLFxuICAgIHB1YlNjcmlwdCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2lnbmF0dXJlU2NyaXB0Mk9mMyhpbnB1dDogVHhJbnB1dCk6IFBhcnNlZFNpZ25hdHVyZVNjcmlwdDJPZjMge1xuICBjb25zdCByZXN1bHQgPSBwYXJzZVNpZ25hdHVyZVNjcmlwdChpbnB1dCkgYXMgUGFyc2VkU2lnbmF0dXJlU2NyaXB0Mk9mMztcblxuICBpZiAoIVtjbGFzc2lmeS50eXBlcy5QMldTSCwgY2xhc3NpZnkudHlwZXMuUDJTSCwgY2xhc3NpZnkudHlwZXMuUDJQS0hdLmluY2x1ZGVzKHJlc3VsdC5pbnB1dENsYXNzaWZpY2F0aW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBpbnB1dENsYXNzaWZpY2F0aW9uICR7cmVzdWx0LmlucHV0Q2xhc3NpZmljYXRpb259YCk7XG4gIH1cbiAgaWYgKCFyZXN1bHQuc2lnbmF0dXJlcykge1xuICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyBzaWduYXR1cmVzYCk7XG4gIH1cbiAgaWYgKHJlc3VsdC5wdWJsaWNLZXlzLmxlbmd0aCAhPT0gMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBwdWJrZXkgY291bnRgKTtcbiAgfVxuICBpZiAoIXJlc3VsdC5wdWJTY3JpcHQgfHwgcmVzdWx0LnB1YlNjcmlwdC5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHB1YlNjcmlwdCBtaXNzaW5nIG9yIGVtcHR5YCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIENvbnN0cmFpbnRzIGZvciBzaWduYXR1cmUgdmVyaWZpY2F0aW9ucy5cbiAqIFBhcmFtZXRlcnMgYXJlIGNvbmp1bmN0aXZlOiBpZiBtdWx0aXBsZSBwYXJhbWV0ZXJzIGFyZSBzZXQsIGEgdmVyaWZpY2F0aW9uIGZvciBhbiBpbmRpdmlkdWFsXG4gKiBzaWduYXR1cmUgbXVzdCBzYXRpc2Z5IGFsbCBvZiB0aGVtLlxuICovXG5leHBvcnQgdHlwZSBWZXJpZmljYXRpb25TZXR0aW5ncyA9IHtcbiAgLyoqXG4gICAqIFRoZSBpbmRleCBvZiB0aGUgc2lnbmF0dXJlIHRvIHZlcmlmeS4gT25seSBpdGVyYXRlcyBvdmVyIG5vbi1lbXB0eSBzaWduYXR1cmVzLlxuICAgKi9cbiAgc2lnbmF0dXJlSW5kZXg/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgaGV4IG9mIHRoZSBwdWJsaWMga2V5IHRvIHZlcmlmeS5cbiAgICovXG4gIHB1YmxpY0tleT86IEJ1ZmZlcjtcbn07XG5cbi8qKlxuICogUmVzdWx0IGZvciBhIGluZGl2aWR1YWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvblxuICovXG5leHBvcnQgdHlwZSBTaWduYXR1cmVWZXJpZmljYXRpb24gPSB7XG4gIC8qKiBTZXQgdG8gdGhlIHB1YmxpYyBrZXkgdGhhdCBzaWduZWQgZm9yIHRoZSBzaWduYXR1cmUgKi9cbiAgc2lnbmVkQnk6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogR2V0IHNpZ25hdHVyZSB2ZXJpZmljYXRpb25zIGZvciBtdWx0c2lnIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBpbnB1dEluZGV4XG4gKiBAcGFyYW0gYW1vdW50IC0gbXVzdCBiZSBzZXQgZm9yIHNlZ3dpdCB0cmFuc2FjdGlvbnMgYW5kIEJJUDE0MyB0cmFuc2FjdGlvbnNcbiAqIEBwYXJhbSB2ZXJpZmljYXRpb25TZXR0aW5nc1xuICogQHJldHVybnMgU2lnbmF0dXJlVmVyaWZpY2F0aW9uW10gLSBpbiBvcmRlciBvZiBwYXJzZWQgbm9uLWVtcHR5IHNpZ25hdHVyZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ25hdHVyZVZlcmlmaWNhdGlvbnMoXG4gIHRyYW5zYWN0aW9uOiBVdHhvVHJhbnNhY3Rpb24sXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgYW1vdW50OiBudW1iZXIsXG4gIHZlcmlmaWNhdGlvblNldHRpbmdzOiBWZXJpZmljYXRpb25TZXR0aW5ncyA9IHt9XG4pOiBTaWduYXR1cmVWZXJpZmljYXRpb25bXSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICghdHJhbnNhY3Rpb24uaW5zKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHRyYW5zYWN0aW9uYCk7XG4gIH1cblxuICBjb25zdCBpbnB1dCA9IHRyYW5zYWN0aW9uLmluc1tpbnB1dEluZGV4XTtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFpbnB1dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8gaW5wdXQgYXQgaW5kZXggJHtpbnB1dEluZGV4fWApO1xuICB9XG5cbiAgY29uc3QgcGFyc2VkU2NyaXB0ID0gcGFyc2VTaWduYXR1cmVTY3JpcHQyT2YzKGlucHV0KTtcblxuICBjb25zdCBzaWduYXR1cmVzID0gcGFyc2VkU2NyaXB0LnNpZ25hdHVyZXNcbiAgICAuZmlsdGVyKChzKSA9PiBzICYmIHMubGVuZ3RoKVxuICAgIC5maWx0ZXIoKHMsIGkpID0+IHZlcmlmaWNhdGlvblNldHRpbmdzLnNpZ25hdHVyZUluZGV4ID09PSB1bmRlZmluZWQgfHwgdmVyaWZpY2F0aW9uU2V0dGluZ3Muc2lnbmF0dXJlSW5kZXggPT09IGkpO1xuXG4gIGNvbnN0IHB1YmxpY0tleXMgPSBwYXJzZWRTY3JpcHQucHVibGljS2V5cy5maWx0ZXIoXG4gICAgKGJ1ZikgPT4gdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5ID09PSB1bmRlZmluZWQgfHwgdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5LmVxdWFscyhidWYpXG4gICk7XG5cbiAgcmV0dXJuIHNpZ25hdHVyZXMubWFwKChzaWduYXR1cmVCdWZmZXIpID0+IHtcbiAgICAvLyBzbGljZSB0aGUgbGFzdCBieXRlIGZyb20gdGhlIHNpZ25hdHVyZSBoYXNoIGlucHV0IGJlY2F1c2UgaXQncyB0aGUgaGFzaCB0eXBlXG4gICAgaWYgKHNpZ25hdHVyZUJ1ZmZlciA9PT0gMCB8fCBzaWduYXR1cmVCdWZmZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4geyBzaWduZWRCeTogdW5kZWZpbmVkIH07XG4gICAgfVxuICAgIGNvbnN0IHsgc2lnbmF0dXJlLCBoYXNoVHlwZSB9ID0gU2NyaXB0U2lnbmF0dXJlLmRlY29kZShzaWduYXR1cmVCdWZmZXIpO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uSGFzaCA9IHBhcnNlZFNjcmlwdC5pc1NlZ3dpdElucHV0XG4gICAgICA/IHRyYW5zYWN0aW9uLmhhc2hGb3JXaXRuZXNzVjAoaW5wdXRJbmRleCwgcGFyc2VkU2NyaXB0LnB1YlNjcmlwdCwgYW1vdW50LCBoYXNoVHlwZSlcbiAgICAgIDogdHJhbnNhY3Rpb24uaGFzaEZvclNpZ25hdHVyZUJ5TmV0d29yayhpbnB1dEluZGV4LCBwYXJzZWRTY3JpcHQucHViU2NyaXB0LCBhbW91bnQsIGhhc2hUeXBlKTtcbiAgICBjb25zdCBzaWduZWRCeSA9IHB1YmxpY0tleXMuZmlsdGVyKChwdWJsaWNLZXkpID0+XG4gICAgICBFQ1BhaXIuZnJvbVB1YmxpY0tleShwdWJsaWNLZXkpLnZlcmlmeSh0cmFuc2FjdGlvbkhhc2gsIHNpZ25hdHVyZSlcbiAgICApO1xuXG4gICAgaWYgKHNpZ25lZEJ5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHsgc2lnbmVkQnk6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgICBpZiAoc2lnbmVkQnkubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4geyBzaWduZWRCeTogc2lnbmVkQnlbMF0gfTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbGxlZ2FsIHN0YXRlOiBzaWduZWQgYnkgbXVsdGlwbGUgcHVibGljIGtleXNgKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gaW5wdXRJbmRleFxuICogQHBhcmFtIGFtb3VudFxuICogQHBhcmFtIHZlcmlmaWNhdGlvblNldHRpbmdzIC0gaWYgcHVibGljS2V5IGlzIHNwZWNpZmllZCwgcmV0dXJucyB0cnVlIGlmZiBhbnkgc2lnbmF0dXJlIGlzIHNpZ25lZCBieSBwdWJsaWNLZXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTaWduYXR1cmUoXG4gIHRyYW5zYWN0aW9uOiBVdHhvVHJhbnNhY3Rpb24sXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgYW1vdW50OiBudW1iZXIsXG4gIHZlcmlmaWNhdGlvblNldHRpbmdzOiBWZXJpZmljYXRpb25TZXR0aW5ncyA9IHt9XG4pOiBib29sZWFuIHtcbiAgY29uc3Qgc2lnbmF0dXJlVmVyaWZpY2F0aW9ucyA9IGdldFNpZ25hdHVyZVZlcmlmaWNhdGlvbnMoXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgaW5wdXRJbmRleCxcbiAgICBhbW91bnQsXG4gICAgdmVyaWZpY2F0aW9uU2V0dGluZ3NcbiAgKS5maWx0ZXIoXG4gICAgKHYpID0+XG4gICAgICAvLyBJZiBubyBwdWJsaWNLZXkgaXMgc2V0IGluIHZlcmlmaWNhdGlvblNldHRpbmdzLCBhbGwgc2lnbmF0dXJlcyBtdXN0IGJlIHZhbGlkLlxuICAgICAgLy8gT3RoZXJ3aXNlLCBhIHNpbmdsZSB2YWxpZCBzaWduYXR1cmUgYnkgdGhlIHNwZWNpZmllZCBwdWJrZXkgaXMgc3VmZmljaWVudC5cbiAgICAgIHZlcmlmaWNhdGlvblNldHRpbmdzLnB1YmxpY0tleSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAodi5zaWduZWRCeSAhPT0gdW5kZWZpbmVkICYmIHZlcmlmaWNhdGlvblNldHRpbmdzLnB1YmxpY0tleS5lcXVhbHModi5zaWduZWRCeSkpXG4gICk7XG5cbiAgcmV0dXJuIHNpZ25hdHVyZVZlcmlmaWNhdGlvbnMubGVuZ3RoID4gMCAmJiBzaWduYXR1cmVWZXJpZmljYXRpb25zLmV2ZXJ5KCh2KSA9PiB2LnNpZ25lZEJ5ICE9PSB1bmRlZmluZWQpO1xufVxuIl19

@@ -13,3 +13,3 @@ "use strict";

function createTransactionFromBuffer(buf, network) {
switch ((0, coins_1.getMainnet)(network)) {
switch (coins_1.getMainnet(network)) {
case networks.bitcoin:

@@ -36,3 +36,3 @@ case networks.bitcoincash:

function setTransactionBuilderDefaults(txb, network) {
switch ((0, coins_1.getMainnet)(network)) {
switch (coins_1.getMainnet(network)) {
case networks.bitcoincash:

@@ -54,3 +54,3 @@ case networks.bitcoinsv:

let txb;
switch ((0, coins_1.getMainnet)(network)) {
switch (coins_1.getMainnet(network)) {
case networks.bitcoin:

@@ -79,3 +79,3 @@ case networks.bitcoincash:

function createTransactionBuilderFromTransaction(tx) {
switch ((0, coins_1.getMainnet)(tx.network)) {
switch (coins_1.getMainnet(tx.network)) {
case networks.bitcoin:

@@ -95,2 +95,2 @@ case networks.bitcoincash:

exports.createTransactionBuilderFromTransaction = createTransactionBuilderFromTransaction;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0NBQXdDO0FBRXhDLG9DQUFzQztBQUV0Qyx1REFBb0Q7QUFDcEQscUVBQWtFO0FBQ2xFLDREQUF5RDtBQUN6RCwwRUFBdUU7QUFDdkUsNkVBQTBFO0FBQzFFLCtEQUE0RDtBQUU1RCxTQUFnQiwyQkFBMkIsQ0FBQyxHQUFXLEVBQUUsT0FBZ0I7SUFDdkUsUUFBUSxJQUFBLGtCQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3RCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDeEIsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLFFBQVE7WUFDcEIsT0FBTyxpQ0FBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELEtBQUssUUFBUSxDQUFDLElBQUk7WUFDaEIsT0FBTyxpQ0FBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELEtBQUssUUFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxtQ0FBZ0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUF1QixDQUFDLENBQUM7S0FDM0U7SUFFRCwwQkFBMEI7SUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFoQkQsa0VBZ0JDO0FBRUQsMEJBQTBCO0FBQzFCLFNBQWdCLHdCQUF3QixDQUFDLEdBQVcsRUFBRSxPQUFnQjtJQUNwRSxPQUFPLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFGRCw0REFFQztBQUVELFNBQWdCLDZCQUE2QixDQUFDLEdBQTJCLEVBQUUsT0FBZ0I7SUFDekYsUUFBUSxJQUFBLGtCQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUN4QixLQUFLLFFBQVEsQ0FBQyxXQUFXO1lBQ3ZCLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsTUFBTTtRQUNSLEtBQUssUUFBUSxDQUFDLEtBQUs7WUFDaEIsR0FBK0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsR0FBK0IsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvRCxnRUFBZ0U7WUFDL0QsR0FBK0IsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRSxNQUFNO0tBQ1Q7QUFDSCxDQUFDO0FBZEQsc0VBY0M7QUFFRCxTQUFnQixrQ0FBa0MsQ0FBQyxPQUFnQjtJQUNqRSxJQUFJLEdBQUcsQ0FBQztJQUNSLFFBQVEsSUFBQSxrQkFBVSxFQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN0QixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QixHQUFHLEdBQUcsSUFBSSwrQ0FBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxNQUFNO1NBQ1A7UUFDRCxLQUFLLFFBQVEsQ0FBQyxJQUFJO1lBQ2hCLEdBQUcsR0FBRyxJQUFJLCtDQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLE1BQU07UUFDUixLQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQixHQUFHLEdBQUcsSUFBSSxpREFBdUIsQ0FBQyxPQUF1QixDQUFDLENBQUM7WUFDM0QsTUFBTTtTQUNQO1FBQ0Q7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FDMUM7SUFFRCw2QkFBNkIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFNUMsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBekJELGdGQXlCQztBQUVELFNBQWdCLHVDQUF1QyxDQUFDLEVBQW1CO0lBQ3pFLFFBQVEsSUFBQSxrQkFBVSxFQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUM5QixLQUFLLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDdEIsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUN4QixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsUUFBUTtZQUNwQixPQUFPLCtDQUFzQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRCxLQUFLLFFBQVEsQ0FBQyxJQUFJO1lBQ2hCLE9BQU8sK0NBQXNCLENBQUMsZUFBZSxDQUFDLEVBQXFCLENBQUMsQ0FBQztRQUN2RSxLQUFLLFFBQVEsQ0FBQyxLQUFLO1lBQ2pCLE9BQU8saURBQXVCLENBQUMsZUFBZSxDQUFDLEVBQXNCLENBQUMsQ0FBQztLQUMxRTtJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBZkQsMEZBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBuZXR3b3JrcyBmcm9tICcuLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBOZXR3b3JrLCBaY2FzaE5ldHdvcmsgfSBmcm9tICcuLi9uZXR3b3JrVHlwZXMnO1xuaW1wb3J0IHsgZ2V0TWFpbm5ldCB9IGZyb20gJy4uL2NvaW5zJztcblxuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uIH0gZnJvbSAnLi9VdHhvVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vVXR4b1RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBEYXNoVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Rhc2gvRGFzaFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IERhc2hUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2Rhc2gvRGFzaFRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vemNhc2gvWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgWmNhc2hUcmFuc2FjdGlvbiB9IGZyb20gJy4vemNhc2gvWmNhc2hUcmFuc2FjdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIoYnVmOiBCdWZmZXIsIG5ldHdvcms6IE5ldHdvcmspOiBVdHhvVHJhbnNhY3Rpb24ge1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46XG4gICAgICByZXR1cm4gVXR4b1RyYW5zYWN0aW9uLmZyb21CdWZmZXIoYnVmLCBmYWxzZSwgbmV0d29yayk7XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoOlxuICAgICAgcmV0dXJuIERhc2hUcmFuc2FjdGlvbi5mcm9tQnVmZmVyKGJ1ZiwgZmFsc2UsIG5ldHdvcmspO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICByZXR1cm4gWmNhc2hUcmFuc2FjdGlvbi5mcm9tQnVmZmVyKGJ1ZiwgZmFsc2UsIG5ldHdvcmsgYXMgWmNhc2hOZXR3b3JrKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tSGV4KGhleDogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrKTogVXR4b1RyYW5zYWN0aW9uIHtcbiAgcmV0dXJuIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcihCdWZmZXIuZnJvbShoZXgsICdoZXgnKSwgbmV0d29yayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRUcmFuc2FjdGlvbkJ1aWxkZXJEZWZhdWx0cyh0eGI6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXIsIG5ldHdvcms6IE5ldHdvcmspOiB2b2lkIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgICAgdHhiLnNldFZlcnNpb24oMik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgKHR4YiBhcyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlcikuc2V0VmVyc2lvbig0KTtcbiAgICAgICh0eGIgYXMgWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIpLnNldFZlcnNpb25Hcm91cElkKDB4ODkyZjIwODUpO1xuICAgICAgLy8gVXNlIFwiQ2Fub3B5XCIgY29uc2Vuc3VzIGJyYW5jaCBJRCBodHRwczovL3ppcHMuei5jYXNoL3ppcC0wMjUxXG4gICAgICAodHhiIGFzIFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyKS5zZXRDb25zZW5zdXNCcmFuY2hJZCgweGU5ZmY3NWE2KTtcbiAgICAgIGJyZWFrO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkJ1aWxkZXJGb3JOZXR3b3JrKG5ldHdvcms6IE5ldHdvcmspOiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgbGV0IHR4YjtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmxpdGVjb2luOiB7XG4gICAgICB0eGIgPSBuZXcgVXR4b1RyYW5zYWN0aW9uQnVpbGRlcihuZXR3b3JrKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgICB0eGIgPSBuZXcgRGFzaFRyYW5zYWN0aW9uQnVpbGRlcihuZXR3b3JrKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6IHtcbiAgICAgIHR4YiA9IG5ldyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlcihuZXR3b3JrIGFzIFpjYXNoTmV0d29yayk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgbmV0d29ya2ApO1xuICB9XG5cbiAgc2V0VHJhbnNhY3Rpb25CdWlsZGVyRGVmYXVsdHModHhiLCBuZXR3b3JrKTtcblxuICByZXR1cm4gdHhiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRnJvbVRyYW5zYWN0aW9uKHR4OiBVdHhvVHJhbnNhY3Rpb24pOiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KHR4Lm5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmxpdGVjb2luOlxuICAgICAgcmV0dXJuIFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXIuZnJvbVRyYW5zYWN0aW9uKHR4KTtcbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgICByZXR1cm4gRGFzaFRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb24odHggYXMgRGFzaFRyYW5zYWN0aW9uKTtcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgcmV0dXJuIFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyLmZyb21UcmFuc2FjdGlvbih0eCBhcyBaY2FzaFRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0NBQXdDO0FBRXhDLG9DQUFzQztBQUV0Qyx1REFBb0Q7QUFDcEQscUVBQWtFO0FBQ2xFLDREQUF5RDtBQUN6RCwwRUFBdUU7QUFDdkUsNkVBQTBFO0FBQzFFLCtEQUE0RDtBQUU1RCxTQUFnQiwyQkFBMkIsQ0FBQyxHQUFXLEVBQUUsT0FBZ0I7SUFDdkUsUUFBUSxrQkFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN0QixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxRQUFRO1lBQ3BCLE9BQU8saUNBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxLQUFLLFFBQVEsQ0FBQyxJQUFJO1lBQ2hCLE9BQU8saUNBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxLQUFLLFFBQVEsQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sbUNBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBdUIsQ0FBQyxDQUFDO0tBQzNFO0lBRUQsMEJBQTBCO0lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBaEJELGtFQWdCQztBQUVELDBCQUEwQjtBQUMxQixTQUFnQix3QkFBd0IsQ0FBQyxHQUFXLEVBQUUsT0FBZ0I7SUFDcEUsT0FBTywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRkQsNERBRUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FBQyxHQUEyQixFQUFFLE9BQWdCO0lBQ3pGLFFBQVEsa0JBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDLFdBQVc7WUFDdkIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixNQUFNO1FBQ1IsS0FBSyxRQUFRLENBQUMsS0FBSztZQUNoQixHQUErQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxHQUErQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9ELGdFQUFnRTtZQUMvRCxHQUErQixDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xFLE1BQU07S0FDVDtBQUNILENBQUM7QUFkRCxzRUFjQztBQUVELFNBQWdCLGtDQUFrQyxDQUFDLE9BQWdCO0lBQ2pFLElBQUksR0FBRyxDQUFDO0lBQ1IsUUFBUSxrQkFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN0QixLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3hCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QixHQUFHLEdBQUcsSUFBSSwrQ0FBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxNQUFNO1NBQ1A7UUFDRCxLQUFLLFFBQVEsQ0FBQyxJQUFJO1lBQ2hCLEdBQUcsR0FBRyxJQUFJLCtDQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLE1BQU07UUFDUixLQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQixHQUFHLEdBQUcsSUFBSSxpREFBdUIsQ0FBQyxPQUF1QixDQUFDLENBQUM7WUFDM0QsTUFBTTtTQUNQO1FBQ0Q7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FDMUM7SUFFRCw2QkFBNkIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFNUMsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBekJELGdGQXlCQztBQUVELFNBQWdCLHVDQUF1QyxDQUFDLEVBQW1CO0lBQ3pFLFFBQVEsa0JBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDOUIsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3RCLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDeEIsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssUUFBUSxDQUFDLFFBQVE7WUFDcEIsT0FBTywrQ0FBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEQsS0FBSyxRQUFRLENBQUMsSUFBSTtZQUNoQixPQUFPLCtDQUFzQixDQUFDLGVBQWUsQ0FBQyxFQUFxQixDQUFDLENBQUM7UUFDdkUsS0FBSyxRQUFRLENBQUMsS0FBSztZQUNqQixPQUFPLGlEQUF1QixDQUFDLGVBQWUsQ0FBQyxFQUFzQixDQUFDLENBQUM7S0FDMUU7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDckMsQ0FBQztBQWZELDBGQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbmV0d29ya3MgZnJvbSAnLi4vbmV0d29ya3MnO1xuaW1wb3J0IHsgTmV0d29yaywgWmNhc2hOZXR3b3JrIH0gZnJvbSAnLi4vbmV0d29ya1R5cGVzJztcbmltcG9ydCB7IGdldE1haW5uZXQgfSBmcm9tICcuLi9jb2lucyc7XG5cbmltcG9ydCB7IFV0eG9UcmFuc2FjdGlvbiB9IGZyb20gJy4vVXR4b1RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL1V0eG9UcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgRGFzaFRyYW5zYWN0aW9uIH0gZnJvbSAnLi9kYXNoL0Rhc2hUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBEYXNoVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9kYXNoL0Rhc2hUcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3pjYXNoL1pjYXNoVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFpjYXNoVHJhbnNhY3Rpb24gfSBmcm9tICcuL3pjYXNoL1pjYXNoVHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyKGJ1ZjogQnVmZmVyLCBuZXR3b3JrOiBOZXR3b3JrKTogVXR4b1RyYW5zYWN0aW9uIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmxpdGVjb2luOlxuICAgICAgcmV0dXJuIFV0eG9UcmFuc2FjdGlvbi5mcm9tQnVmZmVyKGJ1ZiwgZmFsc2UsIG5ldHdvcmspO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcihidWYsIGZhbHNlLCBuZXR3b3JrKTtcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgcmV0dXJuIFpjYXNoVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcihidWYsIGZhbHNlLCBuZXR3b3JrIGFzIFpjYXNoTmV0d29yayk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29ya2ApO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUhleChoZXg6IHN0cmluZywgbmV0d29yazogTmV0d29yayk6IFV0eG9UcmFuc2FjdGlvbiB7XG4gIHJldHVybiBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIoQnVmZmVyLmZyb20oaGV4LCAnaGV4JyksIG5ldHdvcmspO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VHJhbnNhY3Rpb25CdWlsZGVyRGVmYXVsdHModHhiOiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyLCBuZXR3b3JrOiBOZXR3b3JrKTogdm9pZCB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICAgIHR4Yi5zZXRWZXJzaW9uKDIpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgICh0eGIgYXMgWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIpLnNldFZlcnNpb24oNCk7XG4gICAgICAodHhiIGFzIFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyKS5zZXRWZXJzaW9uR3JvdXBJZCgweDg5MmYyMDg1KTtcbiAgICAgIC8vIFVzZSBcIkNhbm9weVwiIGNvbnNlbnN1cyBicmFuY2ggSUQgaHR0cHM6Ly96aXBzLnouY2FzaC96aXAtMDI1MVxuICAgICAgKHR4YiBhcyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlcikuc2V0Q29uc2Vuc3VzQnJhbmNoSWQoMHhlOWZmNzVhNik7XG4gICAgICBicmVhaztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRm9yTmV0d29yayhuZXR3b3JrOiBOZXR3b3JrKTogVXR4b1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGxldCB0eGI7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjoge1xuICAgICAgdHhiID0gbmV3IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXIobmV0d29yayk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoOlxuICAgICAgdHhiID0gbmV3IERhc2hUcmFuc2FjdGlvbkJ1aWxkZXIobmV0d29yayk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOiB7XG4gICAgICB0eGIgPSBuZXcgWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIobmV0d29yayBhcyBaY2FzaE5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIG5ldHdvcmtgKTtcbiAgfVxuXG4gIHNldFRyYW5zYWN0aW9uQnVpbGRlckRlZmF1bHRzKHR4YiwgbmV0d29yayk7XG5cbiAgcmV0dXJuIHR4Yjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uQnVpbGRlckZyb21UcmFuc2FjdGlvbih0eDogVXR4b1RyYW5zYWN0aW9uKTogVXR4b1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldCh0eC5uZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyLmZyb21UcmFuc2FjdGlvbih0eCk7XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoOlxuICAgICAgcmV0dXJuIERhc2hUcmFuc2FjdGlvbkJ1aWxkZXIuZnJvbVRyYW5zYWN0aW9uKHR4IGFzIERhc2hUcmFuc2FjdGlvbik7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb24odHggYXMgWmNhc2hUcmFuc2FjdGlvbik7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29ya2ApO1xufVxuIl19

@@ -30,3 +30,3 @@ "use strict";

if (hashType & UtxoTransaction.SIGHASH_FORKID) {
const forkId = (0, coins_1.isBitcoinGold)(this.network) ? 79 : 0;
const forkId = coins_1.isBitcoinGold(this.network) ? 79 : 0;
return (hashType | (forkId << 8)) >>> 0;

@@ -43,3 +43,3 @@ }

hashForSignatureByNetwork(inIndex, prevoutScript, value, hashType) {
switch ((0, coins_1.getMainnet)(this.network)) {
switch (coins_1.getMainnet(this.network)) {
case networks.zcash:

@@ -84,2 +84,2 @@ throw new Error(`illegal state`);

UtxoTransaction.SIGHASH_BITCOINCASHBIP143 = UtxoTransaction.SIGHASH_FORKID;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXR4b1RyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL1V0eG9UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBRzNDLG9DQUFxRDtBQUNyRCx3Q0FBd0M7QUFFeEMsU0FBZ0IsWUFBWSxDQUFDLEtBQWE7SUFDeEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM1QixPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQ2pELENBQUM7QUFIRCxvQ0FHQztBQUVELE1BQWEsZUFBZ0IsU0FBUSxTQUFTLENBQUMsV0FBVztJQUt4RCxZQUFtQixPQUFnQixFQUFFLGNBQXFDLElBQUksU0FBUyxDQUFDLFdBQVcsRUFBRTtRQUNuRyxLQUFLLEVBQUUsQ0FBQztRQURTLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFFakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUNyQyxJQUFJLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxtQkFBTSxDQUFDLEVBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLG1CQUFNLENBQUMsRUFBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVyxFQUFFLFFBQWlCLEVBQUUsT0FBaUI7UUFDakUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sSUFBSSxlQUFlLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBZ0I7UUFDeEIsSUFBSSxRQUFRLEdBQUcsZUFBZSxDQUFDLGNBQWMsRUFBRTtZQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFhLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWUsRUFBRSxhQUFxQixFQUFFLEtBQWEsRUFBRSxRQUFnQjtRQUN0RixPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVEOztPQUVHO0lBQ0gseUJBQXlCLENBQ3ZCLE9BQWUsRUFDZixhQUFxQixFQUNyQixLQUF5QixFQUN6QixRQUFnQjtRQUVoQixRQUFRLElBQUEsa0JBQVUsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEMsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNuQyxLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDMUIsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQ3hCLEtBQUssUUFBUSxDQUFDLFdBQVc7Z0JBQ3ZCOzs7Ozs7O21CQU9HO2dCQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRWxFLElBQUksU0FBUyxFQUFFO29CQUNiOzs7O3VCQUlHO29CQUNILElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTt3QkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO3FCQUN2QztvQkFDRCxPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7aUJBQ3hGO1NBQ0o7UUFFRCxPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFlLEVBQUUsYUFBcUIsRUFBRSxRQUFnQjtRQUN2RSxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7O0FBaEZILDBDQWlGQztBQWhGUSw4QkFBYyxHQUFHLElBQUksQ0FBQztBQUM3QixxQ0FBcUM7QUFDOUIseUNBQXlCLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJpdGNvaW5qcyBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHZhcnVpbnQgZnJvbSAndmFydWludC1iaXRjb2luJztcblxuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gJy4uL25ldHdvcmtUeXBlcyc7XG5pbXBvcnQgeyBnZXRNYWlubmV0LCBpc0JpdGNvaW5Hb2xkIH0gZnJvbSAnLi4vY29pbnMnO1xuaW1wb3J0ICogYXMgbmV0d29ya3MgZnJvbSAnLi4vbmV0d29ya3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFyU2xpY2VTaXplKHNsaWNlOiBCdWZmZXIpOiBudW1iZXIge1xuICBjb25zdCBsZW5ndGggPSBzbGljZS5sZW5ndGg7XG4gIHJldHVybiB2YXJ1aW50LmVuY29kaW5nTGVuZ3RoKGxlbmd0aCkgKyBsZW5ndGg7XG59XG5cbmV4cG9ydCBjbGFzcyBVdHhvVHJhbnNhY3Rpb24gZXh0ZW5kcyBiaXRjb2luanMuVHJhbnNhY3Rpb24ge1xuICBzdGF0aWMgU0lHSEFTSF9GT1JLSUQgPSAweDQwO1xuICAvKiogQGRlcHJlY2F0ZWQgdXNlIFNJR0hBU0hfRk9SS0lEICovXG4gIHN0YXRpYyBTSUdIQVNIX0JJVENPSU5DQVNIQklQMTQzID0gVXR4b1RyYW5zYWN0aW9uLlNJR0hBU0hfRk9SS0lEO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuZXR3b3JrOiBOZXR3b3JrLCB0cmFuc2FjdGlvbjogYml0Y29pbmpzLlRyYW5zYWN0aW9uID0gbmV3IGJpdGNvaW5qcy5UcmFuc2FjdGlvbigpKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnZlcnNpb24gPSB0cmFuc2FjdGlvbi52ZXJzaW9uO1xuICAgIHRoaXMubG9ja3RpbWUgPSB0cmFuc2FjdGlvbi5sb2NrdGltZTtcbiAgICB0aGlzLmlucyA9IHRyYW5zYWN0aW9uLmlucy5tYXAoKHYpID0+ICh7IC4uLnYgfSkpO1xuICAgIHRoaXMub3V0cyA9IHRyYW5zYWN0aW9uLm91dHMubWFwKCh2KSA9PiAoeyAuLi52IH0pKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQnVmZmVyKGJ1ZjogQnVmZmVyLCBub1N0cmljdDogYm9vbGVhbiwgbmV0d29yaz86IE5ldHdvcmspOiBVdHhvVHJhbnNhY3Rpb24ge1xuICAgIGlmICghbmV0d29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgbmV0d29ya2ApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFV0eG9UcmFuc2FjdGlvbihuZXR3b3JrLCBiaXRjb2luanMuVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcihidWYsIG5vU3RyaWN0KSk7XG4gIH1cblxuICBhZGRGb3JrSWQoaGFzaFR5cGU6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGhhc2hUeXBlICYgVXR4b1RyYW5zYWN0aW9uLlNJR0hBU0hfRk9SS0lEKSB7XG4gICAgICBjb25zdCBmb3JrSWQgPSBpc0JpdGNvaW5Hb2xkKHRoaXMubmV0d29yaykgPyA3OSA6IDA7XG4gICAgICByZXR1cm4gKGhhc2hUeXBlIHwgKGZvcmtJZCA8PCA4KSkgPj4+IDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhc2hUeXBlO1xuICB9XG5cbiAgaGFzaEZvcldpdG5lc3NWMChpbkluZGV4OiBudW1iZXIsIHByZXZPdXRTY3JpcHQ6IEJ1ZmZlciwgdmFsdWU6IG51bWJlciwgaGFzaFR5cGU6IG51bWJlcik6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHN1cGVyLmhhc2hGb3JXaXRuZXNzVjAoaW5JbmRleCwgcHJldk91dFNjcmlwdCwgdmFsdWUsIHRoaXMuYWRkRm9ya0lkKGhhc2hUeXBlKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSBoYXNoIHRvIHZlcmlmeSB0aGUgc2lnbmF0dXJlIGFnYWluc3RcbiAgICovXG4gIGhhc2hGb3JTaWduYXR1cmVCeU5ldHdvcmsoXG4gICAgaW5JbmRleDogbnVtYmVyLFxuICAgIHByZXZvdXRTY3JpcHQ6IEJ1ZmZlcixcbiAgICB2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgIGhhc2hUeXBlOiBudW1iZXJcbiAgKTogQnVmZmVyIHtcbiAgICBzd2l0Y2ggKGdldE1haW5uZXQodGhpcy5uZXR3b3JrKSkge1xuICAgICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbGxlZ2FsIHN0YXRlYCk7XG4gICAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgICAgICAvKlxuICAgICAgICAgIEJpdGNvaW4gQ2FzaCBzdXBwb3J0cyBhIEZPUktJRCBmbGFnLiBXaGVuIHNldCwgd2UgaGFzaCB1c2luZyBoYXNoaW5nIGFsZ29yaXRobVxuICAgICAgICAgICB0aGF0IGlzIHVzZWQgZm9yIHNlZ3JlZ2F0ZWQgd2l0bmVzcyB0cmFuc2FjdGlvbnMgKGRlZmluZWQgaW4gQklQMTQzKS5cblxuICAgICAgICAgIFRoZSBmbGFnIGlzIGFsc28gdXNlZCBieSBCaXRjb2luU1YgYW5kIEJpdGNvaW5Hb2xkXG5cbiAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbmNhc2hvcmcvYml0Y29pbmNhc2gub3JnL2Jsb2IvbWFzdGVyL3NwZWMvcmVwbGF5LXByb3RlY3RlZC1zaWdoYXNoLm1kXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBhZGRGb3JrSWQgPSAoaGFzaFR5cGUgJiBVdHhvVHJhbnNhY3Rpb24uU0lHSEFTSF9GT1JLSUQpID4gMDtcblxuICAgICAgICBpZiAoYWRkRm9ya0lkKSB7XG4gICAgICAgICAgLypcbiAgICAgICAgICAgIGBgVGhlIHNpZ2hhc2ggdHlwZSBpcyBhbHRlcmVkIHRvIGluY2x1ZGUgYSAyNC1iaXQgZm9yayBpZCBpbiBpdHMgbW9zdCBzaWduaWZpY2FudCBiaXRzLicnXG4gICAgICAgICAgICBXZSBhbHNvIHVzZSB1bnNpZ25lZCByaWdodCBzaGlmdCBvcGVyYXRvciBgPj4+YCB0byBjYXN0IHRvIFVJbnQzMlxuICAgICAgICAgICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvT3BlcmF0b3JzL1Vuc2lnbmVkX3JpZ2h0X3NoaWZ0XG4gICAgICAgICAgICovXG4gICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBwcm92aWRlIHZhbHVlYCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdXBlci5oYXNoRm9yV2l0bmVzc1YwKGluSW5kZXgsIHByZXZvdXRTY3JpcHQsIHZhbHVlLCB0aGlzLmFkZEZvcmtJZChoYXNoVHlwZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyLmhhc2hGb3JTaWduYXR1cmUoaW5JbmRleCwgcHJldm91dFNjcmlwdCwgaGFzaFR5cGUpO1xuICB9XG5cbiAgaGFzaEZvclNpZ25hdHVyZShpbkluZGV4OiBudW1iZXIsIHByZXZPdXRTY3JpcHQ6IEJ1ZmZlciwgaGFzaFR5cGU6IG51bWJlcik6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHRoaXMuaGFzaEZvclNpZ25hdHVyZUJ5TmV0d29yayhpbkluZGV4LCBwcmV2T3V0U2NyaXB0LCAodGhpcy5pbnNbaW5JbmRleF0gYXMgYW55KS52YWx1ZSwgaGFzaFR5cGUpO1xuICB9XG5cbiAgY2xvbmUoKTogVXR4b1RyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFV0eG9UcmFuc2FjdGlvbih0aGlzLm5ldHdvcmssIHN1cGVyLmNsb25lKCkpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXR4b1RyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL1V0eG9UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBRzNDLG9DQUFxRDtBQUNyRCx3Q0FBd0M7QUFFeEMsU0FBZ0IsWUFBWSxDQUFDLEtBQWE7SUFDeEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM1QixPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQ2pELENBQUM7QUFIRCxvQ0FHQztBQUVELE1BQWEsZUFBZ0IsU0FBUSxTQUFTLENBQUMsV0FBVztJQUt4RCxZQUFtQixPQUFnQixFQUFFLGNBQXFDLElBQUksU0FBUyxDQUFDLFdBQVcsRUFBRTtRQUNuRyxLQUFLLEVBQUUsQ0FBQztRQURTLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFFakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUNyQyxJQUFJLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxtQkFBTSxDQUFDLEVBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLG1CQUFNLENBQUMsRUFBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVyxFQUFFLFFBQWlCLEVBQUUsT0FBaUI7UUFDakUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sSUFBSSxlQUFlLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBZ0I7UUFDeEIsSUFBSSxRQUFRLEdBQUcsZUFBZSxDQUFDLGNBQWMsRUFBRTtZQUM3QyxNQUFNLE1BQU0sR0FBRyxxQkFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEQsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFlLEVBQUUsYUFBcUIsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7UUFDdEYsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRDs7T0FFRztJQUNILHlCQUF5QixDQUN2QixPQUFlLEVBQ2YsYUFBcUIsRUFDckIsS0FBeUIsRUFDekIsUUFBZ0I7UUFFaEIsUUFBUSxrQkFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNoQyxLQUFLLFFBQVEsQ0FBQyxLQUFLO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ25DLEtBQUssUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUMxQixLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDeEIsS0FBSyxRQUFRLENBQUMsV0FBVztnQkFDdkI7Ozs7Ozs7bUJBT0c7Z0JBQ0gsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFbEUsSUFBSSxTQUFTLEVBQUU7b0JBQ2I7Ozs7dUJBSUc7b0JBQ0gsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO3dCQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7cUJBQ3ZDO29CQUNELE9BQU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztpQkFDeEY7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWUsRUFBRSxhQUFxQixFQUFFLFFBQWdCO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7QUFoRkgsMENBaUZDO0FBaEZRLDhCQUFjLEdBQUcsSUFBSSxDQUFDO0FBQzdCLHFDQUFxQztBQUM5Qix5Q0FBeUIsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYml0Y29pbmpzIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0ICogYXMgdmFydWludCBmcm9tICd2YXJ1aW50LWJpdGNvaW4nO1xuXG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAnLi4vbmV0d29ya1R5cGVzJztcbmltcG9ydCB7IGdldE1haW5uZXQsIGlzQml0Y29pbkdvbGQgfSBmcm9tICcuLi9jb2lucyc7XG5pbXBvcnQgKiBhcyBuZXR3b3JrcyBmcm9tICcuLi9uZXR3b3Jrcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJTbGljZVNpemUoc2xpY2U6IEJ1ZmZlcik6IG51bWJlciB7XG4gIGNvbnN0IGxlbmd0aCA9IHNsaWNlLmxlbmd0aDtcbiAgcmV0dXJuIHZhcnVpbnQuZW5jb2RpbmdMZW5ndGgobGVuZ3RoKSArIGxlbmd0aDtcbn1cblxuZXhwb3J0IGNsYXNzIFV0eG9UcmFuc2FjdGlvbiBleHRlbmRzIGJpdGNvaW5qcy5UcmFuc2FjdGlvbiB7XG4gIHN0YXRpYyBTSUdIQVNIX0ZPUktJRCA9IDB4NDA7XG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgU0lHSEFTSF9GT1JLSUQgKi9cbiAgc3RhdGljIFNJR0hBU0hfQklUQ09JTkNBU0hCSVAxNDMgPSBVdHhvVHJhbnNhY3Rpb24uU0lHSEFTSF9GT1JLSUQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG5ldHdvcms6IE5ldHdvcmssIHRyYW5zYWN0aW9uOiBiaXRjb2luanMuVHJhbnNhY3Rpb24gPSBuZXcgYml0Y29pbmpzLlRyYW5zYWN0aW9uKCkpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudmVyc2lvbiA9IHRyYW5zYWN0aW9uLnZlcnNpb247XG4gICAgdGhpcy5sb2NrdGltZSA9IHRyYW5zYWN0aW9uLmxvY2t0aW1lO1xuICAgIHRoaXMuaW5zID0gdHJhbnNhY3Rpb24uaW5zLm1hcCgodikgPT4gKHsgLi4udiB9KSk7XG4gICAgdGhpcy5vdXRzID0gdHJhbnNhY3Rpb24ub3V0cy5tYXAoKHYpID0+ICh7IC4uLnYgfSkpO1xuICB9XG5cbiAgc3RhdGljIGZyb21CdWZmZXIoYnVmOiBCdWZmZXIsIG5vU3RyaWN0OiBib29sZWFuLCBuZXR3b3JrPzogTmV0d29yayk6IFV0eG9UcmFuc2FjdGlvbiB7XG4gICAgaWYgKCFuZXR3b3JrKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG11c3QgcHJvdmlkZSBuZXR3b3JrYCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVXR4b1RyYW5zYWN0aW9uKG5ldHdvcmssIGJpdGNvaW5qcy5UcmFuc2FjdGlvbi5mcm9tQnVmZmVyKGJ1Ziwgbm9TdHJpY3QpKTtcbiAgfVxuXG4gIGFkZEZvcmtJZChoYXNoVHlwZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoaGFzaFR5cGUgJiBVdHhvVHJhbnNhY3Rpb24uU0lHSEFTSF9GT1JLSUQpIHtcbiAgICAgIGNvbnN0IGZvcmtJZCA9IGlzQml0Y29pbkdvbGQodGhpcy5uZXR3b3JrKSA/IDc5IDogMDtcbiAgICAgIHJldHVybiAoaGFzaFR5cGUgfCAoZm9ya0lkIDw8IDgpKSA+Pj4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFzaFR5cGU7XG4gIH1cblxuICBoYXNoRm9yV2l0bmVzc1YwKGluSW5kZXg6IG51bWJlciwgcHJldk91dFNjcmlwdDogQnVmZmVyLCB2YWx1ZTogbnVtYmVyLCBoYXNoVHlwZTogbnVtYmVyKTogQnVmZmVyIHtcbiAgICByZXR1cm4gc3VwZXIuaGFzaEZvcldpdG5lc3NWMChpbkluZGV4LCBwcmV2T3V0U2NyaXB0LCB2YWx1ZSwgdGhpcy5hZGRGb3JrSWQoaGFzaFR5cGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIGhhc2ggdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmUgYWdhaW5zdFxuICAgKi9cbiAgaGFzaEZvclNpZ25hdHVyZUJ5TmV0d29yayhcbiAgICBpbkluZGV4OiBudW1iZXIsXG4gICAgcHJldm91dFNjcmlwdDogQnVmZmVyLFxuICAgIHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgaGFzaFR5cGU6IG51bWJlclxuICApOiBCdWZmZXIge1xuICAgIHN3aXRjaCAoZ2V0TWFpbm5ldCh0aGlzLm5ldHdvcmspKSB7XG4gICAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGlsbGVnYWwgc3RhdGVgKTtcbiAgICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgICAgIC8qXG4gICAgICAgICAgQml0Y29pbiBDYXNoIHN1cHBvcnRzIGEgRk9SS0lEIGZsYWcuIFdoZW4gc2V0LCB3ZSBoYXNoIHVzaW5nIGhhc2hpbmcgYWxnb3JpdGhtXG4gICAgICAgICAgIHRoYXQgaXMgdXNlZCBmb3Igc2VncmVnYXRlZCB3aXRuZXNzIHRyYW5zYWN0aW9ucyAoZGVmaW5lZCBpbiBCSVAxNDMpLlxuXG4gICAgICAgICAgVGhlIGZsYWcgaXMgYWxzbyB1c2VkIGJ5IEJpdGNvaW5TViBhbmQgQml0Y29pbkdvbGRcblxuICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luY2FzaG9yZy9iaXRjb2luY2FzaC5vcmcvYmxvYi9tYXN0ZXIvc3BlYy9yZXBsYXktcHJvdGVjdGVkLXNpZ2hhc2gubWRcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGFkZEZvcmtJZCA9IChoYXNoVHlwZSAmIFV0eG9UcmFuc2FjdGlvbi5TSUdIQVNIX0ZPUktJRCkgPiAwO1xuXG4gICAgICAgIGlmIChhZGRGb3JrSWQpIHtcbiAgICAgICAgICAvKlxuICAgICAgICAgICAgYGBUaGUgc2lnaGFzaCB0eXBlIGlzIGFsdGVyZWQgdG8gaW5jbHVkZSBhIDI0LWJpdCBmb3JrIGlkIGluIGl0cyBtb3N0IHNpZ25pZmljYW50IGJpdHMuJydcbiAgICAgICAgICAgIFdlIGFsc28gdXNlIHVuc2lnbmVkIHJpZ2h0IHNoaWZ0IG9wZXJhdG9yIGA+Pj5gIHRvIGNhc3QgdG8gVUludDMyXG4gICAgICAgICAgICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9PcGVyYXRvcnMvVW5zaWduZWRfcmlnaHRfc2hpZnRcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgdmFsdWVgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmhhc2hGb3JXaXRuZXNzVjAoaW5JbmRleCwgcHJldm91dFNjcmlwdCwgdmFsdWUsIHRoaXMuYWRkRm9ya0lkKGhhc2hUeXBlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuaGFzaEZvclNpZ25hdHVyZShpbkluZGV4LCBwcmV2b3V0U2NyaXB0LCBoYXNoVHlwZSk7XG4gIH1cblxuICBoYXNoRm9yU2lnbmF0dXJlKGluSW5kZXg6IG51bWJlciwgcHJldk91dFNjcmlwdDogQnVmZmVyLCBoYXNoVHlwZTogbnVtYmVyKTogQnVmZmVyIHtcbiAgICByZXR1cm4gdGhpcy5oYXNoRm9yU2lnbmF0dXJlQnlOZXR3b3JrKGluSW5kZXgsIHByZXZPdXRTY3JpcHQsICh0aGlzLmluc1tpbkluZGV4XSBhcyBhbnkpLnZhbHVlLCBoYXNoVHlwZSk7XG4gIH1cblxuICBjbG9uZSgpOiBVdHhvVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVXR4b1RyYW5zYWN0aW9uKHRoaXMubmV0d29yaywgc3VwZXIuY2xvbmUoKSk7XG4gIH1cbn1cbiJdfQ==

@@ -26,3 +26,3 @@ "use strict";

function fromOutputScript(outputScript, network) {
assert((0, coins_1.isZcash)(network));
assert(coins_1.isZcash(network));
let o;

@@ -47,3 +47,3 @@ let prefix;

function toOutputScript(address, network) {
assert((0, coins_1.isZcash)(network));
assert(coins_1.isZcash(network));
const { version, hash } = fromBase58Check(address);

@@ -59,2 +59,2 @@ if (version === network.pubKeyHash) {

exports.toOutputScript = toOutputScript;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby96Y2FzaC9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUVqQyx1Q0FBc0M7QUFDdEMsaURBQXlDO0FBQ3pDLGlEQUFpRDtBQUVqRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDdkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRXZDLFNBQWdCLGVBQWUsQ0FBQyxPQUFlO0lBQzdDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDM0IsQ0FBQztBQUxELDBDQUtDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQVksRUFBRSxPQUFlO0lBQ3pELFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRWxFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEIsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFQRCxzQ0FPQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLFlBQW9CLEVBQUUsT0FBZ0I7SUFDckUsTUFBTSxDQUFDLElBQUEsZUFBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekIsSUFBSSxDQUFDLENBQUM7SUFDTixJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUk7UUFDRixDQUFDLEdBQUcsd0JBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM3QyxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztLQUM3QjtJQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUU7SUFDZCxJQUFJO1FBQ0YsQ0FBQyxHQUFHLHdCQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDNUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7S0FDN0I7SUFBQyxPQUFPLENBQUMsRUFBRSxHQUFFO0lBQ2QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtRQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7S0FDN0M7SUFDRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFoQkQsNENBZ0JDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE9BQWUsRUFBRSxPQUFnQjtJQUM5RCxNQUFNLENBQUMsSUFBQSxlQUFPLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN6QixNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRCxJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUMsVUFBVSxFQUFFO1FBQ2xDLE9BQU8sd0JBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQWdCLENBQUM7S0FDbEQ7SUFDRCxJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUMsVUFBVSxFQUFFO1FBQ2xDLE9BQU8sd0JBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQWdCLENBQUM7S0FDakQ7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sR0FBRyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFWRCx3Q0FVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gJy4uLy4uL25ldHdvcmtUeXBlcyc7XG5pbXBvcnQgeyBpc1pjYXNoIH0gZnJvbSAnLi4vLi4vY29pbnMnO1xuaW1wb3J0IHsgcGF5bWVudHMgfSBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL3R5cGVzJztcbmltcG9ydCB7IEJhc2U1OENoZWNrUmVzdWx0IH0gZnJvbSAnYml0Y29pbmpzLWxpYi90eXBlcy9hZGRyZXNzJztcbmNvbnN0IGJzNThjaGVjayA9IHJlcXVpcmUoJ2JzNThjaGVjaycpO1xuY29uc3QgdHlwZWZvcmNlID0gcmVxdWlyZSgndHlwZWZvcmNlJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQmFzZTU4Q2hlY2soYWRkcmVzczogc3RyaW5nKTogQmFzZTU4Q2hlY2tSZXN1bHQge1xuICBjb25zdCBwYXlsb2FkID0gYnM1OGNoZWNrLmRlY29kZShhZGRyZXNzKTtcbiAgY29uc3QgdmVyc2lvbiA9IHBheWxvYWQucmVhZFVJbnQxNkJFKDApO1xuICBjb25zdCBoYXNoID0gcGF5bG9hZC5zbGljZSgyKTtcbiAgcmV0dXJuIHsgdmVyc2lvbiwgaGFzaCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9CYXNlNThDaGVjayhoYXNoOiBCdWZmZXIsIHZlcnNpb246IG51bWJlcik6IHN0cmluZyB7XG4gIHR5cGVmb3JjZSh0eXBlcy50dXBsZSh0eXBlcy5IYXNoMTYwYml0LCB0eXBlcy5OdW1iZXIpLCBhcmd1bWVudHMpO1xuXG4gIGNvbnN0IHBheWxvYWQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMjIpO1xuICBwYXlsb2FkLndyaXRlVUludDE2QkUodmVyc2lvbiwgMCk7XG4gIGhhc2guY29weShwYXlsb2FkLCAyKTtcbiAgcmV0dXJuIGJzNThjaGVjay5lbmNvZGUocGF5bG9hZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tT3V0cHV0U2NyaXB0KG91dHB1dFNjcmlwdDogQnVmZmVyLCBuZXR3b3JrOiBOZXR3b3JrKTogc3RyaW5nIHtcbiAgYXNzZXJ0KGlzWmNhc2gobmV0d29yaykpO1xuICBsZXQgbztcbiAgbGV0IHByZWZpeDtcbiAgdHJ5IHtcbiAgICBvID0gcGF5bWVudHMucDJwa2goeyBvdXRwdXQ6IG91dHB1dFNjcmlwdCB9KTtcbiAgICBwcmVmaXggPSBuZXR3b3JrLnB1YktleUhhc2g7XG4gIH0gY2F0Y2ggKGUpIHt9XG4gIHRyeSB7XG4gICAgbyA9IHBheW1lbnRzLnAyc2goeyBvdXRwdXQ6IG91dHB1dFNjcmlwdCB9KTtcbiAgICBwcmVmaXggPSBuZXR3b3JrLnNjcmlwdEhhc2g7XG4gIH0gY2F0Y2ggKGUpIHt9XG4gIGlmICghbyB8fCAhby5oYXNoIHx8IHByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBvdXRwdXRTY3JpcHRgKTtcbiAgfVxuICByZXR1cm4gdG9CYXNlNThDaGVjayhvLmhhc2gsIHByZWZpeCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b091dHB1dFNjcmlwdChhZGRyZXNzOiBzdHJpbmcsIG5ldHdvcms6IE5ldHdvcmspOiBCdWZmZXIge1xuICBhc3NlcnQoaXNaY2FzaChuZXR3b3JrKSk7XG4gIGNvbnN0IHsgdmVyc2lvbiwgaGFzaCB9ID0gZnJvbUJhc2U1OENoZWNrKGFkZHJlc3MpO1xuICBpZiAodmVyc2lvbiA9PT0gbmV0d29yay5wdWJLZXlIYXNoKSB7XG4gICAgcmV0dXJuIHBheW1lbnRzLnAycGtoKHsgaGFzaCB9KS5vdXRwdXQgYXMgQnVmZmVyO1xuICB9XG4gIGlmICh2ZXJzaW9uID09PSBuZXR3b3JrLnNjcmlwdEhhc2gpIHtcbiAgICByZXR1cm4gcGF5bWVudHMucDJzaCh7IGhhc2ggfSkub3V0cHV0IGFzIEJ1ZmZlcjtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYWRkcmVzcyArICcgaGFzIG5vIG1hdGNoaW5nIFNjcmlwdCcpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby96Y2FzaC9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUVqQyx1Q0FBc0M7QUFDdEMsaURBQXlDO0FBQ3pDLGlEQUFpRDtBQUVqRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDdkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRXZDLFNBQWdCLGVBQWUsQ0FBQyxPQUFlO0lBQzdDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDM0IsQ0FBQztBQUxELDBDQUtDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQVksRUFBRSxPQUFlO0lBQ3pELFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRWxFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEIsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFQRCxzQ0FPQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLFlBQW9CLEVBQUUsT0FBZ0I7SUFDckUsTUFBTSxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLElBQUksQ0FBQyxDQUFDO0lBQ04sSUFBSSxNQUFNLENBQUM7SUFDWCxJQUFJO1FBQ0YsQ0FBQyxHQUFHLHdCQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDN0MsTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7S0FDN0I7SUFBQyxPQUFPLENBQUMsRUFBRSxHQUFFO0lBQ2QsSUFBSTtRQUNGLENBQUMsR0FBRyx3QkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO0tBQzdCO0lBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtJQUNkLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7UUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQzdDO0lBQ0QsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBaEJELDRDQWdCQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxPQUFlLEVBQUUsT0FBZ0I7SUFDOUQsTUFBTSxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELElBQUksT0FBTyxLQUFLLE9BQU8sQ0FBQyxVQUFVLEVBQUU7UUFDbEMsT0FBTyx3QkFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBZ0IsQ0FBQztLQUNsRDtJQUNELElBQUksT0FBTyxLQUFLLE9BQU8sQ0FBQyxVQUFVLEVBQUU7UUFDbEMsT0FBTyx3QkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBZ0IsQ0FBQztLQUNqRDtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLHlCQUF5QixDQUFDLENBQUM7QUFDdkQsQ0FBQztBQVZELHdDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAnLi4vLi4vbmV0d29ya1R5cGVzJztcbmltcG9ydCB7IGlzWmNhc2ggfSBmcm9tICcuLi8uLi9jb2lucyc7XG5pbXBvcnQgeyBwYXltZW50cyB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZTU4Q2hlY2tSZXN1bHQgfSBmcm9tICdiaXRjb2luanMtbGliL3R5cGVzL2FkZHJlc3MnO1xuY29uc3QgYnM1OGNoZWNrID0gcmVxdWlyZSgnYnM1OGNoZWNrJyk7XG5jb25zdCB0eXBlZm9yY2UgPSByZXF1aXJlKCd0eXBlZm9yY2UnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21CYXNlNThDaGVjayhhZGRyZXNzOiBzdHJpbmcpOiBCYXNlNThDaGVja1Jlc3VsdCB7XG4gIGNvbnN0IHBheWxvYWQgPSBiczU4Y2hlY2suZGVjb2RlKGFkZHJlc3MpO1xuICBjb25zdCB2ZXJzaW9uID0gcGF5bG9hZC5yZWFkVUludDE2QkUoMCk7XG4gIGNvbnN0IGhhc2ggPSBwYXlsb2FkLnNsaWNlKDIpO1xuICByZXR1cm4geyB2ZXJzaW9uLCBoYXNoIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2U1OENoZWNrKGhhc2g6IEJ1ZmZlciwgdmVyc2lvbjogbnVtYmVyKTogc3RyaW5nIHtcbiAgdHlwZWZvcmNlKHR5cGVzLnR1cGxlKHR5cGVzLkhhc2gxNjBiaXQsIHR5cGVzLk51bWJlciksIGFyZ3VtZW50cyk7XG5cbiAgY29uc3QgcGF5bG9hZCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgyMik7XG4gIHBheWxvYWQud3JpdGVVSW50MTZCRSh2ZXJzaW9uLCAwKTtcbiAgaGFzaC5jb3B5KHBheWxvYWQsIDIpO1xuICByZXR1cm4gYnM1OGNoZWNrLmVuY29kZShwYXlsb2FkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21PdXRwdXRTY3JpcHQob3V0cHV0U2NyaXB0OiBCdWZmZXIsIG5ldHdvcms6IE5ldHdvcmspOiBzdHJpbmcge1xuICBhc3NlcnQoaXNaY2FzaChuZXR3b3JrKSk7XG4gIGxldCBvO1xuICBsZXQgcHJlZml4O1xuICB0cnkge1xuICAgIG8gPSBwYXltZW50cy5wMnBraCh7IG91dHB1dDogb3V0cHV0U2NyaXB0IH0pO1xuICAgIHByZWZpeCA9IG5ldHdvcmsucHViS2V5SGFzaDtcbiAgfSBjYXRjaCAoZSkge31cbiAgdHJ5IHtcbiAgICBvID0gcGF5bWVudHMucDJzaCh7IG91dHB1dDogb3V0cHV0U2NyaXB0IH0pO1xuICAgIHByZWZpeCA9IG5ldHdvcmsuc2NyaXB0SGFzaDtcbiAgfSBjYXRjaCAoZSkge31cbiAgaWYgKCFvIHx8ICFvLmhhc2ggfHwgcHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIG91dHB1dFNjcmlwdGApO1xuICB9XG4gIHJldHVybiB0b0Jhc2U1OENoZWNrKG8uaGFzaCwgcHJlZml4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvT3V0cHV0U2NyaXB0KGFkZHJlc3M6IHN0cmluZywgbmV0d29yazogTmV0d29yayk6IEJ1ZmZlciB7XG4gIGFzc2VydChpc1pjYXNoKG5ldHdvcmspKTtcbiAgY29uc3QgeyB2ZXJzaW9uLCBoYXNoIH0gPSBmcm9tQmFzZTU4Q2hlY2soYWRkcmVzcyk7XG4gIGlmICh2ZXJzaW9uID09PSBuZXR3b3JrLnB1YktleUhhc2gpIHtcbiAgICByZXR1cm4gcGF5bWVudHMucDJwa2goeyBoYXNoIH0pLm91dHB1dCBhcyBCdWZmZXI7XG4gIH1cbiAgaWYgKHZlcnNpb24gPT09IG5ldHdvcmsuc2NyaXB0SGFzaCkge1xuICAgIHJldHVybiBwYXltZW50cy5wMnNoKHsgaGFzaCB9KS5vdXRwdXQgYXMgQnVmZmVyO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihhZGRyZXNzICsgJyBoYXMgbm8gbWF0Y2hpbmcgU2NyaXB0Jyk7XG59XG4iXX0=

@@ -181,3 +181,3 @@ "use strict";

const txOutsSize = this.outs.reduce(function (sum, output) {
return sum + 8 + (0, UtxoTransaction_1.varSliceSize)(output.script);
return sum + 8 + UtxoTransaction_1.varSliceSize(output.script);
}, 0);

@@ -194,3 +194,3 @@ const bufferWriter = new bufferutils_1.BufferWriter(Buffer.allocUnsafe(txOutsSize));

const output = this.outs[inIndex];
const bufferWriter = new bufferutils_1.BufferWriter(Buffer.allocUnsafe(8 + (0, UtxoTransaction_1.varSliceSize)(output.script)));
const bufferWriter = new bufferutils_1.BufferWriter(Buffer.allocUnsafe(8 + UtxoTransaction_1.varSliceSize(output.script)));
bufferWriter.writeUInt64(output.value);

@@ -232,3 +232,3 @@ bufferWriter.writeVarSlice(output.script);

baseBufferSize += 32; // input.hash
baseBufferSize += (0, UtxoTransaction_1.varSliceSize)(prevOutScript); // prevOutScript
baseBufferSize += UtxoTransaction_1.varSliceSize(prevOutScript); // prevOutScript
if (this.isSaplingCompatible()) {

@@ -332,2 +332,2 @@ baseBufferSize += 32 * 2; // hashShieldedSpends and hashShieldedOutputs

ZcashTransaction.VERSION_SAPLING = 4;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby96Y2FzaC9aY2FzaFRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFvRDtBQUNwRCxpREFBaUQ7QUFDakQsK0RBQTJFO0FBRTNFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQzNDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUV2QywyQ0FBMkM7QUFDM0Msd0RBQW1FO0FBR25FLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0VBQWtFLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFcEcsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRWhFOzs7OztHQUtHO0FBQ0gsU0FBUyxjQUFjLENBQUMsTUFBYyxFQUFFLGVBQWdDO0lBQ3RFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xHLENBQUM7QUFFRCxNQUFhLGdCQUFpQixTQUFRLGlDQUFlO0lBYW5ELFlBQW1CLE9BQXFCLEVBQUUsRUFBcUI7UUFDN0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQURGLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFSeEMsK0RBQStEO1FBQy9E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QUVELElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUMvQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQUMsVUFBb0I7UUFDMUIsSUFBSSxVQUFVLEVBQUU7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDckM7UUFDRCxPQUFPLHNCQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7QUFwV0gsNENBcVdDO0FBcFdRLDJDQUEwQixHQUFHLENBQUMsQ0FBQztBQUMvQixtQ0FBa0IsR0FBRyxDQUFDLENBQUM7QUFDdkIsZ0NBQWUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbiwgY3J5cHRvIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICdiaXRjb2luanMtbGliL3NyYy90eXBlcyc7XG5pbXBvcnQgeyBCdWZmZXJSZWFkZXIsIEJ1ZmZlcldyaXRlciB9IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL2J1ZmZlcnV0aWxzJztcblxuY29uc3QgYmxha2UyYiA9IHJlcXVpcmUoJ0BiaXRnby9ibGFrZTJiJyk7XG5jb25zdCB2YXJ1aW50ID0gcmVxdWlyZSgndmFydWludC1iaXRjb2luJyk7XG5jb25zdCB0eXBlZm9yY2UgPSByZXF1aXJlKCd0eXBlZm9yY2UnKTtcblxuaW1wb3J0ICogYXMgbmV0d29ya3MgZnJvbSAnLi4vLi4vbmV0d29ya3MnO1xuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uLCB2YXJTbGljZVNpemUgfSBmcm9tICcuLi9VdHhvVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgWmNhc2hOZXR3b3JrIH0gZnJvbSAnLi4vLi4vbmV0d29ya1R5cGVzJztcblxuY29uc3QgWkVSTyA9IEJ1ZmZlci5mcm9tKCcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJywgJ2hleCcpO1xuXG5jb25zdCBWQUxVRV9JTlQ2NF9aRVJPID0gQnVmZmVyLmZyb20oJzAwMDAwMDAwMDAwMDAwMDAnLCAnaGV4Jyk7XG5cbi8qKlxuICogQmxha2UyYiBoYXNoaW5nIGFsZ29yaXRobSBmb3IgWmNhc2hcbiAqIEBwYXJhbSBidWZmZXJcbiAqIEBwYXJhbSBwZXJzb25hbGl6YXRpb25cbiAqIEByZXR1cm5zIDI1Ni1iaXQgQkxBS0UyYiBoYXNoXG4gKi9cbmZ1bmN0aW9uIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcjogQnVmZmVyLCBwZXJzb25hbGl6YXRpb246IHN0cmluZyB8IEJ1ZmZlcikge1xuICBjb25zdCBvdXQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMzIpO1xuICByZXR1cm4gYmxha2UyYihvdXQubGVuZ3RoLCBudWxsLCBudWxsLCBCdWZmZXIuZnJvbShwZXJzb25hbGl6YXRpb24pKS51cGRhdGUoYnVmZmVyKS5kaWdlc3Qob3V0KTtcbn1cblxuZXhwb3J0IGNsYXNzIFpjYXNoVHJhbnNhY3Rpb24gZXh0ZW5kcyBVdHhvVHJhbnNhY3Rpb24ge1xuICBzdGF0aWMgVkVSU0lPTl9KT0lOU1BMSVRTX1NVUFBPUlQgPSAyO1xuICBzdGF0aWMgVkVSU0lPTl9PVkVSV0lOVEVSID0gMztcbiAgc3RhdGljIFZFUlNJT05fU0FQTElORyA9IDQ7XG5cbiAgLy8gMSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcG9zdCBvdmVyd2ludGVyIHVwZ3JhZGUsIDAgb3RoZXJ3aXNlXG4gIG92ZXJ3aW50ZXJlZCA9IDA7XG4gIC8vIDB4MDNDNDgyNzAgKDYzMjEwMDk2KSBmb3Igb3ZlcndpbnRlciBhbmQgMHg4OTJGMjA4NSAoMjMwMTU2NzEwOSkgZm9yIHNhcGxpbmdcbiAgdmVyc2lvbkdyb3VwSWQgPSAwO1xuICAvLyBCbG9jayBoZWlnaHQgYWZ0ZXIgd2hpY2ggdGhpcyB0cmFuc2FjdGlvbnMgd2lsbCBleHBpcmUsIG9yIDAgdG8gZGlzYWJsZSBleHBpcnlcbiAgZXhwaXJ5SGVpZ2h0ID0gMDtcbiAgY29uc2Vuc3VzQnJhbmNoSWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmV0d29yazogWmNhc2hOZXR3b3JrLCB0eD86IFpjYXNoVHJhbnNhY3Rpb24pIHtcbiAgICBzdXBlcihuZXR3b3JrLCB0eCk7XG5cbiAgICBpZiAodHgpIHtcbiAgICAgIHRoaXMub3ZlcndpbnRlcmVkID0gdHgub3ZlcndpbnRlcmVkO1xuICAgICAgdGhpcy52ZXJzaW9uR3JvdXBJZCA9IHR4LnZlcnNpb25Hcm91cElkO1xuICAgICAgdGhpcy5leHBpcnlIZWlnaHQgPSB0eC5leHBpcnlIZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gTXVzdCBiZSB1cGRhdGVkIGFsb25nIHdpdGggdmVyc2lvblxuICAgIHRoaXMuY29uc2Vuc3VzQnJhbmNoSWQgPSBuZXR3b3Jrcy56Y2FzaC5jb25zZW5zdXNCcmFuY2hJZFt0aGlzLnZlcnNpb25dO1xuICB9XG5cbiAgc3RhdGljIGZyb21CdWZmZXIoYnVmZmVyOiBCdWZmZXIsIF9fbm9TdHJpY3Q6IGJvb2xlYW4sIG5ldHdvcms/OiBaY2FzaE5ldHdvcmspOiBaY2FzaFRyYW5zYWN0aW9uIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghbmV0d29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgbmV0d29ya2ApO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlclJlYWRlciA9IG5ldyBCdWZmZXJSZWFkZXIoYnVmZmVyKTtcbiAgICBjb25zdCB0eCA9IG5ldyBaY2FzaFRyYW5zYWN0aW9uKG5ldHdvcmspO1xuICAgIHR4LnZlcnNpb24gPSBidWZmZXJSZWFkZXIucmVhZEludDMyKCk7XG5cbiAgICAvLyBTcGxpdCB0aGUgaGVhZGVyIGludG8gZk92ZXJ3aW50ZXJlZCBhbmQgblZlcnNpb25cbiAgICB0eC5vdmVyd2ludGVyZWQgPSB0eC52ZXJzaW9uID4+PiAzMTsgLy8gTXVzdCBiZSAxIGZvciB2ZXJzaW9uIDMgYW5kIHVwXG4gICAgdHgudmVyc2lvbiA9IHR4LnZlcnNpb24gJiAweDA3ZmZmZmZmZjsgLy8gMyBmb3Igb3ZlcndpbnRlclxuICAgIGlmICh0eC5vdmVyd2ludGVyZWQgJiYgIW5ldHdvcmtzLnpjYXNoLmNvbnNlbnN1c0JyYW5jaElkLmhhc093blByb3BlcnR5KHR4LnZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIFpjYXNoIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHR4LmNvbnNlbnN1c0JyYW5jaElkID0gbmV0d29ya3MuemNhc2guY29uc2Vuc3VzQnJhbmNoSWRbdHgudmVyc2lvbl07XG5cbiAgICBpZiAodHguaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICB0eC52ZXJzaW9uR3JvdXBJZCA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG4gICAgfVxuXG4gICAgY29uc3QgdmluTGVuID0gYnVmZmVyUmVhZGVyLnJlYWRWYXJJbnQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZpbkxlbjsgKytpKSB7XG4gICAgICB0eC5pbnMucHVzaCh7XG4gICAgICAgIGhhc2g6IGJ1ZmZlclJlYWRlci5yZWFkU2xpY2UoMzIpLFxuICAgICAgICBpbmRleDogYnVmZmVyUmVhZGVyLnJlYWRVSW50MzIoKSxcbiAgICAgICAgc2NyaXB0OiBidWZmZXJSZWFkZXIucmVhZFZhclNsaWNlKCksXG4gICAgICAgIHNlcXVlbmNlOiBidWZmZXJSZWFkZXIucmVhZFVJbnQzMigpLFxuICAgICAgICB3aXRuZXNzOiBbXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHZvdXRMZW4gPSBidWZmZXJSZWFkZXIucmVhZFZhckludCgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdm91dExlbjsgKytpKSB7XG4gICAgICB0eC5vdXRzLnB1c2goe1xuICAgICAgICB2YWx1ZTogYnVmZmVyUmVhZGVyLnJlYWRVSW50NjQoKSxcbiAgICAgICAgc2NyaXB0OiBidWZmZXJSZWFkZXIucmVhZFZhclNsaWNlKCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0eC5sb2NrdGltZSA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG5cbiAgICBpZiAodHguaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICB0eC5leHBpcnlIZWlnaHQgPSBidWZmZXJSZWFkZXIucmVhZFVJbnQzMigpO1xuICAgIH1cblxuICAgIGlmICh0eC5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlQmFsYW5jZSA9IGJ1ZmZlclJlYWRlci5yZWFkU2xpY2UoOCk7XG4gICAgICBpZiAoIXZhbHVlQmFsYW5jZS5lcXVhbHMoVkFMVUVfSU5UNjRfWkVSTykpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCB2YWx1ZUJhbGFuY2VgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgblNoaWVsZGVkU3BlbmQgPSBidWZmZXJSZWFkZXIucmVhZFZhckludCgpO1xuICAgICAgaWYgKG5TaGllbGRlZFNwZW5kICE9PSAwKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgc2hpZWxkZWQgc3BlbmQgbm90IHN1cHBvcnRlZGApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBuU2hpZWxkZWRPdXRwdXQgPSBidWZmZXJSZWFkZXIucmVhZFZhckludCgpO1xuICAgICAgaWYgKG5TaGllbGRlZE91dHB1dCAhPT0gMCkge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNoaWVsZGVkIG91dHB1dCBub3Qgc3VwcG9ydGVkYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR4LnN1cHBvcnRzSm9pblNwbGl0cygpKSB7XG4gICAgICBjb25zdCBqb2luU3BsaXRzTGVuID0gYnVmZmVyUmVhZGVyLnJlYWRWYXJJbnQoKTtcbiAgICAgIGlmIChqb2luU3BsaXRzTGVuICE9PSAwKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgam9pblNwbGl0cyBub3Qgc3VwcG9ydGVkYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKF9fbm9TdHJpY3QpIHJldHVybiB0eDtcbiAgICBpZiAoYnVmZmVyUmVhZGVyLm9mZnNldCAhPT0gYnVmZmVyLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdUcmFuc2FjdGlvbiBoYXMgdW5leHBlY3RlZCBkYXRhJyk7XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICBieXRlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgbGV0IGJ5dGVMZW5ndGggPSBzdXBlci5ieXRlTGVuZ3RoKCk7XG4gICAgaWYgKHRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICBieXRlTGVuZ3RoICs9IDQ7IC8vIG5WZXJzaW9uR3JvdXBJZFxuICAgIH1cbiAgICBpZiAodGhpcy5pc092ZXJ3aW50ZXJDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJ5dGVMZW5ndGggKz0gNDsgLy8gbkV4cGlyeUhlaWdodFxuICAgIH1cbiAgICBpZiAodGhpcy5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJ5dGVMZW5ndGggKz0gODsgLy8gdmFsdWVCYWxhbmNlXG4gICAgICBieXRlTGVuZ3RoICs9IHZhcnVpbnQuZW5jb2RpbmdMZW5ndGgoMCk7IC8vIGlucHV0c1xuICAgICAgYnl0ZUxlbmd0aCArPSB2YXJ1aW50LmVuY29kaW5nTGVuZ3RoKDApOyAvLyBvdXRwdXRzXG4gICAgfVxuICAgIGlmICh0aGlzLnN1cHBvcnRzSm9pblNwbGl0cygpKSB7XG4gICAgICBieXRlTGVuZ3RoICs9IHZhcnVpbnQuZW5jb2RpbmdMZW5ndGgoMCk7IC8vIGpvaW5zcGxpdHNcbiAgICB9XG4gICAgcmV0dXJuIGJ5dGVMZW5ndGg7XG4gIH1cblxuICBpc1NhcGxpbmdDb21wYXRpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcndpbnRlcmVkICYmIHRoaXMudmVyc2lvbiA+PSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT05fU0FQTElORztcbiAgfVxuXG4gIGlzT3ZlcndpbnRlckNvbXBhdGlibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5vdmVyd2ludGVyZWQgJiYgdGhpcy52ZXJzaW9uID49IFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTl9PVkVSV0lOVEVSO1xuICB9XG5cbiAgc3VwcG9ydHNKb2luU3BsaXRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcndpbnRlcmVkICYmIHRoaXMudmVyc2lvbiA+PSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT05fSk9JTlNQTElUU19TVVBQT1JUO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgaGFzaCBmb3IgYWxsIG9yIG5vbmUgb2YgdGhlIHRyYW5zYWN0aW9uIGlucHV0cyBkZXBlbmRpbmcgb24gdGhlIGhhc2h0eXBlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcmV0dXJucyBCdWZmZXIgLSBCTEFLRTJiIGhhc2ggb3IgMjU2LWJpdCB6ZXJvIGlmIGRvZXNuJ3QgYXBwbHlcbiAgICovXG4gIGdldFByZXZvdXRIYXNoKGhhc2hUeXBlOiBudW1iZXIpOiBCdWZmZXIge1xuICAgIGlmICghKGhhc2hUeXBlICYgVHJhbnNhY3Rpb24uU0lHSEFTSF9BTllPTkVDQU5QQVkpKSB7XG4gICAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvY1Vuc2FmZSgzNiAqIHRoaXMuaW5zLmxlbmd0aCkpO1xuXG4gICAgICB0aGlzLmlucy5mb3JFYWNoKGZ1bmN0aW9uICh0eEluKSB7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKHR4SW4uaGFzaCk7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eEluLmluZGV4KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gZ2V0Qmxha2UyYkhhc2goYnVmZmVyV3JpdGVyLmJ1ZmZlciwgJ1pjYXNoUHJldm91dEhhc2gnKTtcbiAgICB9XG4gICAgcmV0dXJuIFpFUk87XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBoYXNoIGZvciBhbGwgb3Igbm9uZSBvZiB0aGUgdHJhbnNhY3Rpb25zIGlucHV0cyBzZXF1ZW5jZSBudW1iZXJzIGRlcGVuZGluZyBvbiB0aGUgaGFzaHR5cGVcbiAgICogQHBhcmFtIGhhc2hUeXBlXG4gICAqIEByZXR1cm5zIEJ1ZmZlciBCTEFLRTJiIGhhc2ggb3IgMjU2LWJpdCB6ZXJvIGlmIGRvZXNuJ3QgYXBwbHlcbiAgICovXG4gIGdldFNlcXVlbmNlSGFzaChoYXNoVHlwZTogbnVtYmVyKTogQnVmZmVyIHtcbiAgICBpZiAoXG4gICAgICAhKGhhc2hUeXBlICYgVHJhbnNhY3Rpb24uU0lHSEFTSF9BTllPTkVDQU5QQVkpICYmXG4gICAgICAoaGFzaFR5cGUgJiAweDFmKSAhPT0gVHJhbnNhY3Rpb24uU0lHSEFTSF9TSU5HTEUgJiZcbiAgICAgIChoYXNoVHlwZSAmIDB4MWYpICE9PSBUcmFuc2FjdGlvbi5TSUdIQVNIX05PTkVcbiAgICApIHtcbiAgICAgIGNvbnN0IGJ1ZmZlcldyaXRlciA9IG5ldyBCdWZmZXJXcml0ZXIoQnVmZmVyLmFsbG9jVW5zYWZlKDQgKiB0aGlzLmlucy5sZW5ndGgpKTtcblxuICAgICAgdGhpcy5pbnMuZm9yRWFjaChmdW5jdGlvbiAodHhJbikge1xuICAgICAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHhJbi5zZXF1ZW5jZSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcldyaXRlci5idWZmZXIsICdaY2FzaFNlcXVlbmNIYXNoJyk7XG4gICAgfVxuICAgIHJldHVybiBaRVJPO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgaGFzaCBmb3Igb25lLCBhbGwgb3Igbm9uZSBvZiB0aGUgdHJhbnNhY3Rpb24gb3V0cHV0cyBkZXBlbmRpbmcgb24gdGhlIGhhc2h0eXBlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcGFyYW0gaW5JbmRleFxuICAgKiBAcmV0dXJucyBCdWZmZXIgQkxBS0UyYiBoYXNoIG9yIDI1Ni1iaXQgemVybyBpZiBkb2Vzbid0IGFwcGx5XG4gICAqL1xuICBnZXRPdXRwdXRzSGFzaChoYXNoVHlwZTogbnVtYmVyLCBpbkluZGV4OiBudW1iZXIpOiBCdWZmZXIge1xuICAgIGlmICgoaGFzaFR5cGUgJiAweDFmKSAhPT0gVHJhbnNhY3Rpb24uU0lHSEFTSF9TSU5HTEUgJiYgKGhhc2hUeXBlICYgMHgxZikgIT09IFRyYW5zYWN0aW9uLlNJR0hBU0hfTk9ORSkge1xuICAgICAgLy8gRmluZCBvdXQgdGhlIHNpemUgb2YgdGhlIG91dHB1dHMgYW5kIHdyaXRlIHRoZW1cbiAgICAgIGNvbnN0IHR4T3V0c1NpemUgPSB0aGlzLm91dHMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIG91dHB1dCkge1xuICAgICAgICByZXR1cm4gc3VtICsgOCArIHZhclNsaWNlU2l6ZShvdXRwdXQuc2NyaXB0KTtcbiAgICAgIH0sIDApO1xuXG4gICAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvY1Vuc2FmZSh0eE91dHNTaXplKSk7XG5cbiAgICAgIHRoaXMub3V0cy5mb3JFYWNoKGZ1bmN0aW9uIChvdXQpIHtcbiAgICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDY0KG91dC52YWx1ZSk7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKG91dC5zY3JpcHQpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBnZXRCbGFrZTJiSGFzaChidWZmZXJXcml0ZXIuYnVmZmVyLCAnWmNhc2hPdXRwdXRzSGFzaCcpO1xuICAgIH0gZWxzZSBpZiAoKGhhc2hUeXBlICYgMHgxZikgPT09IFRyYW5zYWN0aW9uLlNJR0hBU0hfU0lOR0xFICYmIGluSW5kZXggPCB0aGlzLm91dHMubGVuZ3RoKSB7XG4gICAgICAvLyBXcml0ZSBvbmx5IHRoZSBvdXRwdXQgc3BlY2lmaWVkIGluIGluSW5kZXhcbiAgICAgIGNvbnN0IG91dHB1dCA9IHRoaXMub3V0c1tpbkluZGV4XTtcblxuICAgICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihCdWZmZXIuYWxsb2NVbnNhZmUoOCArIHZhclNsaWNlU2l6ZShvdXRwdXQuc2NyaXB0KSkpO1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDY0KG91dHB1dC52YWx1ZSk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJTbGljZShvdXRwdXQuc2NyaXB0KTtcblxuICAgICAgcmV0dXJuIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcldyaXRlci5idWZmZXIsICdaY2FzaE91dHB1dHNIYXNoJyk7XG4gICAgfVxuICAgIHJldHVybiBaRVJPO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhc2ggdHJhbnNhY3Rpb24gZm9yIHNpZ25pbmcgYSB0cmFuc3BhcmVudCB0cmFuc2FjdGlvbiBpbiBaY2FzaC4gUHJvdGVjdGVkIHRyYW5zYWN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZC5cbiAgICogQHBhcmFtIGluSW5kZXhcbiAgICogQHBhcmFtIHByZXZPdXRTY3JpcHRcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcmV0dXJucyBCdWZmZXIgQkxBS0UyYiBoYXNoXG4gICAqL1xuICBoYXNoRm9yU2lnbmF0dXJlQnlOZXR3b3JrKGluSW5kZXg6IG51bWJlciwgcHJldk91dFNjcmlwdDogQnVmZmVyLCB2YWx1ZTogbnVtYmVyLCBoYXNoVHlwZTogbnVtYmVyKTogQnVmZmVyIHtcbiAgICB0eXBlZm9yY2UodHlwZXMudHVwbGUodHlwZXMuVUludDMyLCB0eXBlcy5CdWZmZXIsIHR5cGVzLk51bWJlciksIGFyZ3VtZW50cyk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChpbkluZGV4ID49IHRoaXMuaW5zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnB1dCBpbmRleCBpcyBvdXQgb2YgcmFuZ2UnKTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghdGhpcy5pc092ZXJ3aW50ZXJDb21wYXRpYmxlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgdmVyc2lvbiAke3RoaXMudmVyc2lvbn1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNoUHJldm91dHMgPSB0aGlzLmdldFByZXZvdXRIYXNoKGhhc2hUeXBlKTtcbiAgICBjb25zdCBoYXNoU2VxdWVuY2UgPSB0aGlzLmdldFNlcXVlbmNlSGFzaChoYXNoVHlwZSk7XG4gICAgY29uc3QgaGFzaE91dHB1dHMgPSB0aGlzLmdldE91dHB1dHNIYXNoKGhhc2hUeXBlLCBpbkluZGV4KTtcbiAgICBjb25zdCBoYXNoSm9pblNwbGl0cyA9IFpFUk87XG4gICAgY29uc3QgaGFzaFNoaWVsZGVkU3BlbmRzID0gWkVSTztcbiAgICBjb25zdCBoYXNoU2hpZWxkZWRPdXRwdXRzID0gWkVSTztcblxuICAgIGxldCBiYXNlQnVmZmVyU2l6ZSA9IDA7XG4gICAgYmFzZUJ1ZmZlclNpemUgKz0gNCAqIDU7IC8vIGhlYWRlciwgblZlcnNpb25Hcm91cElkLCBsb2NrX3RpbWUsIG5FeHBpcnlIZWlnaHQsIGhhc2hUeXBlXG4gICAgYmFzZUJ1ZmZlclNpemUgKz0gMzIgKiA0OyAvLyAyNTYgaGFzaGVzOiBoYXNoUHJldm91dHMsIGhhc2hTZXF1ZW5jZSwgaGFzaE91dHB1dHMsIGhhc2hKb2luU3BsaXRzXG4gICAgYmFzZUJ1ZmZlclNpemUgKz0gNCAqIDI7IC8vIGlucHV0LmluZGV4LCBpbnB1dC5zZXF1ZW5jZVxuICAgIGJhc2VCdWZmZXJTaXplICs9IDg7IC8vIHZhbHVlXG4gICAgYmFzZUJ1ZmZlclNpemUgKz0gMzI7IC8vIGlucHV0Lmhhc2hcbiAgICBiYXNlQnVmZmVyU2l6ZSArPSB2YXJTbGljZVNpemUocHJldk91dFNjcmlwdCk7IC8vIHByZXZPdXRTY3JpcHRcbiAgICBpZiAodGhpcy5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJhc2VCdWZmZXJTaXplICs9IDMyICogMjsgLy8gaGFzaFNoaWVsZGVkU3BlbmRzIGFuZCBoYXNoU2hpZWxkZWRPdXRwdXRzXG4gICAgICBiYXNlQnVmZmVyU2l6ZSArPSA4OyAvLyB2YWx1ZUJhbGFuY2VcbiAgICB9XG5cbiAgICBjb25zdCBtYXNrID0gdGhpcy5vdmVyd2ludGVyZWQgPyAxIDogMDtcbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLnZlcnNpb24gfCAobWFzayA8PCAzMSk7XG5cbiAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvYyhiYXNlQnVmZmVyU2l6ZSkpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZUludDMyKGhlYWRlcik7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMudmVyc2lvbkdyb3VwSWQpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGhhc2hQcmV2b3V0cyk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoaGFzaFNlcXVlbmNlKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShoYXNoT3V0cHV0cyk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoaGFzaEpvaW5TcGxpdHMpO1xuICAgIGlmICh0aGlzLmlzU2FwbGluZ0NvbXBhdGlibGUoKSkge1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoaGFzaFNoaWVsZGVkU3BlbmRzKTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGhhc2hTaGllbGRlZE91dHB1dHMpO1xuICAgIH1cbiAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodGhpcy5sb2NrdGltZSk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMuZXhwaXJ5SGVpZ2h0KTtcbiAgICBpZiAodGhpcy5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKFZBTFVFX0lOVDY0X1pFUk8pO1xuICAgIH1cbiAgICBidWZmZXJXcml0ZXIud3JpdGVJbnQzMihoYXNoVHlwZSk7XG5cbiAgICAvLyBUaGUgaW5wdXQgYmVpbmcgc2lnbmVkIChyZXBsYWNpbmcgdGhlIHNjcmlwdFNpZyB3aXRoIHNjcmlwdENvZGUgKyBhbW91bnQpXG4gICAgLy8gVGhlIHByZXZvdXQgbWF5IGFscmVhZHkgYmUgY29udGFpbmVkIGluIGhhc2hQcmV2b3V0LCBhbmQgdGhlIG5TZXF1ZW5jZVxuICAgIC8vIG1heSBhbHJlYWR5IGJlIGNvbnRhaW5lZCBpbiBoYXNoU2VxdWVuY2UuXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmluc1tpbkluZGV4XTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShpbnB1dC5oYXNoKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIoaW5wdXQuaW5kZXgpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKHByZXZPdXRTY3JpcHQpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQ2NCh2YWx1ZSk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKGlucHV0LnNlcXVlbmNlKTtcblxuICAgIGNvbnN0IHBlcnNvbmFsaXphdGlvbiA9IEJ1ZmZlci5hbGxvYygxNik7XG4gICAgY29uc3QgcHJlZml4ID0gJ1pjYXNoU2lnSGFzaCc7XG4gICAgcGVyc29uYWxpemF0aW9uLndyaXRlKHByZWZpeCk7XG4gICAgcGVyc29uYWxpemF0aW9uLndyaXRlVUludDMyTEUodGhpcy5jb25zZW5zdXNCcmFuY2hJZCwgcHJlZml4Lmxlbmd0aCk7XG5cbiAgICByZXR1cm4gZ2V0Qmxha2UyYkhhc2goYnVmZmVyV3JpdGVyLmJ1ZmZlciwgcGVyc29uYWxpemF0aW9uKTtcbiAgfVxuXG4gIHRvQnVmZmVyKGJ1ZmZlcj86IEJ1ZmZlciwgaW5pdGlhbE9mZnNldCA9IDApOiBCdWZmZXIge1xuICAgIGlmICghYnVmZmVyKSBidWZmZXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUodGhpcy5ieXRlTGVuZ3RoKCkpO1xuXG4gICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihidWZmZXIsIGluaXRpYWxPZmZzZXQpO1xuXG4gICAgaWYgKHRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICBjb25zdCBtYXNrID0gdGhpcy5vdmVyd2ludGVyZWQgPyAxIDogMDtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZUludDMyKHRoaXMudmVyc2lvbiB8IChtYXNrIDw8IDMxKSk7IC8vIFNldCBvdmVyd2ludGVyIGJpdFxuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMudmVyc2lvbkdyb3VwSWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVJbnQzMih0aGlzLnZlcnNpb24pO1xuICAgIH1cblxuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhckludCh0aGlzLmlucy5sZW5ndGgpO1xuXG4gICAgdGhpcy5pbnMuZm9yRWFjaChmdW5jdGlvbiAodHhJbikge1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UodHhJbi5oYXNoKTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eEluLmluZGV4KTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKHR4SW4uc2NyaXB0KTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eEluLnNlcXVlbmNlKTtcbiAgICB9KTtcblxuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhckludCh0aGlzLm91dHMubGVuZ3RoKTtcbiAgICB0aGlzLm91dHMuZm9yRWFjaChmdW5jdGlvbiAodHhPdXQpIHtcbiAgICAgIGlmICgodHhPdXQgYXMgYW55KS52YWx1ZUJ1ZmZlcikge1xuICAgICAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZSgodHhPdXQgYXMgYW55KS52YWx1ZUJ1ZmZlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50NjQodHhPdXQudmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJTbGljZSh0eE91dC5zY3JpcHQpO1xuICAgIH0pO1xuXG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMubG9ja3RpbWUpO1xuXG4gICAgaWYgKHRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodGhpcy5leHBpcnlIZWlnaHQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzU2FwbGluZ0NvbXBhdGlibGUoKSkge1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoVkFMVUVfSU5UNjRfWkVSTyk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoMCk7IC8vIHZTaGllbGRlZFNwZW5kTGVuZ3RoXG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoMCk7IC8vIHZTaGllbGRlZE91dHB1dExlbmd0aFxuICAgIH1cblxuICAgIGlmICh0aGlzLnN1cHBvcnRzSm9pblNwbGl0cygpKSB7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoMCk7IC8vIGpvaW5zU3BsaXRzIGxlbmd0aFxuICAgIH1cblxuICAgIGlmIChpbml0aWFsT2Zmc2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBidWZmZXIuc2xpY2UoaW5pdGlhbE9mZnNldCwgYnVmZmVyV3JpdGVyLm9mZnNldCk7XG4gICAgfVxuICAgIHJldHVybiBidWZmZXI7XG4gIH1cblxuICBnZXRIYXNoKGZvcldpdG5lc3M/OiBib29sZWFuKTogQnVmZmVyIHtcbiAgICBpZiAoZm9yV2l0bmVzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFyZ3VtZW50YCk7XG4gICAgfVxuICAgIHJldHVybiBjcnlwdG8uaGFzaDI1Nih0aGlzLnRvQnVmZmVyKCkpO1xuICB9XG5cbiAgY2xvbmUoKTogWmNhc2hUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBaY2FzaFRyYW5zYWN0aW9uKHRoaXMubmV0d29yaywgdGhpcyk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby96Y2FzaC9aY2FzaFRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFvRDtBQUNwRCxpREFBaUQ7QUFDakQsK0RBQTJFO0FBRTNFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQzNDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUV2QywyQ0FBMkM7QUFDM0Msd0RBQW1FO0FBR25FLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0VBQWtFLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFcEcsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRWhFOzs7OztHQUtHO0FBQ0gsU0FBUyxjQUFjLENBQUMsTUFBYyxFQUFFLGVBQWdDO0lBQ3RFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xHLENBQUM7QUFFRCxNQUFhLGdCQUFpQixTQUFRLGlDQUFlO0lBYW5ELFlBQW1CLE9BQXFCLEVBQUUsRUFBcUI7UUFDN0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQURGLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFSeEMsK0RBQStEO1FBQy9E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QUFLLFNBQVMsRUFBRTtZQUMvQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQUMsVUFBb0I7UUFDMUIsSUFBSSxVQUFVLEVBQUU7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDckM7UUFDRCxPQUFPLHNCQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7QUFwV0gsNENBcVdDO0FBcFdRLDJDQUEwQixHQUFHLENBQUMsQ0FBQztBQUMvQixtQ0FBa0IsR0FBRyxDQUFDLENBQUM7QUFDdkIsZ0NBQWUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbiwgY3J5cHRvIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICdiaXRjb2luanMtbGliL3NyYy90eXBlcyc7XG5pbXBvcnQgeyBCdWZmZXJSZWFkZXIsIEJ1ZmZlcldyaXRlciB9IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL2J1ZmZlcnV0aWxzJztcblxuY29uc3QgYmxha2UyYiA9IHJlcXVpcmUoJ0BiaXRnby9ibGFrZTJiJyk7XG5jb25zdCB2YXJ1aW50ID0gcmVxdWlyZSgndmFydWludC1iaXRjb2luJyk7XG5jb25zdCB0eXBlZm9yY2UgPSByZXF1aXJlKCd0eXBlZm9yY2UnKTtcblxuaW1wb3J0ICogYXMgbmV0d29ya3MgZnJvbSAnLi4vLi4vbmV0d29ya3MnO1xuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uLCB2YXJTbGljZVNpemUgfSBmcm9tICcuLi9VdHhvVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgWmNhc2hOZXR3b3JrIH0gZnJvbSAnLi4vLi4vbmV0d29ya1R5cGVzJztcblxuY29uc3QgWkVSTyA9IEJ1ZmZlci5mcm9tKCcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJywgJ2hleCcpO1xuXG5jb25zdCBWQUxVRV9JTlQ2NF9aRVJPID0gQnVmZmVyLmZyb20oJzAwMDAwMDAwMDAwMDAwMDAnLCAnaGV4Jyk7XG5cbi8qKlxuICogQmxha2UyYiBoYXNoaW5nIGFsZ29yaXRobSBmb3IgWmNhc2hcbiAqIEBwYXJhbSBidWZmZXJcbiAqIEBwYXJhbSBwZXJzb25hbGl6YXRpb25cbiAqIEByZXR1cm5zIDI1Ni1iaXQgQkxBS0UyYiBoYXNoXG4gKi9cbmZ1bmN0aW9uIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcjogQnVmZmVyLCBwZXJzb25hbGl6YXRpb246IHN0cmluZyB8IEJ1ZmZlcikge1xuICBjb25zdCBvdXQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMzIpO1xuICByZXR1cm4gYmxha2UyYihvdXQubGVuZ3RoLCBudWxsLCBudWxsLCBCdWZmZXIuZnJvbShwZXJzb25hbGl6YXRpb24pKS51cGRhdGUoYnVmZmVyKS5kaWdlc3Qob3V0KTtcbn1cblxuZXhwb3J0IGNsYXNzIFpjYXNoVHJhbnNhY3Rpb24gZXh0ZW5kcyBVdHhvVHJhbnNhY3Rpb24ge1xuICBzdGF0aWMgVkVSU0lPTl9KT0lOU1BMSVRTX1NVUFBPUlQgPSAyO1xuICBzdGF0aWMgVkVSU0lPTl9PVkVSV0lOVEVSID0gMztcbiAgc3RhdGljIFZFUlNJT05fU0FQTElORyA9IDQ7XG5cbiAgLy8gMSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcG9zdCBvdmVyd2ludGVyIHVwZ3JhZGUsIDAgb3RoZXJ3aXNlXG4gIG92ZXJ3aW50ZXJlZCA9IDA7XG4gIC8vIDB4MDNDNDgyNzAgKDYzMjEwMDk2KSBmb3Igb3ZlcndpbnRlciBhbmQgMHg4OTJGMjA4NSAoMjMwMTU2NzEwOSkgZm9yIHNhcGxpbmdcbiAgdmVyc2lvbkdyb3VwSWQgPSAwO1xuICAvLyBCbG9jayBoZWlnaHQgYWZ0ZXIgd2hpY2ggdGhpcyB0cmFuc2FjdGlvbnMgd2lsbCBleHBpcmUsIG9yIDAgdG8gZGlzYWJsZSBleHBpcnlcbiAgZXhwaXJ5SGVpZ2h0ID0gMDtcbiAgY29uc2Vuc3VzQnJhbmNoSWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmV0d29yazogWmNhc2hOZXR3b3JrLCB0eD86IFpjYXNoVHJhbnNhY3Rpb24pIHtcbiAgICBzdXBlcihuZXR3b3JrLCB0eCk7XG5cbiAgICBpZiAodHgpIHtcbiAgICAgIHRoaXMub3ZlcndpbnRlcmVkID0gdHgub3ZlcndpbnRlcmVkO1xuICAgICAgdGhpcy52ZXJzaW9uR3JvdXBJZCA9IHR4LnZlcnNpb25Hcm91cElkO1xuICAgICAgdGhpcy5leHBpcnlIZWlnaHQgPSB0eC5leHBpcnlIZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gTXVzdCBiZSB1cGRhdGVkIGFsb25nIHdpdGggdmVyc2lvblxuICAgIHRoaXMuY29uc2Vuc3VzQnJhbmNoSWQgPSBuZXR3b3Jrcy56Y2FzaC5jb25zZW5zdXNCcmFuY2hJZFt0aGlzLnZlcnNpb25dO1xuICB9XG5cbiAgc3RhdGljIGZyb21CdWZmZXIoYnVmZmVyOiBCdWZmZXIsIF9fbm9TdHJpY3Q6IGJvb2xlYW4sIG5ldHdvcms/OiBaY2FzaE5ldHdvcmspOiBaY2FzaFRyYW5zYWN0aW9uIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghbmV0d29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgbmV0d29ya2ApO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlclJlYWRlciA9IG5ldyBCdWZmZXJSZWFkZXIoYnVmZmVyKTtcbiAgICBjb25zdCB0eCA9IG5ldyBaY2FzaFRyYW5zYWN0aW9uKG5ldHdvcmspO1xuICAgIHR4LnZlcnNpb24gPSBidWZmZXJSZWFkZXIucmVhZEludDMyKCk7XG5cbiAgICAvLyBTcGxpdCB0aGUgaGVhZGVyIGludG8gZk92ZXJ3aW50ZXJlZCBhbmQgblZlcnNpb25cbiAgICB0eC5vdmVyd2ludGVyZWQgPSB0eC52ZXJzaW9uID4+PiAzMTsgLy8gTXVzdCBiZSAxIGZvciB2ZXJzaW9uIDMgYW5kIHVwXG4gICAgdHgudmVyc2lvbiA9IHR4LnZlcnNpb24gJiAweDA3ZmZmZmZmZjsgLy8gMyBmb3Igb3ZlcndpbnRlclxuICAgIGlmICh0eC5vdmVyd2ludGVyZWQgJiYgIW5ldHdvcmtzLnpjYXNoLmNvbnNlbnN1c0JyYW5jaElkLmhhc093blByb3BlcnR5KHR4LnZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIFpjYXNoIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHR4LmNvbnNlbnN1c0JyYW5jaElkID0gbmV0d29ya3MuemNhc2guY29uc2Vuc3VzQnJhbmNoSWRbdHgudmVyc2lvbl07XG5cbiAgICBpZiAodHguaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICB0eC52ZXJzaW9uR3JvdXBJZCA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG4gICAgfVxuXG4gICAgY29uc3QgdmluTGVuID0gYnVmZmVyUmVhZGVyLnJlYWRWYXJJbnQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZpbkxlbjsgKytpKSB7XG4gICAgICB0eC5pbnMucHVzaCh7XG4gICAgICAgIGhhc2g6IGJ1ZmZlclJlYWRlci5yZWFkU2xpY2UoMzIpLFxuICAgICAgICBpbmRleDogYnVmZmVyUmVhZGVyLnJlYWRVSW50MzIoKSxcbiAgICAgICAgc2NyaXB0OiBidWZmZXJSZWFkZXIucmVhZFZhclNsaWNlKCksXG4gICAgICAgIHNlcXVlbmNlOiBidWZmZXJSZWFkZXIucmVhZFVJbnQzMigpLFxuICAgICAgICB3aXRuZXNzOiBbXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHZvdXRMZW4gPSBidWZmZXJSZWFkZXIucmVhZFZhckludCgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdm91dExlbjsgKytpKSB7XG4gICAgICB0eC5vdXRzLnB1c2goe1xuICAgICAgICB2YWx1ZTogYnVmZmVyUmVhZGVyLnJlYWRVSW50NjQoKSxcbiAgICAgICAgc2NyaXB0OiBidWZmZXJSZWFkZXIucmVhZFZhclNsaWNlKCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0eC5sb2NrdGltZSA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG5cbiAgICBpZiAodHguaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICB0eC5leHBpcnlIZWlnaHQgPSBidWZmZXJSZWFkZXIucmVhZFVJbnQzMigpO1xuICAgIH1cblxuICAgIGlmICh0eC5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlQmFsYW5jZSA9IGJ1ZmZlclJlYWRlci5yZWFkU2xpY2UoOCk7XG4gICAgICBpZiAoIXZhbHVlQmFsYW5jZS5lcXVhbHMoVkFMVUVfSU5UNjRfWkVSTykpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCB2YWx1ZUJhbGFuY2VgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgblNoaWVsZGVkU3BlbmQgPSBidWZmZXJSZWFkZXIucmVhZFZhckludCgpO1xuICAgICAgaWYgKG5TaGllbGRlZFNwZW5kICE9PSAwKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgc2hpZWxkZWQgc3BlbmQgbm90IHN1cHBvcnRlZGApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBuU2hpZWxkZWRPdXRwdXQgPSBidWZmZXJSZWFkZXIucmVhZFZhckludCgpO1xuICAgICAgaWYgKG5TaGllbGRlZE91dHB1dCAhPT0gMCkge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNoaWVsZGVkIG91dHB1dCBub3Qgc3VwcG9ydGVkYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR4LnN1cHBvcnRzSm9pblNwbGl0cygpKSB7XG4gICAgICBjb25zdCBqb2luU3BsaXRzTGVuID0gYnVmZmVyUmVhZGVyLnJlYWRWYXJJbnQoKTtcbiAgICAgIGlmIChqb2luU3BsaXRzTGVuICE9PSAwKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgam9pblNwbGl0cyBub3Qgc3VwcG9ydGVkYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKF9fbm9TdHJpY3QpIHJldHVybiB0eDtcbiAgICBpZiAoYnVmZmVyUmVhZGVyLm9mZnNldCAhPT0gYnVmZmVyLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdUcmFuc2FjdGlvbiBoYXMgdW5leHBlY3RlZCBkYXRhJyk7XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICBieXRlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgbGV0IGJ5dGVMZW5ndGggPSBzdXBlci5ieXRlTGVuZ3RoKCk7XG4gICAgaWYgKHRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICBieXRlTGVuZ3RoICs9IDQ7IC8vIG5WZXJzaW9uR3JvdXBJZFxuICAgIH1cbiAgICBpZiAodGhpcy5pc092ZXJ3aW50ZXJDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJ5dGVMZW5ndGggKz0gNDsgLy8gbkV4cGlyeUhlaWdodFxuICAgIH1cbiAgICBpZiAodGhpcy5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJ5dGVMZW5ndGggKz0gODsgLy8gdmFsdWVCYWxhbmNlXG4gICAgICBieXRlTGVuZ3RoICs9IHZhcnVpbnQuZW5jb2RpbmdMZW5ndGgoMCk7IC8vIGlucHV0c1xuICAgICAgYnl0ZUxlbmd0aCArPSB2YXJ1aW50LmVuY29kaW5nTGVuZ3RoKDApOyAvLyBvdXRwdXRzXG4gICAgfVxuICAgIGlmICh0aGlzLnN1cHBvcnRzSm9pblNwbGl0cygpKSB7XG4gICAgICBieXRlTGVuZ3RoICs9IHZhcnVpbnQuZW5jb2RpbmdMZW5ndGgoMCk7IC8vIGpvaW5zcGxpdHNcbiAgICB9XG4gICAgcmV0dXJuIGJ5dGVMZW5ndGg7XG4gIH1cblxuICBpc1NhcGxpbmdDb21wYXRpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcndpbnRlcmVkICYmIHRoaXMudmVyc2lvbiA+PSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT05fU0FQTElORztcbiAgfVxuXG4gIGlzT3ZlcndpbnRlckNvbXBhdGlibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5vdmVyd2ludGVyZWQgJiYgdGhpcy52ZXJzaW9uID49IFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTl9PVkVSV0lOVEVSO1xuICB9XG5cbiAgc3VwcG9ydHNKb2luU3BsaXRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcndpbnRlcmVkICYmIHRoaXMudmVyc2lvbiA+PSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT05fSk9JTlNQTElUU19TVVBQT1JUO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgaGFzaCBmb3IgYWxsIG9yIG5vbmUgb2YgdGhlIHRyYW5zYWN0aW9uIGlucHV0cyBkZXBlbmRpbmcgb24gdGhlIGhhc2h0eXBlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcmV0dXJucyBCdWZmZXIgLSBCTEFLRTJiIGhhc2ggb3IgMjU2LWJpdCB6ZXJvIGlmIGRvZXNuJ3QgYXBwbHlcbiAgICovXG4gIGdldFByZXZvdXRIYXNoKGhhc2hUeXBlOiBudW1iZXIpOiBCdWZmZXIge1xuICAgIGlmICghKGhhc2hUeXBlICYgVHJhbnNhY3Rpb24uU0lHSEFTSF9BTllPTkVDQU5QQVkpKSB7XG4gICAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvY1Vuc2FmZSgzNiAqIHRoaXMuaW5zLmxlbmd0aCkpO1xuXG4gICAgICB0aGlzLmlucy5mb3JFYWNoKGZ1bmN0aW9uICh0eEluKSB7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKHR4SW4uaGFzaCk7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eEluLmluZGV4KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gZ2V0Qmxha2UyYkhhc2goYnVmZmVyV3JpdGVyLmJ1ZmZlciwgJ1pjYXNoUHJldm91dEhhc2gnKTtcbiAgICB9XG4gICAgcmV0dXJuIFpFUk87XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBoYXNoIGZvciBhbGwgb3Igbm9uZSBvZiB0aGUgdHJhbnNhY3Rpb25zIGlucHV0cyBzZXF1ZW5jZSBudW1iZXJzIGRlcGVuZGluZyBvbiB0aGUgaGFzaHR5cGVcbiAgICogQHBhcmFtIGhhc2hUeXBlXG4gICAqIEByZXR1cm5zIEJ1ZmZlciBCTEFLRTJiIGhhc2ggb3IgMjU2LWJpdCB6ZXJvIGlmIGRvZXNuJ3QgYXBwbHlcbiAgICovXG4gIGdldFNlcXVlbmNlSGFzaChoYXNoVHlwZTogbnVtYmVyKTogQnVmZmVyIHtcbiAgICBpZiAoXG4gICAgICAhKGhhc2hUeXBlICYgVHJhbnNhY3Rpb24uU0lHSEFTSF9BTllPTkVDQU5QQVkpICYmXG4gICAgICAoaGFzaFR5cGUgJiAweDFmKSAhPT0gVHJhbnNhY3Rpb24uU0lHSEFTSF9TSU5HTEUgJiZcbiAgICAgIChoYXNoVHlwZSAmIDB4MWYpICE9PSBUcmFuc2FjdGlvbi5TSUdIQVNIX05PTkVcbiAgICApIHtcbiAgICAgIGNvbnN0IGJ1ZmZlcldyaXRlciA9IG5ldyBCdWZmZXJXcml0ZXIoQnVmZmVyLmFsbG9jVW5zYWZlKDQgKiB0aGlzLmlucy5sZW5ndGgpKTtcblxuICAgICAgdGhpcy5pbnMuZm9yRWFjaChmdW5jdGlvbiAodHhJbikge1xuICAgICAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHhJbi5zZXF1ZW5jZSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcldyaXRlci5idWZmZXIsICdaY2FzaFNlcXVlbmNIYXNoJyk7XG4gICAgfVxuICAgIHJldHVybiBaRVJPO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgaGFzaCBmb3Igb25lLCBhbGwgb3Igbm9uZSBvZiB0aGUgdHJhbnNhY3Rpb24gb3V0cHV0cyBkZXBlbmRpbmcgb24gdGhlIGhhc2h0eXBlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcGFyYW0gaW5JbmRleFxuICAgKiBAcmV0dXJucyBCdWZmZXIgQkxBS0UyYiBoYXNoIG9yIDI1Ni1iaXQgemVybyBpZiBkb2Vzbid0IGFwcGx5XG4gICAqL1xuICBnZXRPdXRwdXRzSGFzaChoYXNoVHlwZTogbnVtYmVyLCBpbkluZGV4OiBudW1iZXIpOiBCdWZmZXIge1xuICAgIGlmICgoaGFzaFR5cGUgJiAweDFmKSAhPT0gVHJhbnNhY3Rpb24uU0lHSEFTSF9TSU5HTEUgJiYgKGhhc2hUeXBlICYgMHgxZikgIT09IFRyYW5zYWN0aW9uLlNJR0hBU0hfTk9ORSkge1xuICAgICAgLy8gRmluZCBvdXQgdGhlIHNpemUgb2YgdGhlIG91dHB1dHMgYW5kIHdyaXRlIHRoZW1cbiAgICAgIGNvbnN0IHR4T3V0c1NpemUgPSB0aGlzLm91dHMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIG91dHB1dCkge1xuICAgICAgICByZXR1cm4gc3VtICsgOCArIHZhclNsaWNlU2l6ZShvdXRwdXQuc2NyaXB0KTtcbiAgICAgIH0sIDApO1xuXG4gICAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvY1Vuc2FmZSh0eE91dHNTaXplKSk7XG5cbiAgICAgIHRoaXMub3V0cy5mb3JFYWNoKGZ1bmN0aW9uIChvdXQpIHtcbiAgICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDY0KG91dC52YWx1ZSk7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKG91dC5zY3JpcHQpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBnZXRCbGFrZTJiSGFzaChidWZmZXJXcml0ZXIuYnVmZmVyLCAnWmNhc2hPdXRwdXRzSGFzaCcpO1xuICAgIH0gZWxzZSBpZiAoKGhhc2hUeXBlICYgMHgxZikgPT09IFRyYW5zYWN0aW9uLlNJR0hBU0hfU0lOR0xFICYmIGluSW5kZXggPCB0aGlzLm91dHMubGVuZ3RoKSB7XG4gICAgICAvLyBXcml0ZSBvbmx5IHRoZSBvdXRwdXQgc3BlY2lmaWVkIGluIGluSW5kZXhcbiAgICAgIGNvbnN0IG91dHB1dCA9IHRoaXMub3V0c1tpbkluZGV4XTtcblxuICAgICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihCdWZmZXIuYWxsb2NVbnNhZmUoOCArIHZhclNsaWNlU2l6ZShvdXRwdXQuc2NyaXB0KSkpO1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDY0KG91dHB1dC52YWx1ZSk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJTbGljZShvdXRwdXQuc2NyaXB0KTtcblxuICAgICAgcmV0dXJuIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcldyaXRlci5idWZmZXIsICdaY2FzaE91dHB1dHNIYXNoJyk7XG4gICAgfVxuICAgIHJldHVybiBaRVJPO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhc2ggdHJhbnNhY3Rpb24gZm9yIHNpZ25pbmcgYSB0cmFuc3BhcmVudCB0cmFuc2FjdGlvbiBpbiBaY2FzaC4gUHJvdGVjdGVkIHRyYW5zYWN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZC5cbiAgICogQHBhcmFtIGluSW5kZXhcbiAgICogQHBhcmFtIHByZXZPdXRTY3JpcHRcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcmV0dXJucyBCdWZmZXIgQkxBS0UyYiBoYXNoXG4gICAqL1xuICBoYXNoRm9yU2lnbmF0dXJlQnlOZXR3b3JrKGluSW5kZXg6IG51bWJlciwgcHJldk91dFNjcmlwdDogQnVmZmVyLCB2YWx1ZTogbnVtYmVyLCBoYXNoVHlwZTogbnVtYmVyKTogQnVmZmVyIHtcbiAgICB0eXBlZm9yY2UodHlwZXMudHVwbGUodHlwZXMuVUludDMyLCB0eXBlcy5CdWZmZXIsIHR5cGVzLk51bWJlciksIGFyZ3VtZW50cyk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChpbkluZGV4ID49IHRoaXMuaW5zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnB1dCBpbmRleCBpcyBvdXQgb2YgcmFuZ2UnKTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghdGhpcy5pc092ZXJ3aW50ZXJDb21wYXRpYmxlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgdmVyc2lvbiAke3RoaXMudmVyc2lvbn1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNoUHJldm91dHMgPSB0aGlzLmdldFByZXZvdXRIYXNoKGhhc2hUeXBlKTtcbiAgICBjb25zdCBoYXNoU2VxdWVuY2UgPSB0aGlzLmdldFNlcXVlbmNlSGFzaChoYXNoVHlwZSk7XG4gICAgY29uc3QgaGFzaE91dHB1dHMgPSB0aGlzLmdldE91dHB1dHNIYXNoKGhhc2hUeXBlLCBpbkluZGV4KTtcbiAgICBjb25zdCBoYXNoSm9pblNwbGl0cyA9IFpFUk87XG4gICAgY29uc3QgaGFzaFNoaWVsZGVkU3BlbmRzID0gWkVSTztcbiAgICBjb25zdCBoYXNoU2hpZWxkZWRPdXRwdXRzID0gWkVSTztcblxuICAgIGxldCBiYXNlQnVmZmVyU2l6ZSA9IDA7XG4gICAgYmFzZUJ1ZmZlclNpemUgKz0gNCAqIDU7IC8vIGhlYWRlciwgblZlcnNpb25Hcm91cElkLCBsb2NrX3RpbWUsIG5FeHBpcnlIZWlnaHQsIGhhc2hUeXBlXG4gICAgYmFzZUJ1ZmZlclNpemUgKz0gMzIgKiA0OyAvLyAyNTYgaGFzaGVzOiBoYXNoUHJldm91dHMsIGhhc2hTZXF1ZW5jZSwgaGFzaE91dHB1dHMsIGhhc2hKb2luU3BsaXRzXG4gICAgYmFzZUJ1ZmZlclNpemUgKz0gNCAqIDI7IC8vIGlucHV0LmluZGV4LCBpbnB1dC5zZXF1ZW5jZVxuICAgIGJhc2VCdWZmZXJTaXplICs9IDg7IC8vIHZhbHVlXG4gICAgYmFzZUJ1ZmZlclNpemUgKz0gMzI7IC8vIGlucHV0Lmhhc2hcbiAgICBiYXNlQnVmZmVyU2l6ZSArPSB2YXJTbGljZVNpemUocHJldk91dFNjcmlwdCk7IC8vIHByZXZPdXRTY3JpcHRcbiAgICBpZiAodGhpcy5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJhc2VCdWZmZXJTaXplICs9IDMyICogMjsgLy8gaGFzaFNoaWVsZGVkU3BlbmRzIGFuZCBoYXNoU2hpZWxkZWRPdXRwdXRzXG4gICAgICBiYXNlQnVmZmVyU2l6ZSArPSA4OyAvLyB2YWx1ZUJhbGFuY2VcbiAgICB9XG5cbiAgICBjb25zdCBtYXNrID0gdGhpcy5vdmVyd2ludGVyZWQgPyAxIDogMDtcbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLnZlcnNpb24gfCAobWFzayA8PCAzMSk7XG5cbiAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvYyhiYXNlQnVmZmVyU2l6ZSkpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZUludDMyKGhlYWRlcik7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMudmVyc2lvbkdyb3VwSWQpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGhhc2hQcmV2b3V0cyk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoaGFzaFNlcXVlbmNlKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShoYXNoT3V0cHV0cyk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoaGFzaEpvaW5TcGxpdHMpO1xuICAgIGlmICh0aGlzLmlzU2FwbGluZ0NvbXBhdGlibGUoKSkge1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoaGFzaFNoaWVsZGVkU3BlbmRzKTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGhhc2hTaGllbGRlZE91dHB1dHMpO1xuICAgIH1cbiAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodGhpcy5sb2NrdGltZSk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMuZXhwaXJ5SGVpZ2h0KTtcbiAgICBpZiAodGhpcy5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKFZBTFVFX0lOVDY0X1pFUk8pO1xuICAgIH1cbiAgICBidWZmZXJXcml0ZXIud3JpdGVJbnQzMihoYXNoVHlwZSk7XG5cbiAgICAvLyBUaGUgaW5wdXQgYmVpbmcgc2lnbmVkIChyZXBsYWNpbmcgdGhlIHNjcmlwdFNpZyB3aXRoIHNjcmlwdENvZGUgKyBhbW91bnQpXG4gICAgLy8gVGhlIHByZXZvdXQgbWF5IGFscmVhZHkgYmUgY29udGFpbmVkIGluIGhhc2hQcmV2b3V0LCBhbmQgdGhlIG5TZXF1ZW5jZVxuICAgIC8vIG1heSBhbHJlYWR5IGJlIGNvbnRhaW5lZCBpbiBoYXNoU2VxdWVuY2UuXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmluc1tpbkluZGV4XTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShpbnB1dC5oYXNoKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIoaW5wdXQuaW5kZXgpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKHByZXZPdXRTY3JpcHQpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQ2NCh2YWx1ZSk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKGlucHV0LnNlcXVlbmNlKTtcblxuICAgIGNvbnN0IHBlcnNvbmFsaXphdGlvbiA9IEJ1ZmZlci5hbGxvYygxNik7XG4gICAgY29uc3QgcHJlZml4ID0gJ1pjYXNoU2lnSGFzaCc7XG4gICAgcGVyc29uYWxpemF0aW9uLndyaXRlKHByZWZpeCk7XG4gICAgcGVyc29uYWxpemF0aW9uLndyaXRlVUludDMyTEUodGhpcy5jb25zZW5zdXNCcmFuY2hJZCwgcHJlZml4Lmxlbmd0aCk7XG5cbiAgICByZXR1cm4gZ2V0Qmxha2UyYkhhc2goYnVmZmVyV3JpdGVyLmJ1ZmZlciwgcGVyc29uYWxpemF0aW9uKTtcbiAgfVxuXG4gIHRvQnVmZmVyKGJ1ZmZlcj86IEJ1ZmZlciwgaW5pdGlhbE9mZnNldCA9IDApOiBCdWZmZXIge1xuICAgIGlmICghYnVmZmVyKSBidWZmZXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUodGhpcy5ieXRlTGVuZ3RoKCkpO1xuXG4gICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihidWZmZXIsIGluaXRpYWxPZmZzZXQpO1xuXG4gICAgaWYgKHRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICBjb25zdCBtYXNrID0gdGhpcy5vdmVyd2ludGVyZWQgPyAxIDogMDtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZUludDMyKHRoaXMudmVyc2lvbiB8IChtYXNrIDw8IDMxKSk7IC8vIFNldCBvdmVyd2ludGVyIGJpdFxuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMudmVyc2lvbkdyb3VwSWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVJbnQzMih0aGlzLnZlcnNpb24pO1xuICAgIH1cblxuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhckludCh0aGlzLmlucy5sZW5ndGgpO1xuXG4gICAgdGhpcy5pbnMuZm9yRWFjaChmdW5jdGlvbiAodHhJbikge1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UodHhJbi5oYXNoKTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eEluLmluZGV4KTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKHR4SW4uc2NyaXB0KTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eEluLnNlcXVlbmNlKTtcbiAgICB9KTtcblxuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhckludCh0aGlzLm91dHMubGVuZ3RoKTtcbiAgICB0aGlzLm91dHMuZm9yRWFjaChmdW5jdGlvbiAodHhPdXQpIHtcbiAgICAgIGlmICgodHhPdXQgYXMgYW55KS52YWx1ZUJ1ZmZlcikge1xuICAgICAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZSgodHhPdXQgYXMgYW55KS52YWx1ZUJ1ZmZlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50NjQodHhPdXQudmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJTbGljZSh0eE91dC5zY3JpcHQpO1xuICAgIH0pO1xuXG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMubG9ja3RpbWUpO1xuXG4gICAgaWYgKHRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodGhpcy5leHBpcnlIZWlnaHQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzU2FwbGluZ0NvbXBhdGlibGUoKSkge1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoVkFMVUVfSU5UNjRfWkVSTyk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoMCk7IC8vIHZTaGllbGRlZFNwZW5kTGVuZ3RoXG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoMCk7IC8vIHZTaGllbGRlZE91dHB1dExlbmd0aFxuICAgIH1cblxuICAgIGlmICh0aGlzLnN1cHBvcnRzSm9pblNwbGl0cygpKSB7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoMCk7IC8vIGpvaW5zU3BsaXRzIGxlbmd0aFxuICAgIH1cblxuICAgIGlmIChpbml0aWFsT2Zmc2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBidWZmZXIuc2xpY2UoaW5pdGlhbE9mZnNldCwgYnVmZmVyV3JpdGVyLm9mZnNldCk7XG4gICAgfVxuICAgIHJldHVybiBidWZmZXI7XG4gIH1cblxuICBnZXRIYXNoKGZvcldpdG5lc3M/OiBib29sZWFuKTogQnVmZmVyIHtcbiAgICBpZiAoZm9yV2l0bmVzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFyZ3VtZW50YCk7XG4gICAgfVxuICAgIHJldHVybiBjcnlwdG8uaGFzaDI1Nih0aGlzLnRvQnVmZmVyKCkpO1xuICB9XG5cbiAgY2xvbmUoKTogWmNhc2hUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBaY2FzaFRyYW5zYWN0aW9uKHRoaXMubmV0d29yaywgdGhpcyk7XG4gIH1cbn1cbiJdfQ==

@@ -80,3 +80,3 @@ "use strict";

if (typeof scriptPubKey === 'string') {
scriptPubKey = (0, address_1.toOutputScript)(scriptPubKey, this.network);
scriptPubKey = address_1.toOutputScript(scriptPubKey, this.network);
}

@@ -87,2 +87,2 @@ return super.addOutput(scriptPubKey, value);

exports.ZcashTransactionBuilder = ZcashTransactionBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vemNhc2gvWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQWlEO0FBQ2pELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUV2QywyQ0FBMkM7QUFDM0MseURBQXNEO0FBRXRELHNFQUFtRTtBQUNuRSx1Q0FBMkM7QUFFM0MsTUFBYSx1QkFBd0IsU0FBUSwrQ0FBd0M7SUFDbkYsWUFBWSxPQUFxQjtRQUMvQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELHdCQUF3QixDQUFDLE9BQWdCLEVBQUUsRUFBZ0I7UUFDekQsT0FBTyxJQUFJLG1DQUFnQixDQUFDLE9BQXVCLEVBQUUsRUFBc0IsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQTZCO1FBQ2xELE1BQU0sR0FBRyxHQUFHLElBQUksdUJBQXVCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTdELDBCQUEwQjtRQUMxQixHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRSxHQUFHLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0QyxxRkFBcUY7UUFDckYsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEVBQUU7WUFDbkMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNsRCxHQUFHLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMvQztRQUVELEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFX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QUM7U0FDdEU7UUFFRCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQTVGRCwwREE0RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvdHlwZXMnO1xuY29uc3QgdHlwZWZvcmNlID0gcmVxdWlyZSgndHlwZWZvcmNlJyk7XG5cbmltcG9ydCAqIGFzIG5ldHdvcmtzIGZyb20gJy4uLy4uL25ldHdvcmtzJztcbmltcG9ydCB7IFpjYXNoVHJhbnNhY3Rpb24gfSBmcm9tICcuL1pjYXNoVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgTmV0d29yaywgWmNhc2hOZXR3b3JrIH0gZnJvbSAnLi4vLi4vbmV0d29ya1R5cGVzJztcbmltcG9ydCB7IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi9VdHhvVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IHRvT3V0cHV0U2NyaXB0IH0gZnJvbSAnLi9hZGRyZXNzJztcblxuZXhwb3J0IGNsYXNzIFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxaY2FzaFRyYW5zYWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKG5ldHdvcms6IFpjYXNoTmV0d29yaykge1xuICAgIHN1cGVyKG5ldHdvcmspO1xuICB9XG5cbiAgY3JlYXRlSW5pdGlhbFRyYW5zYWN0aW9uKG5ldHdvcms6IE5ldHdvcmssIHR4PzogVHJhbnNhY3Rpb24pOiBaY2FzaFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFpjYXNoVHJhbnNhY3Rpb24obmV0d29yayBhcyBaY2FzaE5ldHdvcmssIHR4IGFzIFpjYXNoVHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgc3RhdGljIGZyb21UcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogWmNhc2hUcmFuc2FjdGlvbik6IFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCB0eGIgPSBuZXcgWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIodHJhbnNhY3Rpb24ubmV0d29yayk7XG5cbiAgICAvLyBDb3B5IHRyYW5zYWN0aW9uIGZpZWxkc1xuICAgIHR4Yi5zZXRWZXJzaW9uKHRyYW5zYWN0aW9uLnZlcnNpb24sICEhdHJhbnNhY3Rpb24ub3ZlcndpbnRlcmVkKTtcbiAgICB0eGIuc2V0TG9ja1RpbWUodHJhbnNhY3Rpb24ubG9ja3RpbWUpO1xuXG4gICAgLy8gQ29weSBaY2FzaCBvdmVyd2ludGVyIGZpZWxkcy4gT21pdHRlZCBpZiB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBpcyBub3QgZm9yIFpjYXNoLlxuICAgIGlmICh0eGIudHguaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICB0eGIuc2V0VmVyc2lvbkdyb3VwSWQodHJhbnNhY3Rpb24udmVyc2lvbkdyb3VwSWQpO1xuICAgICAgdHhiLnNldEV4cGlyeUhlaWdodCh0cmFuc2FjdGlvbi5leHBpcnlIZWlnaHQpO1xuICAgIH1cblxuICAgIHR4Yi5zZXRDb25zZW5zdXNCcmFuY2hJZCh0cmFuc2FjdGlvbi5jb25zZW5zdXNCcmFuY2hJZCk7XG5cbiAgICAvLyBDb3B5IG91dHB1dHMgKGRvbmUgZmlyc3QgdG8gYXZvaWQgc2lnbmF0dXJlIGludmFsaWRhdGlvbilcbiAgICB0cmFuc2FjdGlvbi5vdXRzLmZvckVhY2goZnVuY3Rpb24gKHR4T3V0KSB7XG4gICAgICB0eGIuYWRkT3V0cHV0KHR4T3V0LnNjcmlwdCwgdHhPdXQudmFsdWUpO1xuICAgIH0pO1xuXG4gICAgLy8gQ29weSBpbnB1dHNcbiAgICB0cmFuc2FjdGlvbi5pbnMuZm9yRWFjaChmdW5jdGlvbiAodHhJbikge1xuICAgICAgKHR4YiBhcyBhbnkpLl9fYWRkSW5wdXRVbnNhZmUodHhJbi5oYXNoLCB0eEluLmluZGV4LCB7XG4gICAgICAgIHNlcXVlbmNlOiB0eEluLnNlcXVlbmNlLFxuICAgICAgICBzY3JpcHQ6IHR4SW4uc2NyaXB0LFxuICAgICAgICB3aXRuZXNzOiB0eEluLndpdG5lc3MsXG4gICAgICAgIHZhbHVlOiAodHhJbiBhcyBhbnkpLnZhbHVlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHhiO1xuICB9XG5cbiAgc2V0VmVyc2lvbih2ZXJzaW9uOiBudW1iZXIsIG92ZXJ3aW50ZXIgPSB0cnVlKTogdm9pZCB7XG4gICAgdHlwZWZvcmNlKHR5cGVzLlVJbnQzMiwgdmVyc2lvbik7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoIW5ldHdvcmtzLnpjYXNoLmNvbnNlbnN1c0JyYW5jaElkLmhhc093blByb3BlcnR5KHRoaXMudHgudmVyc2lvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgWmNhc2ggdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy50eC5vdmVyd2ludGVyZWQgPSBvdmVyd2ludGVyID8gMSA6IDA7XG4gICAgdGhpcy50eC5jb25zZW5zdXNCcmFuY2hJZCA9IG5ldHdvcmtzLnpjYXNoLmNvbnNlbnN1c0JyYW5jaElkW3ZlcnNpb25dO1xuICAgIHRoaXMudHgudmVyc2lvbiA9IHZlcnNpb247XG4gIH1cblxuICBzZXRDb25zZW5zdXNCcmFuY2hJZChjb25zZW5zdXNCcmFuY2hJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgdHlwZWZvcmNlKHR5cGVzLlVJbnQzMiwgY29uc2Vuc3VzQnJhbmNoSWQpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKFxuICAgICAgISh0aGlzIGFzIGFueSkuX19JTlBVVFMuZXZlcnkoZnVuY3Rpb24gKGlucHV0OiB7IHNpZ25hdHVyZXM6IHVua25vd24gfSkge1xuICAgICAgICByZXR1cm4gaW5wdXQuc2lnbmF0dXJlcyA9PT0gdW5kZWZpbmVkO1xuICAgICAgfSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2hhbmdpbmcgdGhlIGNvbnNlbnN1c0JyYW5jaElkIGZvciBhIHBhcnRpYWxseSBzaWduZWQgdHJhbnNhY3Rpb24gd291bGQgaW52YWxpZGF0ZSBzaWduYXR1cmVzJyk7XG4gICAgfVxuICAgIHRoaXMudHguY29uc2Vuc3VzQnJhbmNoSWQgPSBjb25zZW5zdXNCcmFuY2hJZDtcbiAgfVxuXG4gIHNldFZlcnNpb25Hcm91cElkKHZlcnNpb25Hcm91cElkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0eXBlZm9yY2UodHlwZXMuVUludDMyLCB2ZXJzaW9uR3JvdXBJZCk7XG4gICAgKHRoaXMgYXMgYW55KS50eC52ZXJzaW9uR3JvdXBJZCA9IHZlcnNpb25Hcm91cElkO1xuICB9XG5cbiAgc2V0RXhwaXJ5SGVpZ2h0KGV4cGlyeUhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgdHlwZWZvcmNlKHR5cGVzLlVJbnQzMiwgZXhwaXJ5SGVpZ2h0KTtcbiAgICB0aGlzLnR4LmV4cGlyeUhlaWdodCA9IGV4cGlyeUhlaWdodDtcbiAgfVxuXG4gIGJ1aWxkKCk6IFpjYXNoVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBzdXBlci5idWlsZCgpIGFzIFpjYXNoVHJhbnNhY3Rpb247XG4gIH1cblxuICBidWlsZEluY29tcGxldGUoKTogWmNhc2hUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHN1cGVyLmJ1aWxkSW5jb21wbGV0ZSgpIGFzIFpjYXNoVHJhbnNhY3Rpb247XG4gIH1cblxuICBhZGRPdXRwdXQoc2NyaXB0UHViS2V5OiBzdHJpbmcgfCBCdWZmZXIsIHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIC8vIEF0dGVtcHQgdG8gZ2V0IGEgc2NyaXB0IGlmIGl0J3MgYSBiYXNlNTggb3IgYmVjaDMyIGFkZHJlc3Mgc3RyaW5nXG4gICAgaWYgKHR5cGVvZiBzY3JpcHRQdWJLZXkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBzY3JpcHRQdWJLZXkgPSB0b091dHB1dFNjcmlwdChzY3JpcHRQdWJLZXksIHRoaXMubmV0d29yayBhcyBOZXR3b3JrKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuYWRkT3V0cHV0KHNjcmlwdFB1YktleSwgdmFsdWUpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vemNhc2gvWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQWlEO0FBQ2pELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUV2QywyQ0FBMkM7QUFDM0MseURBQXNEO0FBRXRELHNFQUFtRTtBQUNuRSx1Q0FBMkM7QUFFM0MsTUFBYSx1QkFBd0IsU0FBUSwrQ0FBd0M7SUFDbkYsWUFBWSxPQUFxQjtRQUMvQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELHdCQUF3QixDQUFDLE9BQWdCLEVBQUUsRUFBZ0I7UUFDekQsT0FBTyxJQUFJLG1DQUFnQixDQUFDLE9BQXVCLEVBQUUsRUFBc0IsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQTZCO1FBQ2xELE1BQU0sR0FBRyxHQUFHLElBQUksdUJBQXVCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTdELDBCQUEwQjtRQUMxQixHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRSxHQUFHLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0QyxxRkFBcUY7UUFDckYsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEVBQUU7WUFDbkMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNsRCxHQUFHLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMvQztRQUVELEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFX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Q3RFO1FBRUQsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUE1RkQsMERBNEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL3R5cGVzJztcbmNvbnN0IHR5cGVmb3JjZSA9IHJlcXVpcmUoJ3R5cGVmb3JjZScpO1xuXG5pbXBvcnQgKiBhcyBuZXR3b3JrcyBmcm9tICcuLi8uLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBaY2FzaFRyYW5zYWN0aW9uIH0gZnJvbSAnLi9aY2FzaFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IE5ldHdvcmssIFpjYXNoTmV0d29yayB9IGZyb20gJy4uLy4uL25ldHdvcmtUeXBlcyc7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vVXR4b1RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyB0b091dHB1dFNjcmlwdCB9IGZyb20gJy4vYWRkcmVzcyc7XG5cbmV4cG9ydCBjbGFzcyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8WmNhc2hUcmFuc2FjdGlvbj4ge1xuICBjb25zdHJ1Y3RvcihuZXR3b3JrOiBaY2FzaE5ldHdvcmspIHtcbiAgICBzdXBlcihuZXR3b3JrKTtcbiAgfVxuXG4gIGNyZWF0ZUluaXRpYWxUcmFuc2FjdGlvbihuZXR3b3JrOiBOZXR3b3JrLCB0eD86IFRyYW5zYWN0aW9uKTogWmNhc2hUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBaY2FzaFRyYW5zYWN0aW9uKG5ldHdvcmsgYXMgWmNhc2hOZXR3b3JrLCB0eCBhcyBaY2FzaFRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFpjYXNoVHJhbnNhY3Rpb24pOiBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgdHhiID0gbmV3IFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyKHRyYW5zYWN0aW9uLm5ldHdvcmspO1xuXG4gICAgLy8gQ29weSB0cmFuc2FjdGlvbiBmaWVsZHNcbiAgICB0eGIuc2V0VmVyc2lvbih0cmFuc2FjdGlvbi52ZXJzaW9uLCAhIXRyYW5zYWN0aW9uLm92ZXJ3aW50ZXJlZCk7XG4gICAgdHhiLnNldExvY2tUaW1lKHRyYW5zYWN0aW9uLmxvY2t0aW1lKTtcblxuICAgIC8vIENvcHkgWmNhc2ggb3ZlcndpbnRlciBmaWVsZHMuIE9taXR0ZWQgaWYgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgaXMgbm90IGZvciBaY2FzaC5cbiAgICBpZiAodHhiLnR4LmlzT3ZlcndpbnRlckNvbXBhdGlibGUoKSkge1xuICAgICAgdHhiLnNldFZlcnNpb25Hcm91cElkKHRyYW5zYWN0aW9uLnZlcnNpb25Hcm91cElkKTtcbiAgICAgIHR4Yi5zZXRFeHBpcnlIZWlnaHQodHJhbnNhY3Rpb24uZXhwaXJ5SGVpZ2h0KTtcbiAgICB9XG5cbiAgICB0eGIuc2V0Q29uc2Vuc3VzQnJhbmNoSWQodHJhbnNhY3Rpb24uY29uc2Vuc3VzQnJhbmNoSWQpO1xuXG4gICAgLy8gQ29weSBvdXRwdXRzIChkb25lIGZpcnN0IHRvIGF2b2lkIHNpZ25hdHVyZSBpbnZhbGlkYXRpb24pXG4gICAgdHJhbnNhY3Rpb24ub3V0cy5mb3JFYWNoKGZ1bmN0aW9uICh0eE91dCkge1xuICAgICAgdHhiLmFkZE91dHB1dCh0eE91dC5zY3JpcHQsIHR4T3V0LnZhbHVlKTtcbiAgICB9KTtcblxuICAgIC8vIENvcHkgaW5wdXRzXG4gICAgdHJhbnNhY3Rpb24uaW5zLmZvckVhY2goZnVuY3Rpb24gKHR4SW4pIHtcbiAgICAgICh0eGIgYXMgYW55KS5fX2FkZElucHV0VW5zYWZlKHR4SW4uaGFzaCwgdHhJbi5pbmRleCwge1xuICAgICAgICBzZXF1ZW5jZTogdHhJbi5zZXF1ZW5jZSxcbiAgICAgICAgc2NyaXB0OiB0eEluLnNjcmlwdCxcbiAgICAgICAgd2l0bmVzczogdHhJbi53aXRuZXNzLFxuICAgICAgICB2YWx1ZTogKHR4SW4gYXMgYW55KS52YWx1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHR4YjtcbiAgfVxuXG4gIHNldFZlcnNpb24odmVyc2lvbjogbnVtYmVyLCBvdmVyd2ludGVyID0gdHJ1ZSk6IHZvaWQge1xuICAgIHR5cGVmb3JjZSh0eXBlcy5VSW50MzIsIHZlcnNpb24pO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKCFuZXR3b3Jrcy56Y2FzaC5jb25zZW5zdXNCcmFuY2hJZC5oYXNPd25Qcm9wZXJ0eSh0aGlzLnR4LnZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIFpjYXNoIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHRoaXMudHgub3ZlcndpbnRlcmVkID0gb3ZlcndpbnRlciA/IDEgOiAwO1xuICAgIHRoaXMudHguY29uc2Vuc3VzQnJhbmNoSWQgPSBuZXR3b3Jrcy56Y2FzaC5jb25zZW5zdXNCcmFuY2hJZFt2ZXJzaW9uXTtcbiAgICB0aGlzLnR4LnZlcnNpb24gPSB2ZXJzaW9uO1xuICB9XG5cbiAgc2V0Q29uc2Vuc3VzQnJhbmNoSWQoY29uc2Vuc3VzQnJhbmNoSWQ6IG51bWJlcik6IHZvaWQge1xuICAgIHR5cGVmb3JjZSh0eXBlcy5VSW50MzIsIGNvbnNlbnN1c0JyYW5jaElkKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChcbiAgICAgICEodGhpcyBhcyBhbnkpLl9fSU5QVVRTLmV2ZXJ5KGZ1bmN0aW9uIChpbnB1dDogeyBzaWduYXR1cmVzOiB1bmtub3duIH0pIHtcbiAgICAgICAgcmV0dXJuIGlucHV0LnNpZ25hdHVyZXMgPT09IHVuZGVmaW5lZDtcbiAgICAgIH0pXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NoYW5naW5nIHRoZSBjb25zZW5zdXNCcmFuY2hJZCBmb3IgYSBwYXJ0aWFsbHkgc2lnbmVkIHRyYW5zYWN0aW9uIHdvdWxkIGludmFsaWRhdGUgc2lnbmF0dXJlcycpO1xuICAgIH1cbiAgICB0aGlzLnR4LmNvbnNlbnN1c0JyYW5jaElkID0gY29uc2Vuc3VzQnJhbmNoSWQ7XG4gIH1cblxuICBzZXRWZXJzaW9uR3JvdXBJZCh2ZXJzaW9uR3JvdXBJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgdHlwZWZvcmNlKHR5cGVzLlVJbnQzMiwgdmVyc2lvbkdyb3VwSWQpO1xuICAgICh0aGlzIGFzIGFueSkudHgudmVyc2lvbkdyb3VwSWQgPSB2ZXJzaW9uR3JvdXBJZDtcbiAgfVxuXG4gIHNldEV4cGlyeUhlaWdodChleHBpcnlIZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgIHR5cGVmb3JjZSh0eXBlcy5VSW50MzIsIGV4cGlyeUhlaWdodCk7XG4gICAgdGhpcy50eC5leHBpcnlIZWlnaHQgPSBleHBpcnlIZWlnaHQ7XG4gIH1cblxuICBidWlsZCgpOiBaY2FzaFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gc3VwZXIuYnVpbGQoKSBhcyBaY2FzaFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgYnVpbGRJbmNvbXBsZXRlKCk6IFpjYXNoVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBzdXBlci5idWlsZEluY29tcGxldGUoKSBhcyBaY2FzaFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgYWRkT3V0cHV0KHNjcmlwdFB1YktleTogc3RyaW5nIHwgQnVmZmVyLCB2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAvLyBBdHRlbXB0IHRvIGdldCBhIHNjcmlwdCBpZiBpdCdzIGEgYmFzZTU4IG9yIGJlY2gzMiBhZGRyZXNzIHN0cmluZ1xuICAgIGlmICh0eXBlb2Ygc2NyaXB0UHViS2V5ID09PSAnc3RyaW5nJykge1xuICAgICAgc2NyaXB0UHViS2V5ID0gdG9PdXRwdXRTY3JpcHQoc2NyaXB0UHViS2V5LCB0aGlzLm5ldHdvcmsgYXMgTmV0d29yayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyLmFkZE91dHB1dChzY3JpcHRQdWJLZXksIHZhbHVlKTtcbiAgfVxufVxuIl19
{
"name": "@bitgo/utxo-lib",
"version": "2.2.0-rc.1",
"version": "2.2.0-rc.2",
"description": "Client-side Bitcoin JavaScript library",

@@ -61,7 +61,6 @@ "main": "./dist/src/index.js",

"nyc": "^15.1.0",
"ts-node": "^9.1.1",
"typescript": "^4.4.3"
"ts-node": "^9.1.1"
},
"license": "MIT",
"gitHead": "6406cfe05025f09949e54acd2fce78ef86d3bac7"
"gitHead": "68beff62d5b1bb3e9c3107caf7cdb380686f7b0e"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc