@bitgo-beta/utxo-lib 8.0.3-beta.1994 → 8.0.3-beta.1995
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashBufferutils.js +6 -7
- package/dist/src/bitgo/zcash/ZcashTransaction.d.ts +1 -0
- package/dist/src/bitgo/zcash/ZcashTransaction.d.ts.map +1 -1
- package/dist/src/bitgo/zcash/ZcashTransaction.js +7 -2
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZcashBufferutils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/zcash/ZcashBufferutils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAA+B,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,eAAO,MAAM,gBAAgB,qBAAyC,CAAC;AAEvE,wBAAgB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,EAAE,CAahE;AAED,wBAAgB,WAAW,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACzD,YAAY,EAAE,YAAY,EAC1B,UAAU,GAAE,QAAQ,GAAG,QAAmB,GACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAUrB;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAKhE;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAOvE;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAIxE;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAIvE;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAIzE;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAC7B,UAAU,GAAE,QAAQ,GAAG,QAAmB,GACzC,IAAI,
|
|
1
|
+
{"version":3,"file":"ZcashBufferutils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/zcash/ZcashBufferutils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAA+B,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,eAAO,MAAM,gBAAgB,qBAAyC,CAAC;AAEvE,wBAAgB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,EAAE,CAahE;AAED,wBAAgB,WAAW,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACzD,YAAY,EAAE,YAAY,EAC1B,UAAU,GAAE,QAAQ,GAAG,QAAmB,GACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAUrB;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAKhE;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAOvE;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAIxE;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAIvE;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAIzE;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAC7B,UAAU,GAAE,QAAQ,GAAG,QAAmB,GACzC,IAAI,CAwBN;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAC7B,UAAU,GAAE,QAAQ,GAAG,QAAmB,GACzC,IAAI,CAaN;AAED,wBAAgB,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAQ5E;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,GACxB,IAAI,CAWN;AAED,wBAAgB,UAAU,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACxD,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAC5B,IAAI,CAoBN;AAED,wBAAgB,UAAU,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACxD,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAC5B,IAAI,CAYN"}
|
|
@@ -79,11 +79,10 @@ function fromBufferV4(bufferReader, tx, amountType = 'number') {
|
|
|
79
79
|
tx.expiryHeight = bufferReader.readUInt32();
|
|
80
80
|
}
|
|
81
81
|
if (tx.isSaplingCompatible()) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
82
|
+
// valueBalance is a signed int64; negative for t->z shielding transactions.
|
|
83
|
+
// Store raw bytes so toBuffer/getId can round-trip the tx without mutation.
|
|
84
|
+
// https://github.com/zcash/zcash/blob/v4.5.1/src/primitives/transaction.h#L283
|
|
85
|
+
tx.saplingValueBalance = bufferReader.readSlice(8);
|
|
87
86
|
// https://github.com/zcash/zcash/blob/v4.5.1/src/primitives/transaction.h#L863
|
|
88
87
|
readEmptySaplingBundle(bufferReader);
|
|
89
88
|
}
|
|
@@ -134,7 +133,7 @@ function toBufferV4(bufferWriter, tx) {
|
|
|
134
133
|
bufferWriter.writeUInt32(tx.expiryHeight);
|
|
135
134
|
}
|
|
136
135
|
if (tx.isSaplingCompatible()) {
|
|
137
|
-
bufferWriter.writeSlice(exports.VALUE_INT64_ZERO);
|
|
136
|
+
bufferWriter.writeSlice(tx.saplingValueBalance ?? exports.VALUE_INT64_ZERO);
|
|
138
137
|
bufferWriter.writeVarInt(0); // vShieldedSpendLength
|
|
139
138
|
bufferWriter.writeVarInt(0); // vShieldedOutputLength
|
|
140
139
|
}
|
|
@@ -154,4 +153,4 @@ function toBufferV5(bufferWriter, tx) {
|
|
|
154
153
|
// https://github.com/zcash/zcash/blob/v4.5.1/src/primitives/transaction.h#L1081
|
|
155
154
|
writeEmptyOrchardBundle(bufferWriter);
|
|
156
155
|
}
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hCdWZmZXJ1dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby96Y2FzaC9aY2FzaEJ1ZmZlcnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWNBLGdDQWFDO0FBRUQsa0NBYUM7QUFFRCwwQ0FLQztBQUVELHdEQU9DO0FBRUQsMERBSUM7QUFFRCx3REFJQztBQUVELDREQUlDO0FBRUQsb0NBNkJDO0FBRUQsb0NBaUJDO0FBRUQsa0NBUUM7QUFFRCxvQ0FjQztBQUVELGdDQXVCQztBQUVELGdDQWVDO0FBeExELHlEQUFtRjtBQUV0RSxRQUFBLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFdkUsU0FBZ0IsVUFBVSxDQUFDLFlBQTBCO0lBQ25ELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN6QyxNQUFNLEdBQUcsR0FBYyxFQUFFLENBQUM7SUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2hDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDUCxJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDaEMsTUFBTSxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUU7WUFDbkMsUUFBUSxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDbkMsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUN6QixZQUEwQixFQUMxQixhQUFrQyxRQUFRO0lBRTFDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMxQyxNQUFNLElBQUksR0FBd0IsRUFBRSxDQUFDO0lBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1IsS0FBSyxFQUFFLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBWTtZQUN6RyxNQUFNLEVBQUUsWUFBWSxDQUFDLFlBQVksRUFBRTtTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLFlBQTBCO0lBQ3hELE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNaLE1BQU0sSUFBSSw4Q0FBMkIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsWUFBMEI7SUFDL0QsMEVBQTBFO0lBQzFFLGlKQUFpSjtJQUNqSixNQUFNLENBQUMsR0FBRyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksOENBQTJCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM5RCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLFlBQTBCO0lBQ2hFLDBFQUEwRTtJQUMxRSxrSkFBa0o7SUFDbEosWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsWUFBMEI7SUFDL0QsK0VBQStFO0lBQy9FLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQztJQUNuRCxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMscUJBQXFCLENBQUM7QUFDdEQsQ0FBQztBQUVELFNBQWdCLHdCQUF3QixDQUFDLFlBQTBCO0lBQ2pFLCtFQUErRTtJQUMvRSxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO0lBQ2pELFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7QUFDcEQsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FDMUIsWUFBMEIsRUFDMUIsRUFBNkIsRUFDN0IsYUFBa0MsUUFBUTtJQUUxQyxvRkFBb0Y7SUFDcEYsRUFBRSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsRUFBRSxDQUFDLElBQUksR0FBRyxXQUFXLENBQVUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3pELEVBQUUsQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXhDLElBQUksRUFBRSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztRQUNoQyxFQUFFLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1FBQzdCLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsd0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQzNDLDBCQUEwQjtZQUMxQixNQUFNLElBQUksOENBQTJCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsK0VBQStFO1FBQy9FLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7UUFDNUIsK0VBQStFO1FBQy9FLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FDMUIsWUFBMEIsRUFDMUIsRUFBNkIsRUFDN0IsYUFBa0MsUUFBUTtJQUUxQywrRUFBK0U7SUFDL0UsRUFBRSxDQUFDLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqRCxFQUFFLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QyxFQUFFLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUU1QywrRUFBK0U7SUFDL0UsRUFBRSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsRUFBRSxDQUFDLElBQUksR0FBRyxXQUFXLENBQVUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXpELCtFQUErRTtJQUMvRSxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLFlBQTBCLEVBQUUsR0FBYztJQUNwRSxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSTtRQUN4QixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFnQixZQUFZLENBQzFCLFlBQTBCLEVBQzFCLElBQXlCO0lBRXpCLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLO1FBQzFCLElBQUssS0FBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLFlBQVksQ0FBQyxVQUFVLENBQUUsS0FBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FDeEIsWUFBMEIsRUFDMUIsRUFBNkI7SUFFN0IsZ0ZBQWdGO0lBQ2hGLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLFlBQVksQ0FBVSxZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXRDLElBQUksRUFBRSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztRQUNoQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1FBQzdCLFlBQVksQ0FBQyxVQUFVLENBQUMsd0JBQWdCLENBQUMsQ0FBQztRQUMxQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCO1FBQ3BELFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7SUFDdkQsQ0FBQztJQUVELElBQUksRUFBRSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztRQUM1QixZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCO0lBQ3BELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUN4QixZQUEwQixFQUMxQixFQUE2QjtJQUU3QixvRkFBb0Y7SUFDcEYsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQyxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxZQUFZLENBQVUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU3QyxnRkFBZ0Y7SUFDaEYsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsZ0ZBQWdGO0lBQ2hGLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRyYW5zYWN0aW9uIChkZSlzZXJpYWxpemF0aW9uIGhlbHBlcnMuXG4gKiBPbmx5IHN1cHBvcnRzIGZ1bGwgdHJhbnNwYXJlbnQgdHJhbnNhY3Rpb25zIHdpdGhvdXQgc2hpZWxkZWQgaW5wdXRzIG9yIG91dHB1dHMuXG4gKlxuICogUmVmZXJlbmNlczpcbiAqIC0gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDc3MVxuICovXG5pbXBvcnQgeyBUeElucHV0LCBUeE91dHB1dCB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0IHsgQnVmZmVyUmVhZGVyLCBCdWZmZXJXcml0ZXIgfSBmcm9tICdiaXRjb2luanMtbGliL3NyYy9idWZmZXJ1dGlscyc7XG5cbmltcG9ydCB7IFVuc3VwcG9ydGVkVHJhbnNhY3Rpb25FcnJvciwgWmNhc2hUcmFuc2FjdGlvbiB9IGZyb20gJy4vWmNhc2hUcmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjb25zdCBWQUxVRV9JTlQ2NF9aRVJPID0gQnVmZmVyLmZyb20oJzAwMDAwMDAwMDAwMDAwMDAnLCAnaGV4Jyk7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkSW5wdXRzKGJ1ZmZlclJlYWRlcjogQnVmZmVyUmVhZGVyKTogVHhJbnB1dFtdIHtcbiAgY29uc3QgdmluTGVuID0gYnVmZmVyUmVhZGVyLnJlYWRWYXJJbnQoKTtcbiAgY29uc3QgaW5zOiBUeElucHV0W10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aW5MZW47ICsraSkge1xuICAgIGlucy5wdXNoKHtcbiAgICAgIGhhc2g6IGJ1ZmZlclJlYWRlci5yZWFkU2xpY2UoMzIpLFxuICAgICAgaW5kZXg6IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCksXG4gICAgICBzY3JpcHQ6IGJ1ZmZlclJlYWRlci5yZWFkVmFyU2xpY2UoKSxcbiAgICAgIHNlcXVlbmNlOiBidWZmZXJSZWFkZXIucmVhZFVJbnQzMigpLFxuICAgICAgd2l0bmVzczogW10sXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGlucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRPdXRwdXRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBidWZmZXJSZWFkZXI6IEJ1ZmZlclJlYWRlcixcbiAgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50JyA9ICdudW1iZXInXG4pOiBUeE91dHB1dDxUTnVtYmVyPltdIHtcbiAgY29uc3Qgdm91dExlbiA9IGJ1ZmZlclJlYWRlci5yZWFkVmFySW50KCk7XG4gIGNvbnN0IG91dHM6IFR4T3V0cHV0PFROdW1iZXI+W10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2b3V0TGVuOyArK2kpIHtcbiAgICBvdXRzLnB1c2goe1xuICAgICAgdmFsdWU6IChhbW91bnRUeXBlID09PSAnYmlnaW50JyA/IGJ1ZmZlclJlYWRlci5yZWFkVUludDY0QmlnSW50KCkgOiBidWZmZXJSZWFkZXIucmVhZFVJbnQ2NCgpKSBhcyBUTnVtYmVyLFxuICAgICAgc2NyaXB0OiBidWZmZXJSZWFkZXIucmVhZFZhclNsaWNlKCksXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG91dHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkRW1wdHlWZWN0b3IoYnVmZmVyUmVhZGVyOiBCdWZmZXJSZWFkZXIpOiB2b2lkIHtcbiAgY29uc3QgbiA9IGJ1ZmZlclJlYWRlci5yZWFkVmFySW50KCk7XG4gIGlmIChuICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkVHJhbnNhY3Rpb25FcnJvcihgZXhwZWN0ZWQgZW1wdHkgdmVjdG9yYCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRFbXB0eU9yY2hhcmRCdW5kbGUoYnVmZmVyUmVhZGVyOiBCdWZmZXJSZWFkZXIpOiB2b2lkIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL29yY2hhcmQuaCNMNjZcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL2xpYnJ1c3R6Y2FzaC9ibG9iL2VkY2RlMjUyZGUyMjFkNDg1MWYxZTUxNDUzMDZjMmNhZjk1NDUzYmMvemNhc2hfcHJpbWl0aXZlcy9zcmMvdHJhbnNhY3Rpb24vY29tcG9uZW50cy9vcmNoYXJkLnJzI0wzNlxuICBjb25zdCB2ID0gYnVmZmVyUmVhZGVyLnJlYWRVSW50OCgpO1xuICBpZiAodiAhPT0gMHgwMCkge1xuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZFRyYW5zYWN0aW9uRXJyb3IoYGV4cGVjdGVkIGJ5dGUgMHgwMGApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUVtcHR5T3JjaGFyZEJ1bmRsZShidWZmZXJXcml0ZXI6IEJ1ZmZlcldyaXRlcik6IHZvaWQge1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC41LjEvc3JjL3ByaW1pdGl2ZXMvb3JjaGFyZC5oI0w2NlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvbGlicnVzdHpjYXNoL2Jsb2IvZWRjZGUyNTJkZTIyMWQ0ODUxZjFlNTE0NTMwNmMyY2FmOTU0NTNiYy96Y2FzaF9wcmltaXRpdmVzL3NyYy90cmFuc2FjdGlvbi9jb21wb25lbnRzL29yY2hhcmQucnMjTDIwMVxuICBidWZmZXJXcml0ZXIud3JpdGVVSW50OCgwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRFbXB0eVNhcGxpbmdCdW5kbGUoYnVmZmVyUmVhZGVyOiBCdWZmZXJSZWFkZXIpOiB2b2lkIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDI4M1xuICByZWFkRW1wdHlWZWN0b3IoYnVmZmVyUmVhZGVyKSAvKiB2U3BlbmRzU2FwbGluZyAqLztcbiAgcmVhZEVtcHR5VmVjdG9yKGJ1ZmZlclJlYWRlcikgLyogdk91dHB1dHNTYXBsaW5nICovO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVFbXB0eVNhbXBsaW5nQnVuZGxlKGJ1ZmZlcldyaXRlcjogQnVmZmVyV3JpdGVyKTogdm9pZCB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0wyODNcbiAgYnVmZmVyV3JpdGVyLndyaXRlVmFySW50KDApIC8qIHZTcGVuZHNTYXBsaW5nICovO1xuICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoMCkgLyogdk91dHB1dHNTYXBsaW5nICovO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbUJ1ZmZlclY0PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBidWZmZXJSZWFkZXI6IEJ1ZmZlclJlYWRlcixcbiAgdHg6IFpjYXNoVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIGFtb3VudFR5cGU6ICdudW1iZXInIHwgJ2JpZ2ludCcgPSAnbnVtYmVyJ1xuKTogdm9pZCB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0w4NTUtTDg1N1xuICB0eC5pbnMgPSByZWFkSW5wdXRzKGJ1ZmZlclJlYWRlcik7XG4gIHR4Lm91dHMgPSByZWFkT3V0cHV0czxUTnVtYmVyPihidWZmZXJSZWFkZXIsIGFtb3VudFR5cGUpO1xuICB0eC5sb2NrdGltZSA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG5cbiAgaWYgKHR4LmlzT3ZlcndpbnRlckNvbXBhdGlibGUoKSkge1xuICAgIHR4LmV4cGlyeUhlaWdodCA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG4gIH1cblxuICBpZiAodHguaXNTYXBsaW5nQ29tcGF0aWJsZSgpKSB7XG4gICAgY29uc3QgdmFsdWVCYWxhbmNlID0gYnVmZmVyUmVhZGVyLnJlYWRTbGljZSg4KTtcbiAgICBpZiAoIXZhbHVlQmFsYW5jZS5lcXVhbHMoVkFMVUVfSU5UNjRfWkVSTykpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRUcmFuc2FjdGlvbkVycm9yKGB2YWx1ZUJhbGFuY2UgbXVzdCBiZSB6ZXJvYCk7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDg2M1xuICAgIHJlYWRFbXB0eVNhcGxpbmdCdW5kbGUoYnVmZmVyUmVhZGVyKTtcbiAgfVxuXG4gIGlmICh0eC5zdXBwb3J0c0pvaW5TcGxpdHMoKSkge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0w4NjlcbiAgICByZWFkRW1wdHlWZWN0b3IoYnVmZmVyUmVhZGVyKSAvKiB2Sm9pblNwbGl0ICovO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQnVmZmVyVjU8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGJ1ZmZlclJlYWRlcjogQnVmZmVyUmVhZGVyLFxuICB0eDogWmNhc2hUcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50JyA9ICdudW1iZXInXG4pOiB2b2lkIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDgxNVxuICB0eC5jb25zZW5zdXNCcmFuY2hJZCA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG4gIHR4LmxvY2t0aW1lID0gYnVmZmVyUmVhZGVyLnJlYWRVSW50MzIoKTtcbiAgdHguZXhwaXJ5SGVpZ2h0ID0gYnVmZmVyUmVhZGVyLnJlYWRVSW50MzIoKTtcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC41LjEvc3JjL3ByaW1pdGl2ZXMvdHJhbnNhY3Rpb24uaCNMODI4XG4gIHR4LmlucyA9IHJlYWRJbnB1dHMoYnVmZmVyUmVhZGVyKTtcbiAgdHgub3V0cyA9IHJlYWRPdXRwdXRzPFROdW1iZXI+KGJ1ZmZlclJlYWRlciwgYW1vdW50VHlwZSk7XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDgzNVxuICByZWFkRW1wdHlTYXBsaW5nQnVuZGxlKGJ1ZmZlclJlYWRlcik7XG4gIHJlYWRFbXB0eU9yY2hhcmRCdW5kbGUoYnVmZmVyUmVhZGVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlSW5wdXRzKGJ1ZmZlcldyaXRlcjogQnVmZmVyV3JpdGVyLCBpbnM6IFR4SW5wdXRbXSk6IHZvaWQge1xuICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoaW5zLmxlbmd0aCk7XG4gIGlucy5mb3JFYWNoKGZ1bmN0aW9uICh0eEluKSB7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UodHhJbi5oYXNoKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHhJbi5pbmRleCk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVmFyU2xpY2UodHhJbi5zY3JpcHQpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eEluLnNlcXVlbmNlKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZU91dHB1dHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGJ1ZmZlcldyaXRlcjogQnVmZmVyV3JpdGVyLFxuICBvdXRzOiBUeE91dHB1dDxUTnVtYmVyPltdXG4pOiB2b2lkIHtcbiAgYnVmZmVyV3JpdGVyLndyaXRlVmFySW50KG91dHMubGVuZ3RoKTtcbiAgb3V0cy5mb3JFYWNoKGZ1bmN0aW9uICh0eE91dCkge1xuICAgIGlmICgodHhPdXQgYXMgYW55KS52YWx1ZUJ1ZmZlcikge1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoKHR4T3V0IGFzIGFueSkudmFsdWVCdWZmZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50NjQodHhPdXQudmFsdWUpO1xuICAgIH1cblxuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKHR4T3V0LnNjcmlwdCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9CdWZmZXJWNDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgYnVmZmVyV3JpdGVyOiBCdWZmZXJXcml0ZXIsXG4gIHR4OiBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+XG4pOiB2b2lkIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDEwODNcbiAgd3JpdGVJbnB1dHMoYnVmZmVyV3JpdGVyLCB0eC5pbnMpO1xuICB3cml0ZU91dHB1dHM8VE51bWJlcj4oYnVmZmVyV3JpdGVyLCB0eC5vdXRzKTtcblxuICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHgubG9ja3RpbWUpO1xuXG4gIGlmICh0eC5pc092ZXJ3aW50ZXJDb21wYXRpYmxlKCkpIHtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHguZXhwaXJ5SGVpZ2h0KTtcbiAgfVxuXG4gIGlmICh0eC5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShWQUxVRV9JTlQ2NF9aRVJPKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoMCk7IC8vIHZTaGllbGRlZFNwZW5kTGVuZ3RoXG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVmFySW50KDApOyAvLyB2U2hpZWxkZWRPdXRwdXRMZW5ndGhcbiAgfVxuXG4gIGlmICh0eC5zdXBwb3J0c0pvaW5TcGxpdHMoKSkge1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhckludCgwKTsgLy8gam9pbnNTcGxpdHMgbGVuZ3RoXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQnVmZmVyVjU8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGJ1ZmZlcldyaXRlcjogQnVmZmVyV3JpdGVyLFxuICB0eDogWmNhc2hUcmFuc2FjdGlvbjxUTnVtYmVyPlxuKTogdm9pZCB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0w4MjUtTDgyNlxuICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHguY29uc2Vuc3VzQnJhbmNoSWQpO1xuICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHgubG9ja3RpbWUpO1xuICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHguZXhwaXJ5SGVpZ2h0KTtcbiAgd3JpdGVJbnB1dHMoYnVmZmVyV3JpdGVyLCB0eC5pbnMpO1xuICB3cml0ZU91dHB1dHM8VE51bWJlcj4oYnVmZmVyV3JpdGVyLCB0eC5vdXRzKTtcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC41LjEvc3JjL3ByaW1pdGl2ZXMvdHJhbnNhY3Rpb24uaCNMMTA2M1xuICB3cml0ZUVtcHR5U2FtcGxpbmdCdW5kbGUoYnVmZmVyV3JpdGVyKTtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDEwODFcbiAgd3JpdGVFbXB0eU9yY2hhcmRCdW5kbGUoYnVmZmVyV3JpdGVyKTtcbn1cbiJdfQ==
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hCdWZmZXJ1dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby96Y2FzaC9aY2FzaEJ1ZmZlcnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWNBLGdDQWFDO0FBRUQsa0NBYUM7QUFFRCwwQ0FLQztBQUVELHdEQU9DO0FBRUQsMERBSUM7QUFFRCx3REFJQztBQUVELDREQUlDO0FBRUQsb0NBNEJDO0FBRUQsb0NBaUJDO0FBRUQsa0NBUUM7QUFFRCxvQ0FjQztBQUVELGdDQXVCQztBQUVELGdDQWVDO0FBdkxELHlEQUFtRjtBQUV0RSxRQUFBLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFdkUsU0FBZ0IsVUFBVSxDQUFDLFlBQTBCO0lBQ25ELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN6QyxNQUFNLEdBQUcsR0FBYyxFQUFFLENBQUM7SUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2hDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDUCxJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDaEMsTUFBTSxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUU7WUFDbkMsUUFBUSxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDbkMsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUN6QixZQUEwQixFQUMxQixhQUFrQyxRQUFRO0lBRTFDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FB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LENBQUM7QUFFRCxTQUFnQixVQUFVLENBQ3hCLFlBQTBCLEVBQzFCLEVBQTZCO0lBRTdCLG9GQUFvRjtJQUNwRixZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLFlBQVksQ0FBVSxZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdDLGdGQUFnRjtJQUNoRix3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxnRkFBZ0Y7SUFDaEYsdUJBQXVCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHJhbnNhY3Rpb24gKGRlKXNlcmlhbGl6YXRpb24gaGVscGVycy5cbiAqIE9ubHkgc3VwcG9ydHMgZnVsbCB0cmFuc3BhcmVudCB0cmFuc2FjdGlvbnMgd2l0aG91dCBzaGllbGRlZCBpbnB1dHMgb3Igb3V0cHV0cy5cbiAqXG4gKiBSZWZlcmVuY2VzOlxuICogLSBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC41LjEvc3JjL3ByaW1pdGl2ZXMvdHJhbnNhY3Rpb24uaCNMNzcxXG4gKi9cbmltcG9ydCB7IFR4SW5wdXQsIFR4T3V0cHV0IH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgeyBCdWZmZXJSZWFkZXIsIEJ1ZmZlcldyaXRlciB9IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL2J1ZmZlcnV0aWxzJztcblxuaW1wb3J0IHsgVW5zdXBwb3J0ZWRUcmFuc2FjdGlvbkVycm9yLCBaY2FzaFRyYW5zYWN0aW9uIH0gZnJvbSAnLi9aY2FzaFRyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNvbnN0IFZBTFVFX0lOVDY0X1pFUk8gPSBCdWZmZXIuZnJvbSgnMDAwMDAwMDAwMDAwMDAwMCcsICdoZXgnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRJbnB1dHMoYnVmZmVyUmVhZGVyOiBCdWZmZXJSZWFkZXIpOiBUeElucHV0W10ge1xuICBjb25zdCB2aW5MZW4gPSBidWZmZXJSZWFkZXIucmVhZFZhckludCgpO1xuICBjb25zdCBpbnM6IFR4SW5wdXRbXSA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHZpbkxlbjsgKytpKSB7XG4gICAgaW5zLnB1c2goe1xuICAgICAgaGFzaDogYnVmZmVyUmVhZGVyLnJlYWRTbGljZSgzMiksXG4gICAgICBpbmRleDogYnVmZmVyUmVhZGVyLnJlYWRVSW50MzIoKSxcbiAgICAgIHNjcmlwdDogYnVmZmVyUmVhZGVyLnJlYWRWYXJTbGljZSgpLFxuICAgICAgc2VxdWVuY2U6IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCksXG4gICAgICB3aXRuZXNzOiBbXSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gaW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZE91dHB1dHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGJ1ZmZlclJlYWRlcjogQnVmZmVyUmVhZGVyLFxuICBhbW91bnRUeXBlOiAnbnVtYmVyJyB8ICdiaWdpbnQnID0gJ251bWJlcidcbik6IFR4T3V0cHV0PFROdW1iZXI+W10ge1xuICBjb25zdCB2b3V0TGVuID0gYnVmZmVyUmVhZGVyLnJlYWRWYXJJbnQoKTtcbiAgY29uc3Qgb3V0czogVHhPdXRwdXQ8VE51bWJlcj5bXSA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHZvdXRMZW47ICsraSkge1xuICAgIG91dHMucHVzaCh7XG4gICAgICB2YWx1ZTogKGFtb3VudFR5cGUgPT09ICdiaWdpbnQnID8gYnVmZmVyUmVhZGVyLnJlYWRVSW50NjRCaWdJbnQoKSA6IGJ1ZmZlclJlYWRlci5yZWFkVUludDY0KCkpIGFzIFROdW1iZXIsXG4gICAgICBzY3JpcHQ6IGJ1ZmZlclJlYWRlci5yZWFkVmFyU2xpY2UoKSxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gb3V0cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRFbXB0eVZlY3RvcihidWZmZXJSZWFkZXI6IEJ1ZmZlclJlYWRlcik6IHZvaWQge1xuICBjb25zdCBuID0gYnVmZmVyUmVhZGVyLnJlYWRWYXJJbnQoKTtcbiAgaWYgKG4gIT09IDApIHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRUcmFuc2FjdGlvbkVycm9yKGBleHBlY3RlZCBlbXB0eSB2ZWN0b3JgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEVtcHR5T3JjaGFyZEJ1bmRsZShidWZmZXJSZWFkZXI6IEJ1ZmZlclJlYWRlcik6IHZvaWQge1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC41LjEvc3JjL3ByaW1pdGl2ZXMvb3JjaGFyZC5oI0w2NlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvbGlicnVzdHpjYXNoL2Jsb2IvZWRjZGUyNTJkZTIyMWQ0ODUxZjFlNTE0NTMwNmMyY2FmOTU0NTNiYy96Y2FzaF9wcmltaXRpdmVzL3NyYy90cmFuc2FjdGlvbi9jb21wb25lbnRzL29yY2hhcmQucnMjTDM2XG4gIGNvbnN0IHYgPSBidWZmZXJSZWFkZXIucmVhZFVJbnQ4KCk7XG4gIGlmICh2ICE9PSAweDAwKSB7XG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkVHJhbnNhY3Rpb25FcnJvcihgZXhwZWN0ZWQgYnl0ZSAweDAwYCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlRW1wdHlPcmNoYXJkQnVuZGxlKGJ1ZmZlcldyaXRlcjogQnVmZmVyV3JpdGVyKTogdm9pZCB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy9vcmNoYXJkLmgjTDY2XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC9saWJydXN0emNhc2gvYmxvYi9lZGNkZTI1MmRlMjIxZDQ4NTFmMWU1MTQ1MzA2YzJjYWY5NTQ1M2JjL3pjYXNoX3ByaW1pdGl2ZXMvc3JjL3RyYW5zYWN0aW9uL2NvbXBvbmVudHMvb3JjaGFyZC5ycyNMMjAxXG4gIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQ4KDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEVtcHR5U2FwbGluZ0J1bmRsZShidWZmZXJSZWFkZXI6IEJ1ZmZlclJlYWRlcik6IHZvaWQge1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC41LjEvc3JjL3ByaW1pdGl2ZXMvdHJhbnNhY3Rpb24uaCNMMjgzXG4gIHJlYWRFbXB0eVZlY3RvcihidWZmZXJSZWFkZXIpIC8qIHZTcGVuZHNTYXBsaW5nICovO1xuICByZWFkRW1wdHlWZWN0b3IoYnVmZmVyUmVhZGVyKSAvKiB2T3V0cHV0c1NhcGxpbmcgKi87XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUVtcHR5U2FtcGxpbmdCdW5kbGUoYnVmZmVyV3JpdGVyOiBCdWZmZXJXcml0ZXIpOiB2b2lkIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDI4M1xuICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoMCkgLyogdlNwZW5kc1NhcGxpbmcgKi87XG4gIGJ1ZmZlcldyaXRlci53cml0ZVZhckludCgwKSAvKiB2T3V0cHV0c1NhcGxpbmcgKi87XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQnVmZmVyVjQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGJ1ZmZlclJlYWRlcjogQnVmZmVyUmVhZGVyLFxuICB0eDogWmNhc2hUcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50JyA9ICdudW1iZXInXG4pOiB2b2lkIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDg1NS1MODU3XG4gIHR4LmlucyA9IHJlYWRJbnB1dHMoYnVmZmVyUmVhZGVyKTtcbiAgdHgub3V0cyA9IHJlYWRPdXRwdXRzPFROdW1iZXI+KGJ1ZmZlclJlYWRlciwgYW1vdW50VHlwZSk7XG4gIHR4LmxvY2t0aW1lID0gYnVmZmVyUmVhZGVyLnJlYWRVSW50MzIoKTtcblxuICBpZiAodHguaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgdHguZXhwaXJ5SGVpZ2h0ID0gYnVmZmVyUmVhZGVyLnJlYWRVSW50MzIoKTtcbiAgfVxuXG4gIGlmICh0eC5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAvLyB2YWx1ZUJhbGFuY2UgaXMgYSBzaWduZWQgaW50NjQ7IG5lZ2F0aXZlIGZvciB0LT56IHNoaWVsZGluZyB0cmFuc2FjdGlvbnMuXG4gICAgLy8gU3RvcmUgcmF3IGJ5dGVzIHNvIHRvQnVmZmVyL2dldElkIGNhbiByb3VuZC10cmlwIHRoZSB0eCB3aXRob3V0IG11dGF0aW9uLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0wyODNcbiAgICB0eC5zYXBsaW5nVmFsdWVCYWxhbmNlID0gYnVmZmVyUmVhZGVyLnJlYWRTbGljZSg4KTtcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0w4NjNcbiAgICByZWFkRW1wdHlTYXBsaW5nQnVuZGxlKGJ1ZmZlclJlYWRlcik7XG4gIH1cblxuICBpZiAodHguc3VwcG9ydHNKb2luU3BsaXRzKCkpIHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC41LjEvc3JjL3ByaW1pdGl2ZXMvdHJhbnNhY3Rpb24uaCNMODY5XG4gICAgcmVhZEVtcHR5VmVjdG9yKGJ1ZmZlclJlYWRlcikgLyogdkpvaW5TcGxpdCAqLztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbUJ1ZmZlclY1PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBidWZmZXJSZWFkZXI6IEJ1ZmZlclJlYWRlcixcbiAgdHg6IFpjYXNoVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIGFtb3VudFR5cGU6ICdudW1iZXInIHwgJ2JpZ2ludCcgPSAnbnVtYmVyJ1xuKTogdm9pZCB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0w4MTVcbiAgdHguY29uc2Vuc3VzQnJhbmNoSWQgPSBidWZmZXJSZWFkZXIucmVhZFVJbnQzMigpO1xuICB0eC5sb2NrdGltZSA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG4gIHR4LmV4cGlyeUhlaWdodCA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDgyOFxuICB0eC5pbnMgPSByZWFkSW5wdXRzKGJ1ZmZlclJlYWRlcik7XG4gIHR4Lm91dHMgPSByZWFkT3V0cHV0czxUTnVtYmVyPihidWZmZXJSZWFkZXIsIGFtb3VudFR5cGUpO1xuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0w4MzVcbiAgcmVhZEVtcHR5U2FwbGluZ0J1bmRsZShidWZmZXJSZWFkZXIpO1xuICByZWFkRW1wdHlPcmNoYXJkQnVuZGxlKGJ1ZmZlclJlYWRlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUlucHV0cyhidWZmZXJXcml0ZXI6IEJ1ZmZlcldyaXRlciwgaW5zOiBUeElucHV0W10pOiB2b2lkIHtcbiAgYnVmZmVyV3JpdGVyLndyaXRlVmFySW50KGlucy5sZW5ndGgpO1xuICBpbnMuZm9yRWFjaChmdW5jdGlvbiAodHhJbikge1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKHR4SW4uaGFzaCk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHR4SW4uaW5kZXgpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKHR4SW4uc2NyaXB0KTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHhJbi5zZXF1ZW5jZSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVPdXRwdXRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBidWZmZXJXcml0ZXI6IEJ1ZmZlcldyaXRlcixcbiAgb3V0czogVHhPdXRwdXQ8VE51bWJlcj5bXVxuKTogdm9pZCB7XG4gIGJ1ZmZlcldyaXRlci53cml0ZVZhckludChvdXRzLmxlbmd0aCk7XG4gIG91dHMuZm9yRWFjaChmdW5jdGlvbiAodHhPdXQpIHtcbiAgICBpZiAoKHR4T3V0IGFzIGFueSkudmFsdWVCdWZmZXIpIHtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKCh0eE91dCBhcyBhbnkpLnZhbHVlQnVmZmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDY0KHR4T3V0LnZhbHVlKTtcbiAgICB9XG5cbiAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJTbGljZSh0eE91dC5zY3JpcHQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQnVmZmVyVjQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGJ1ZmZlcldyaXRlcjogQnVmZmVyV3JpdGVyLFxuICB0eDogWmNhc2hUcmFuc2FjdGlvbjxUTnVtYmVyPlxuKTogdm9pZCB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0wxMDgzXG4gIHdyaXRlSW5wdXRzKGJ1ZmZlcldyaXRlciwgdHguaW5zKTtcbiAgd3JpdGVPdXRwdXRzPFROdW1iZXI+KGJ1ZmZlcldyaXRlciwgdHgub3V0cyk7XG5cbiAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHR4LmxvY2t0aW1lKTtcblxuICBpZiAodHguaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHR4LmV4cGlyeUhlaWdodCk7XG4gIH1cblxuICBpZiAodHguaXNTYXBsaW5nQ29tcGF0aWJsZSgpKSB7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UodHguc2FwbGluZ1ZhbHVlQmFsYW5jZSA/PyBWQUxVRV9JTlQ2NF9aRVJPKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJJbnQoMCk7IC8vIHZTaGllbGRlZFNwZW5kTGVuZ3RoXG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVmFySW50KDApOyAvLyB2U2hpZWxkZWRPdXRwdXRMZW5ndGhcbiAgfVxuXG4gIGlmICh0eC5zdXBwb3J0c0pvaW5TcGxpdHMoKSkge1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhckludCgwKTsgLy8gam9pbnNTcGxpdHMgbGVuZ3RoXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQnVmZmVyVjU8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGJ1ZmZlcldyaXRlcjogQnVmZmVyV3JpdGVyLFxuICB0eDogWmNhc2hUcmFuc2FjdGlvbjxUTnVtYmVyPlxuKTogdm9pZCB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0w4MjUtTDgyNlxuICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHguY29uc2Vuc3VzQnJhbmNoSWQpO1xuICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHgubG9ja3RpbWUpO1xuICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHguZXhwaXJ5SGVpZ2h0KTtcbiAgd3JpdGVJbnB1dHMoYnVmZmVyV3JpdGVyLCB0eC5pbnMpO1xuICB3cml0ZU91dHB1dHM8VE51bWJlcj4oYnVmZmVyV3JpdGVyLCB0eC5vdXRzKTtcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC41LjEvc3JjL3ByaW1pdGl2ZXMvdHJhbnNhY3Rpb24uaCNMMTA2M1xuICB3cml0ZUVtcHR5U2FtcGxpbmdCdW5kbGUoYnVmZmVyV3JpdGVyKTtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDEwODFcbiAgd3JpdGVFbXB0eU9yY2hhcmRCdW5kbGUoYnVmZmVyV3JpdGVyKTtcbn1cbiJdfQ==
|
|
@@ -24,6 +24,7 @@ export declare class ZcashTransaction<TNumber extends number | bigint = number>
|
|
|
24
24
|
versionGroupId: number;
|
|
25
25
|
expiryHeight: number;
|
|
26
26
|
consensusBranchId: number;
|
|
27
|
+
saplingValueBalance: Buffer;
|
|
27
28
|
constructor(network: ZcashNetwork, tx?: ZcashTransaction<bigint | number>, amountType?: 'bigint' | 'number');
|
|
28
29
|
static fromBuffer<TNumber extends number | bigint = number>(buffer: Buffer, __noStrict: boolean, amountType?: 'number' | 'bigint', network?: ZcashNetwork): ZcashTransaction<TNumber>;
|
|
29
30
|
static fromBufferWithVersion<TNumber extends number | bigint>(buf: Buffer, network: ZcashNetwork, version?: number, amountType?: 'number' | 'bigint'): ZcashTransaction<TNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZcashTransaction.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/zcash/ZcashTransaction.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AAMnE,MAAM,MAAM,YAAY,GAAG,OAAO,QAAQ,CAAC,KAAK,GAAG,OAAO,QAAQ,CAAC,SAAS,CAAC;AAgB7E,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAG5B;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAe1E;AAED,wBAAgB,qCAAqC,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAuCpG;AAED,qBAAa,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ZcashTransaction.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/zcash/ZcashTransaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,11 +96,16 @@ class ZcashTransaction extends UtxoTransaction_1.UtxoTransaction {
|
|
|
96
96
|
this.versionGroupId = 0;
|
|
97
97
|
// Block height after which this transactions will expire, or 0 to disable expiry
|
|
98
98
|
this.expiryHeight = 0;
|
|
99
|
+
// Raw 8-byte little-endian signed int64 valueBalance field for Sapling v4 txs.
|
|
100
|
+
// Negative when value flows from the transparent pool into the shielded pool
|
|
101
|
+
// (t->z shielding). Stored verbatim so toBuffer/getId round-trip correctly.
|
|
102
|
+
this.saplingValueBalance = ZcashBufferutils_1.VALUE_INT64_ZERO;
|
|
99
103
|
let consensusBranchId;
|
|
100
104
|
if (tx) {
|
|
101
105
|
this.overwintered = tx.overwintered;
|
|
102
106
|
this.versionGroupId = tx.versionGroupId;
|
|
103
107
|
this.expiryHeight = tx.expiryHeight;
|
|
108
|
+
this.saplingValueBalance = tx.saplingValueBalance;
|
|
104
109
|
if (tx.consensusBranchId !== undefined) {
|
|
105
110
|
consensusBranchId = tx.consensusBranchId;
|
|
106
111
|
}
|
|
@@ -308,7 +313,7 @@ class ZcashTransaction extends UtxoTransaction_1.UtxoTransaction {
|
|
|
308
313
|
bufferWriter.writeUInt32(this.locktime);
|
|
309
314
|
bufferWriter.writeUInt32(this.expiryHeight);
|
|
310
315
|
if (this.isSaplingCompatible()) {
|
|
311
|
-
bufferWriter.writeSlice(
|
|
316
|
+
bufferWriter.writeSlice(this.saplingValueBalance);
|
|
312
317
|
}
|
|
313
318
|
bufferWriter.writeInt32(hashType);
|
|
314
319
|
// The input being signed (replacing the scriptSig with scriptCode + amount)
|
|
@@ -375,4 +380,4 @@ ZcashTransaction.VERSION5_BRANCH_NU5 = 500;
|
|
|
375
380
|
ZcashTransaction.VERSION5_BRANCH_NU6 = 550;
|
|
376
381
|
ZcashTransaction.VERSION5_BRANCH_NU6_1 = 551;
|
|
377
382
|
ZcashTransaction.VERSION5_BRANCH_NU6_2 = 552;
|
|
378
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby96Y2FzaC9aY2FzaFRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9DQSxnRkFlQztBQUVELHNGQXVDQztBQTVGRCxpREFBb0Q7QUFDcEQsaURBQWlEO0FBQ2pELCtEQUEyRTtBQUUzRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUMzQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdkMsNkNBQTBDO0FBQzFDLHdEQUFtRTtBQUNuRSx5REFBMEc7QUFDMUcsK0NBQWtGO0FBRWxGLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0VBQWtFLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFJcEcsOEVBQThFO0FBQzlFLE1BQU0sd0JBQXdCLEdBQUcsVUFBVSxDQUFDO0FBQzVDLDhFQUE4RTtBQUM5RSxNQUFNLHVCQUF1QixHQUFHLFVBQVUsQ0FBQztBQUUzQyw0RUFBNEU7QUFDNUUsTUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUM7QUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7QUFDcEMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBQ2pDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQztBQUNqQyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsQ0FBQywrQkFBK0I7QUFDbkUsa0dBQWtHO0FBQ2xHLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQztBQUVuQyxNQUFhLDJCQUE0QixTQUFRLEtBQUs7SUFDcEQsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFKRCxrRUFJQztBQUVELFNBQWdCLGtDQUFrQyxDQUFDLE9BQWU7SUFDaEUsUUFBUSxPQUFPLEVBQUUsQ0FBQztR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QztRQUNELE9BQU8sc0JBQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUssQ0FBd0MsVUFBZ0M7UUFDM0UsT0FBTyxJQUFJLGdCQUFnQixDQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7O0FBelZILDRDQTBWQztBQXpWUSwyQ0FBMEIsR0FBRyxDQUFDLEFBQUosQ0FBSztBQUMvQixtQ0FBa0IsR0FBRyxDQUFDLEFBQUosQ0FBSztBQUN2QixnQ0FBZSxHQUFHLENBQUMsQUFBSixDQUFLO0FBRXBCLHVDQUFzQixHQUFHLEdBQUcsQUFBTixDQUFPO0FBQzdCLG9DQUFtQixHQUFHLEdBQUcsQUFBTixDQUFPO0FBQzFCLG9DQUFtQixHQUFHLEdBQUcsQUFBTixDQUFPO0FBQzFCLHNDQUFxQixHQUFHLEdBQUcsQUFBTixDQUFPO0FBQzVCLHNDQUFxQixHQUFHLEdBQUcsQUFBTixDQUFPO0FBQzVCLG9DQUFtQixHQUFHLEdBQUcsQUFBTixDQUFPO0FBQzFCLG9DQUFtQixHQUFHLEdBQUcsQUFBTixDQUFPO0FBQzFCLHNDQUFxQixHQUFHLEdBQUcsQUFBTixDQUFPO0FBQzVCLHNDQUFxQixHQUFHLEdBQUcsQUFBTixDQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24sIGNyeXB0byB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvdHlwZXMnO1xuaW1wb3J0IHsgQnVmZmVyUmVhZGVyLCBCdWZmZXJXcml0ZXIgfSBmcm9tICdiaXRjb2luanMtbGliL3NyYy9idWZmZXJ1dGlscyc7XG5cbmNvbnN0IHZhcnVpbnQgPSByZXF1aXJlKCd2YXJ1aW50LWJpdGNvaW4nKTtcbmNvbnN0IHR5cGVmb3JjZSA9IHJlcXVpcmUoJ3R5cGVmb3JjZScpO1xuXG5pbXBvcnQgeyBuZXR3b3JrcyB9IGZyb20gJy4uLy4uL25ldHdvcmtzJztcbmltcG9ydCB7IFV0eG9UcmFuc2FjdGlvbiwgdmFyU2xpY2VTaXplIH0gZnJvbSAnLi4vVXR4b1RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGZyb21CdWZmZXJWNCwgZnJvbUJ1ZmZlclY1LCB0b0J1ZmZlclY0LCB0b0J1ZmZlclY1LCBWQUxVRV9JTlQ2NF9aRVJPIH0gZnJvbSAnLi9aY2FzaEJ1ZmZlcnV0aWxzJztcbmltcG9ydCB7IGdldEJsYWtlMmJIYXNoLCBnZXRTaWduYXR1cmVEaWdlc3QsIGdldFR4aWREaWdlc3QgfSBmcm9tICcuL2hhc2haaXAwMjQ0JztcblxuY29uc3QgWkVSTyA9IEJ1ZmZlci5mcm9tKCcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJywgJ2hleCcpO1xuXG5leHBvcnQgdHlwZSBaY2FzaE5ldHdvcmsgPSB0eXBlb2YgbmV0d29ya3MuemNhc2ggfCB0eXBlb2YgbmV0d29ya3MuemNhc2hUZXN0O1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC43LjAvc3JjL3ByaW1pdGl2ZXMvdHJhbnNhY3Rpb24uaCNMNDBcbmNvbnN0IFNBUExJTkdfVkVSU0lPTl9HUk9VUF9JRCA9IDB4ODkyZjIwODU7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC43LjAvc3JjL3ByaW1pdGl2ZXMvdHJhbnNhY3Rpb24uaCNMNTJcbmNvbnN0IFpJUDIyNV9WRVJTSU9OX0dST1VQX0lEID0gMHgyNmE3MjcwYTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNy4wL3NyYy9jb25zZW5zdXMvdXBncmFkZXMuY3BwI0wxMVxuY29uc3QgT1ZFUldJTlRFUl9CUkFOQ0hfSUQgPSAweDViYTgxYjE5O1xuY29uc3QgQ0FOT1BZX0JSQU5DSF9JRCA9IDB4ZTlmZjc1YTY7XG5jb25zdCBOVTVfQlJBTkNIX0lEID0gMHhjMmQ2ZDBiNDtcbmNvbnN0IE5VNl9CUkFOQ0hfSUQgPSAweGM4ZTcxMDU1O1xuY29uc3QgTlU2XzFfQlJBTkNIX0lEID0gMHg0ZGVjNGRmMDsgLy8gaHR0cHM6Ly96aXBzLnouY2FzaC96aXAtMDI1NVxuLy8gTlU2LjIgZW1lcmdlbmN5IGhhcmQgZm9yayByZS1lbmFibGluZyBPcmNoYXJkIHdpdGggYSBjb3JyZWN0ZWQgY2lyY3VpdCAobWFpbm5ldCBibG9jayAzMzY0NjAwKS5cbmNvbnN0IE5VNl8yX0JSQU5DSF9JRCA9IDB4NTQzN2YzMzA7XG5cbmV4cG9ydCBjbGFzcyBVbnN1cHBvcnRlZFRyYW5zYWN0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0VmVyc2lvbkdyb3VwSWRGb3JWZXJzaW9uKHZlcnNpb246IG51bWJlcik6IG51bWJlciB7XG4gIHN3aXRjaCAodmVyc2lvbikge1xuICAgIGNhc2UgNDAwOlxuICAgIGNhc2UgNDUwOlxuICAgIGNhc2UgNDU1OlxuICAgIGNhc2UgNDU2OlxuICAgIGNhc2UgNDU3OlxuICAgICAgcmV0dXJuIFNBUExJTkdfVkVSU0lPTl9HUk9VUF9JRDtcbiAgICBjYXNlIDUwMDpcbiAgICBjYXNlIDU1MDpcbiAgICBjYXNlIDU1MTpcbiAgICBjYXNlIDU1MjpcbiAgICAgIHJldHVybiBaSVAyMjVfVkVSU0lPTl9HUk9VUF9JRDtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYG5vIHZhbHVlIGZvciB2ZXJzaW9uICR7dmVyc2lvbn1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRDb25zZW5zdXNCcmFuY2hJZEZvclZlcnNpb24obmV0d29yazogWmNhc2hOZXR3b3JrLCB2ZXJzaW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAvLyBUZXN0bmV0IGhhcyBub3QgeWV0IGFjdGl2YXRlZCBOVTYuMiAodGVzdG5ldCBhY3RpdmF0aW9uIGJsb2NrIDQwNTIwMDApLCBzbyBrZWVwXG4gIC8vIGRlZmF1bHRpbmcgdG8gTlU2LjEgdGhlcmUuIE1haW5uZXQgYWN0aXZhdGVkIE5VNi4yIGF0IGJsb2NrIDMzNjQ2MDAuXG4gIGlmIChuZXR3b3JrID09PSBuZXR3b3Jrcy56Y2FzaFRlc3QpIHtcbiAgICBpZiAodmVyc2lvbiA9PT0gNCB8fCB2ZXJzaW9uID09PSA1KSB7XG4gICAgICByZXR1cm4gTlU2XzFfQlJBTkNIX0lEO1xuICAgIH1cbiAgfVxuXG4gIHN3aXRjaCAodmVyc2lvbikge1xuICAgIGNhc2UgMTpcbiAgICBjYXNlIDI6XG4gICAgICByZXR1cm4gMDtcbiAgICBjYXNlIDM6XG4gICAgICByZXR1cm4gT1ZFUldJTlRFUl9CUkFOQ0hfSUQ7XG4gICAgY2FzZSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT040X0JSQU5DSF9DQU5PUFk6XG4gICAgICAvLyBodHRwczovL3ppcHMuei5jYXNoL3ppcC0wMjUxXG4gICAgICByZXR1cm4gQ0FOT1BZX0JSQU5DSF9JRDtcbiAgICBjYXNlIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX05VNTpcbiAgICBjYXNlIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjVfQlJBTkNIX05VNTpcbiAgICAgIC8vIGh0dHBzOi8vemlwcy56LmNhc2gvemlwLTAyNTJcbiAgICAgIC8vIE5VNSBpcyBkZXByZWNhdGVkIG9uIG1haW5uZXQgb24gYmxvY2sgMjcyNjQwMFxuICAgICAgcmV0dXJuIE5VNV9CUkFOQ0hfSUQ7XG4gICAgY2FzZSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT040X0JSQU5DSF9OVTY6XG4gICAgY2FzZSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT041X0JSQU5DSF9OVTY6XG4gICAgICAvLyBodHRwczovL3ppcHMuei5jYXNoL3ppcC0wMjUzXG4gICAgICByZXR1cm4gTlU2X0JSQU5DSF9JRDtcbiAgICBjYXNlIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX05VNl8xOlxuICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONV9CUkFOQ0hfTlU2XzE6XG4gICAgICAvLyBodHRwczovL3ppcHMuei5jYXNoL3ppcC0wMjU1XG4gICAgICByZXR1cm4gTlU2XzFfQlJBTkNIX0lEO1xuICAgIGNhc2UgNDpcbiAgICBjYXNlIDU6XG4gICAgY2FzZSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT040X0JSQU5DSF9OVTZfMjpcbiAgICBjYXNlIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjVfQlJBTkNIX05VNl8yOlxuICAgICAgLy8gTlU2LjIg4oCUIGVtZXJnZW5jeSBoYXJkIGZvcmsgcmUtZW5hYmxpbmcgT3JjaGFyZCwgbWFpbm5ldCBibG9jayAzMzY0NjAwXG4gICAgICByZXR1cm4gTlU2XzJfQlJBTkNIX0lEO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgbm8gdmFsdWUgZm9yIHZlcnNpb24gJHt2ZXJzaW9ufWApO1xufVxuXG5leHBvcnQgY2xhc3MgWmNhc2hUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiBleHRlbmRzIFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gIHN0YXRpYyBWRVJTSU9OX0pPSU5TUExJVFNfU1VQUE9SVCA9IDI7XG4gIHN0YXRpYyBWRVJTSU9OX09WRVJXSU5URVIgPSAzO1xuICBzdGF0aWMgVkVSU0lPTl9TQVBMSU5HID0gNDtcblxuICBzdGF0aWMgVkVSU0lPTjRfQlJBTkNIX0NBTk9QWSA9IDQwMDtcbiAgc3RhdGljIFZFUlNJT040X0JSQU5DSF9OVTUgPSA0NTA7XG4gIHN0YXRpYyBWRVJTSU9ONF9CUkFOQ0hfTlU2ID0gNDU1O1xuICBzdGF0aWMgVkVSU0lPTjRfQlJBTkNIX05VNl8xID0gNDU2O1xuICBzdGF0aWMgVkVSU0lPTjRfQlJBTkNIX05VNl8yID0gNDU3O1xuICBzdGF0aWMgVkVSU0lPTjVfQlJBTkNIX05VNSA9IDUwMDtcbiAgc3RhdGljIFZFUlNJT041X0JSQU5DSF9OVTYgPSA1NTA7XG4gIHN0YXRpYyBWRVJTSU9ONV9CUkFOQ0hfTlU2XzEgPSA1NTE7XG4gIHN0YXRpYyBWRVJTSU9ONV9CUkFOQ0hfTlU2XzIgPSA1NTI7XG5cbiAgLy8gMSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcG9zdCBvdmVyd2ludGVyIHVwZ3JhZGUsIDAgb3RoZXJ3aXNlXG4gIG92ZXJ3aW50ZXJlZCA9IDA7XG4gIC8vIDB4MDNDNDgyNzAgKDYzMjEwMDk2KSBmb3Igb3ZlcndpbnRlciBhbmQgMHg4OTJGMjA4NSAoMjMwMTU2NzEwOSkgZm9yIHNhcGxpbmdcbiAgdmVyc2lvbkdyb3VwSWQgPSAwO1xuICAvLyBCbG9jayBoZWlnaHQgYWZ0ZXIgd2hpY2ggdGhpcyB0cmFuc2FjdGlvbnMgd2lsbCBleHBpcmUsIG9yIDAgdG8gZGlzYWJsZSBleHBpcnlcbiAgZXhwaXJ5SGVpZ2h0ID0gMDtcbiAgY29uc2Vuc3VzQnJhbmNoSWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmV0d29yazogWmNhc2hOZXR3b3JrLCB0eD86IFpjYXNoVHJhbnNhY3Rpb248YmlnaW50IHwgbnVtYmVyPiwgYW1vdW50VHlwZT86ICdiaWdpbnQnIHwgJ251bWJlcicpIHtcbiAgICBzdXBlcihuZXR3b3JrLCB0eCwgYW1vdW50VHlwZSk7XG5cbiAgICBsZXQgY29uc2Vuc3VzQnJhbmNoSWQ7XG4gICAgaWYgKHR4KSB7XG4gICAgICB0aGlzLm92ZXJ3aW50ZXJlZCA9IHR4Lm92ZXJ3aW50ZXJlZDtcbiAgICAgIHRoaXMudmVyc2lvbkdyb3VwSWQgPSB0eC52ZXJzaW9uR3JvdXBJZDtcbiAgICAgIHRoaXMuZXhwaXJ5SGVpZ2h0ID0gdHguZXhwaXJ5SGVpZ2h0O1xuXG4gICAgICBpZiAodHguY29uc2Vuc3VzQnJhbmNoSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zZW5zdXNCcmFuY2hJZCA9IHR4LmNvbnNlbnN1c0JyYW5jaElkO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNvbnNlbnN1c0JyYW5jaElkID0gY29uc2Vuc3VzQnJhbmNoSWQgPz8gZ2V0RGVmYXVsdENvbnNlbnN1c0JyYW5jaElkRm9yVmVyc2lvbihuZXR3b3JrLCB0aGlzLnZlcnNpb24pO1xuICB9XG5cbiAgc3RhdGljIGZyb21CdWZmZXI8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gICAgYnVmZmVyOiBCdWZmZXIsXG4gICAgX19ub1N0cmljdDogYm9vbGVhbixcbiAgICBhbW91bnRUeXBlOiAnbnVtYmVyJyB8ICdiaWdpbnQnID0gJ251bWJlcicsXG4gICAgbmV0d29yaz86IFpjYXNoTmV0d29ya1xuICApOiBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghbmV0d29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgbmV0d29ya2ApO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlclJlYWRlciA9IG5ldyBCdWZmZXJSZWFkZXIoYnVmZmVyKTtcbiAgICBjb25zdCB0eCA9IG5ldyBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+KG5ldHdvcmspO1xuICAgIHR4LnZlcnNpb24gPSBidWZmZXJSZWFkZXIucmVhZEludDMyKCk7XG5cbiAgICAvLyBTcGxpdCB0aGUgaGVhZGVyIGludG8gZk92ZXJ3aW50ZXJlZCBhbmQgblZlcnNpb25cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC41LjEvc3JjL3ByaW1pdGl2ZXMvdHJhbnNhY3Rpb24uaCNMNzcyXG4gICAgdHgub3ZlcndpbnRlcmVkID0gdHgudmVyc2lvbiA+Pj4gMzE7IC8vIE11c3QgYmUgMSBmb3IgdmVyc2lvbiAzIGFuZCB1cFxuICAgIHR4LnZlcnNpb24gPSB0eC52ZXJzaW9uICYgMHgwN2ZmZmZmZmY7IC8vIDMgZm9yIG92ZXJ3aW50ZXJcbiAgICB0eC5jb25zZW5zdXNCcmFuY2hJZCA9IGdldERlZmF1bHRDb25zZW5zdXNCcmFuY2hJZEZvclZlcnNpb24obmV0d29yaywgdHgudmVyc2lvbik7XG5cbiAgICBpZiAodHguaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICB0eC52ZXJzaW9uR3JvdXBJZCA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG4gICAgfVxuXG4gICAgaWYgKHR4LnZlcnNpb24gPT09IDUpIHtcbiAgICAgIGZyb21CdWZmZXJWNShidWZmZXJSZWFkZXIsIHR4LCBhbW91bnRUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZnJvbUJ1ZmZlclY0KGJ1ZmZlclJlYWRlciwgdHgsIGFtb3VudFR5cGUpO1xuICAgIH1cblxuICAgIGlmIChfX25vU3RyaWN0KSByZXR1cm4gdHg7XG4gICAgaWYgKGJ1ZmZlclJlYWRlci5vZmZzZXQgIT09IGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHRyYWlsaW5nID0gYnVmZmVyLnNsaWNlKGJ1ZmZlclJlYWRlci5vZmZzZXQpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHRyYWlsaW5nIGJ5dGVzOiAke3RyYWlsaW5nLnRvU3RyaW5nKCdoZXgnKX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICBzdGF0aWMgZnJvbUJ1ZmZlcldpdGhWZXJzaW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICAgIGJ1ZjogQnVmZmVyLFxuICAgIG5ldHdvcms6IFpjYXNoTmV0d29yayxcbiAgICB2ZXJzaW9uPzogbnVtYmVyLFxuICAgIGFtb3VudFR5cGU6ICdudW1iZXInIHwgJ2JpZ2ludCcgPSAnbnVtYmVyJ1xuICApOiBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+IHtcbiAgICBjb25zdCB0eCA9IFpjYXNoVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcjxUTnVtYmVyPihidWYsIGZhbHNlLCBhbW91bnRUeXBlLCBuZXR3b3JrKTtcbiAgICBpZiAodmVyc2lvbikge1xuICAgICAgdHguY29uc2Vuc3VzQnJhbmNoSWQgPSBnZXREZWZhdWx0Q29uc2Vuc3VzQnJhbmNoSWRGb3JWZXJzaW9uKG5ldHdvcmssIHZlcnNpb24pO1xuICAgIH1cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICBieXRlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgbGV0IGJ5dGVMZW5ndGggPSBzdXBlci5ieXRlTGVuZ3RoKCk7XG4gICAgaWYgKHRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICBieXRlTGVuZ3RoICs9IDQ7IC8vIG5WZXJzaW9uR3JvdXBJZFxuICAgIH1cbiAgICBpZiAodGhpcy5pc092ZXJ3aW50ZXJDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJ5dGVMZW5ndGggKz0gNDsgLy8gbkV4cGlyeUhlaWdodFxuICAgIH1cbiAgICBjb25zdCBlbXB0eVZlY3Rvckxlbmd0aCA9IHZhcnVpbnQuZW5jb2RpbmdMZW5ndGgoMCk7XG4gICAgaWYgKHRoaXMudmVyc2lvbiA9PT0gNSkge1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDgyMlxuICAgICAgYnl0ZUxlbmd0aCArPSA0OyAvLyBjb25zZW5zdXNCcmFuY2hJZFxuICAgICAgYnl0ZUxlbmd0aCArPSBlbXB0eVZlY3Rvckxlbmd0aDsgLy8gc2FwbGluZ0J1bmRsZSBpbnB1dHNcbiAgICAgIGJ5dGVMZW5ndGggKz0gZW1wdHlWZWN0b3JMZW5ndGg7IC8vIHNhcGxpbmdCdW5kbGUgb3V0cHV0c1xuICAgICAgYnl0ZUxlbmd0aCArPSAxOyAvLyBvcmNoYXJkQnVuZGxlIChlbXB0eSlcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuaXNTYXBsaW5nQ29tcGF0aWJsZSgpKSB7XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0w4NjJcbiAgICAgICAgYnl0ZUxlbmd0aCArPSA4OyAvLyB2YWx1ZUJhbGFuY2UgKHVpbnQ2NClcbiAgICAgICAgYnl0ZUxlbmd0aCArPSBlbXB0eVZlY3Rvckxlbmd0aDsgLy8gaW5wdXRzXG4gICAgICAgIGJ5dGVMZW5ndGggKz0gZW1wdHlWZWN0b3JMZW5ndGg7IC8vIG91dHB1dHNcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnN1cHBvcnRzSm9pblNwbGl0cygpKSB7XG4gICAgICAgIC8vXG4gICAgICAgIGJ5dGVMZW5ndGggKz0gZW1wdHlWZWN0b3JMZW5ndGg7IC8vIGpvaW5zcGxpdHNcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJ5dGVMZW5ndGg7XG4gIH1cblxuICBpc1NhcGxpbmdDb21wYXRpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcndpbnRlcmVkICYmIHRoaXMudmVyc2lvbiA+PSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT05fU0FQTElORztcbiAgfVxuXG4gIGlzT3ZlcndpbnRlckNvbXBhdGlibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5vdmVyd2ludGVyZWQgJiYgdGhpcy52ZXJzaW9uID49IFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTl9PVkVSV0lOVEVSO1xuICB9XG5cbiAgc3VwcG9ydHNKb2luU3BsaXRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcndpbnRlcmVkICYmIHRoaXMudmVyc2lvbiA+PSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT05fSk9JTlNQTElUU19TVVBQT1JUO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgaGFzaCBmb3IgYWxsIG9yIG5vbmUgb2YgdGhlIHRyYW5zYWN0aW9uIGlucHV0cyBkZXBlbmRpbmcgb24gdGhlIGhhc2h0eXBlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcmV0dXJucyBCdWZmZXIgLSBCTEFLRTJiIGhhc2ggb3IgMjU2LWJpdCB6ZXJvIGlmIGRvZXNuJ3QgYXBwbHlcbiAgICovXG4gIGdldFByZXZvdXRIYXNoKGhhc2hUeXBlOiBudW1iZXIpOiBCdWZmZXIge1xuICAgIGlmICghKGhhc2hUeXBlICYgVHJhbnNhY3Rpb24uU0lHSEFTSF9BTllPTkVDQU5QQVkpKSB7XG4gICAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvY1Vuc2FmZSgzNiAqIHRoaXMuaW5zLmxlbmd0aCkpO1xuXG4gICAgICB0aGlzLmlucy5mb3JFYWNoKGZ1bmN0aW9uICh0eEluKSB7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKHR4SW4uaGFzaCk7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eEluLmluZGV4KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gZ2V0Qmxha2UyYkhhc2goYnVmZmVyV3JpdGVyLmJ1ZmZlciwgJ1pjYXNoUHJldm91dEhhc2gnKTtcbiAgICB9XG4gICAgcmV0dXJuIFpFUk87XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBoYXNoIGZvciBhbGwgb3Igbm9uZSBvZiB0aGUgdHJhbnNhY3Rpb25zIGlucHV0cyBzZXF1ZW5jZSBudW1iZXJzIGRlcGVuZGluZyBvbiB0aGUgaGFzaHR5cGVcbiAgICogQHBhcmFtIGhhc2hUeXBlXG4gICAqIEByZXR1cm5zIEJ1ZmZlciBCTEFLRTJiIGhhc2ggb3IgMjU2LWJpdCB6ZXJvIGlmIGRvZXNuJ3QgYXBwbHlcbiAgICovXG4gIGdldFNlcXVlbmNlSGFzaChoYXNoVHlwZTogbnVtYmVyKTogQnVmZmVyIHtcbiAgICBpZiAoXG4gICAgICAhKGhhc2hUeXBlICYgVHJhbnNhY3Rpb24uU0lHSEFTSF9BTllPTkVDQU5QQVkpICYmXG4gICAgICAoaGFzaFR5cGUgJiAweDFmKSAhPT0gVHJhbnNhY3Rpb24uU0lHSEFTSF9TSU5HTEUgJiZcbiAgICAgIChoYXNoVHlwZSAmIDB4MWYpICE9PSBUcmFuc2FjdGlvbi5TSUdIQVNIX05PTkVcbiAgICApIHtcbiAgICAgIGNvbnN0IGJ1ZmZlcldyaXRlciA9IG5ldyBCdWZmZXJXcml0ZXIoQnVmZmVyLmFsbG9jVW5zYWZlKDQgKiB0aGlzLmlucy5sZW5ndGgpKTtcblxuICAgICAgdGhpcy5pbnMuZm9yRWFjaChmdW5jdGlvbiAodHhJbikge1xuICAgICAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHhJbi5zZXF1ZW5jZSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcldyaXRlci5idWZmZXIsICdaY2FzaFNlcXVlbmNIYXNoJyk7XG4gICAgfVxuICAgIHJldHVybiBaRVJPO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgaGFzaCBmb3Igb25lLCBhbGwgb3Igbm9uZSBvZiB0aGUgdHJhbnNhY3Rpb24gb3V0cHV0cyBkZXBlbmRpbmcgb24gdGhlIGhhc2h0eXBlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcGFyYW0gaW5JbmRleFxuICAgKiBAcmV0dXJucyBCdWZmZXIgQkxBS0UyYiBoYXNoIG9yIDI1Ni1iaXQgemVybyBpZiBkb2Vzbid0IGFwcGx5XG4gICAqL1xuICBnZXRPdXRwdXRzSGFzaChoYXNoVHlwZTogbnVtYmVyLCBpbkluZGV4OiBudW1iZXIpOiBCdWZmZXIge1xuICAgIGlmICgoaGFzaFR5cGUgJiAweDFmKSAhPT0gVHJhbnNhY3Rpb24uU0lHSEFTSF9TSU5HTEUgJiYgKGhhc2hUeXBlICYgMHgxZikgIT09IFRyYW5zYWN0aW9uLlNJR0hBU0hfTk9ORSkge1xuICAgICAgLy8gRmluZCBvdXQgdGhlIHNpemUgb2YgdGhlIG91dHB1dHMgYW5kIHdyaXRlIHRoZW1cbiAgICAgIGNvbnN0IHR4T3V0c1NpemUgPSB0aGlzLm91dHMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIG91dHB1dCkge1xuICAgICAgICByZXR1cm4gc3VtICsgOCArIHZhclNsaWNlU2l6ZShvdXRwdXQuc2NyaXB0KTtcbiAgICAgIH0sIDApO1xuXG4gICAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvY1Vuc2FmZSh0eE91dHNTaXplKSk7XG5cbiAgICAgIHRoaXMub3V0cy5mb3JFYWNoKGZ1bmN0aW9uIChvdXQpIHtcbiAgICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDY0KG91dC52YWx1ZSk7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKG91dC5zY3JpcHQpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBnZXRCbGFrZTJiSGFzaChidWZmZXJXcml0ZXIuYnVmZmVyLCAnWmNhc2hPdXRwdXRzSGFzaCcpO1xuICAgIH0gZWxzZSBpZiAoKGhhc2hUeXBlICYgMHgxZikgPT09IFRyYW5zYWN0aW9uLlNJR0hBU0hfU0lOR0xFICYmIGluSW5kZXggPCB0aGlzLm91dHMubGVuZ3RoKSB7XG4gICAgICAvLyBXcml0ZSBvbmx5IHRoZSBvdXRwdXQgc3BlY2lmaWVkIGluIGluSW5kZXhcbiAgICAgIGNvbnN0IG91dHB1dCA9IHRoaXMub3V0c1tpbkluZGV4XTtcblxuICAgICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihCdWZmZXIuYWxsb2NVbnNhZmUoOCArIHZhclNsaWNlU2l6ZShvdXRwdXQuc2NyaXB0KSkpO1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDY0KG91dHB1dC52YWx1ZSk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJTbGljZShvdXRwdXQuc2NyaXB0KTtcblxuICAgICAgcmV0dXJuIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcldyaXRlci5idWZmZXIsICdaY2FzaE91dHB1dHNIYXNoJyk7XG4gICAgfVxuICAgIHJldHVybiBaRVJPO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhc2ggdHJhbnNhY3Rpb24gZm9yIHNpZ25pbmcgYSB0cmFuc3BhcmVudCB0cmFuc2FjdGlvbiBpbiBaY2FzaC4gUHJvdGVjdGVkIHRyYW5zYWN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZC5cbiAgICogQHBhcmFtIGluSW5kZXhcbiAgICogQHBhcmFtIHByZXZPdXRTY3JpcHRcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcmV0dXJucyBCdWZmZXIgQkxBS0UyYiBoYXNoXG4gICAqL1xuICBoYXNoRm9yU2lnbmF0dXJlQnlOZXR3b3JrKFxuICAgIGluSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBwcmV2T3V0U2NyaXB0OiBCdWZmZXIsXG4gICAgdmFsdWU6IGJpZ2ludCB8IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBoYXNoVHlwZTogbnVtYmVyXG4gICk6IEJ1ZmZlciB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBwcm92aWRlIHZhbHVlYCk7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9zY3JpcHQvaW50ZXJwcmV0ZXIuY3BwI0wxMTc1XG4gICAgaWYgKHRoaXMudmVyc2lvbiA9PT0gNSkge1xuICAgICAgcmV0dXJuIGdldFNpZ25hdHVyZURpZ2VzdCh0aGlzLCBpbkluZGV4LCBwcmV2T3V0U2NyaXB0LCB2YWx1ZSwgaGFzaFR5cGUpO1xuICAgIH1cblxuICAgIC8vIFpDYXNoIGFtb3VudHMgYXJlIGFsd2F5cyB3aXRoaW4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcbiAgICB2YWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcgPyBOdW1iZXIodmFsdWUpIDogdmFsdWU7XG4gICAgdHlwZWZvcmNlKHR5cGVzLnR1cGxlKHR5cGVzLlVJbnQzMiwgdHlwZXMuQnVmZmVyLCB0eXBlcy5OdW1iZXIpLCBbaW5JbmRleCwgcHJldk91dFNjcmlwdCwgdmFsdWVdKTtcblxuICAgIGlmIChpbkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBpbkluZGV4YCk7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoaW5JbmRleCA+PSB0aGlzLmlucy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW5wdXQgaW5kZXggaXMgb3V0IG9mIHJhbmdlJyk7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoIXRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIHZlcnNpb24gJHt0aGlzLnZlcnNpb259YCk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzaFByZXZvdXRzID0gdGhpcy5nZXRQcmV2b3V0SGFzaChoYXNoVHlwZSk7XG4gICAgY29uc3QgaGFzaFNlcXVlbmNlID0gdGhpcy5nZXRTZXF1ZW5jZUhhc2goaGFzaFR5cGUpO1xuICAgIGNvbnN0IGhhc2hPdXRwdXRzID0gdGhpcy5nZXRPdXRwdXRzSGFzaChoYXNoVHlwZSwgaW5JbmRleCk7XG4gICAgY29uc3QgaGFzaEpvaW5TcGxpdHMgPSBaRVJPO1xuICAgIGNvbnN0IGhhc2hTaGllbGRlZFNwZW5kcyA9IFpFUk87XG4gICAgY29uc3QgaGFzaFNoaWVsZGVkT3V0cHV0cyA9IFpFUk87XG5cbiAgICBsZXQgYmFzZUJ1ZmZlclNpemUgPSAwO1xuICAgIGJhc2VCdWZmZXJTaXplICs9IDQgKiA1OyAvLyBoZWFkZXIsIG5WZXJzaW9uR3JvdXBJZCwgbG9ja190aW1lLCBuRXhwaXJ5SGVpZ2h0LCBoYXNoVHlwZVxuICAgIGJhc2VCdWZmZXJTaXplICs9IDMyICogNDsgLy8gMjU2IGhhc2hlczogaGFzaFByZXZvdXRzLCBoYXNoU2VxdWVuY2UsIGhhc2hPdXRwdXRzLCBoYXNoSm9pblNwbGl0c1xuICAgIGJhc2VCdWZmZXJTaXplICs9IDQgKiAyOyAvLyBpbnB1dC5pbmRleCwgaW5wdXQuc2VxdWVuY2VcbiAgICBiYXNlQnVmZmVyU2l6ZSArPSA4OyAvLyB2YWx1ZVxuICAgIGJhc2VCdWZmZXJTaXplICs9IDMyOyAvLyBpbnB1dC5oYXNoXG4gICAgYmFzZUJ1ZmZlclNpemUgKz0gdmFyU2xpY2VTaXplKHByZXZPdXRTY3JpcHQpOyAvLyBwcmV2T3V0U2NyaXB0XG4gICAgaWYgKHRoaXMuaXNTYXBsaW5nQ29tcGF0aWJsZSgpKSB7XG4gICAgICBiYXNlQnVmZmVyU2l6ZSArPSAzMiAqIDI7IC8vIGhhc2hTaGllbGRlZFNwZW5kcyBhbmQgaGFzaFNoaWVsZGVkT3V0cHV0c1xuICAgICAgYmFzZUJ1ZmZlclNpemUgKz0gODsgLy8gdmFsdWVCYWxhbmNlXG4gICAgfVxuXG4gICAgY29uc3QgbWFzayA9IHRoaXMub3ZlcndpbnRlcmVkID8gMSA6IDA7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy52ZXJzaW9uIHwgKG1hc2sgPDwgMzEpO1xuXG4gICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihCdWZmZXIuYWxsb2MoYmFzZUJ1ZmZlclNpemUpKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVJbnQzMihoZWFkZXIpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0aGlzLnZlcnNpb25Hcm91cElkKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShoYXNoUHJldm91dHMpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGhhc2hTZXF1ZW5jZSk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoaGFzaE91dHB1dHMpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGhhc2hKb2luU3BsaXRzKTtcbiAgICBpZiAodGhpcy5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGhhc2hTaGllbGRlZFNwZW5kcyk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShoYXNoU2hpZWxkZWRPdXRwdXRzKTtcbiAgICB9XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMubG9ja3RpbWUpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0aGlzLmV4cGlyeUhlaWdodCk7XG4gICAgaWYgKHRoaXMuaXNTYXBsaW5nQ29tcGF0aWJsZSgpKSB7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShWQUxVRV9JTlQ2NF9aRVJPKTtcbiAgICB9XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlSW50MzIoaGFzaFR5cGUpO1xuXG4gICAgLy8gVGhlIGlucHV0IGJlaW5nIHNpZ25lZCAocmVwbGFjaW5nIHRoZSBzY3JpcHRTaWcgd2l0aCBzY3JpcHRDb2RlICsgYW1vdW50KVxuICAgIC8vIFRoZSBwcmV2b3V0IG1heSBhbHJlYWR5IGJlIGNvbnRhaW5lZCBpbiBoYXNoUHJldm91dCwgYW5kIHRoZSBuU2VxdWVuY2VcbiAgICAvLyBtYXkgYWxyZWFkeSBiZSBjb250YWluZWQgaW4gaGFzaFNlcXVlbmNlLlxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnNbaW5JbmRleF07XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoaW5wdXQuaGFzaCk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKGlucHV0LmluZGV4KTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJTbGljZShwcmV2T3V0U2NyaXB0KTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50NjQodmFsdWUpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMihpbnB1dC5zZXF1ZW5jZSk7XG5cbiAgICBjb25zdCBwZXJzb25hbGl6YXRpb24gPSBCdWZmZXIuYWxsb2MoMTYpO1xuICAgIGNvbnN0IHByZWZpeCA9ICdaY2FzaFNpZ0hhc2gnO1xuICAgIHBlcnNvbmFsaXphdGlvbi53cml0ZShwcmVmaXgpO1xuICAgIHBlcnNvbmFsaXphdGlvbi53cml0ZVVJbnQzMkxFKHRoaXMuY29uc2Vuc3VzQnJhbmNoSWQsIHByZWZpeC5sZW5ndGgpO1xuXG4gICAgcmV0dXJuIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcldyaXRlci5idWZmZXIsIHBlcnNvbmFsaXphdGlvbik7XG4gIH1cblxuICB0b0J1ZmZlcihidWZmZXI/OiBCdWZmZXIsIGluaXRpYWxPZmZzZXQgPSAwKTogQnVmZmVyIHtcbiAgICBpZiAoIWJ1ZmZlcikgYnVmZmVyID0gQnVmZmVyLmFsbG9jVW5zYWZlKHRoaXMuYnl0ZUxlbmd0aCgpKTtcblxuICAgIGNvbnN0IGJ1ZmZlcldyaXRlciA9IG5ldyBCdWZmZXJXcml0ZXIoYnVmZmVyLCBpbml0aWFsT2Zmc2V0KTtcblxuICAgIGlmICh0aGlzLmlzT3ZlcndpbnRlckNvbXBhdGlibGUoKSkge1xuICAgICAgY29uc3QgbWFzayA9IHRoaXMub3ZlcndpbnRlcmVkID8gMSA6IDA7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVJbnQzMih0aGlzLnZlcnNpb24gfCAobWFzayA8PCAzMSkpOyAvLyBTZXQgb3ZlcndpbnRlciBiaXRcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0aGlzLnZlcnNpb25Hcm91cElkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlSW50MzIodGhpcy52ZXJzaW9uKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52ZXJzaW9uID09PSA1KSB7XG4gICAgICB0b0J1ZmZlclY1KGJ1ZmZlcldyaXRlciwgdGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRvQnVmZmVyVjQoYnVmZmVyV3JpdGVyLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoaW5pdGlhbE9mZnNldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gYnVmZmVyLnNsaWNlKGluaXRpYWxPZmZzZXQsIGJ1ZmZlcldyaXRlci5vZmZzZXQpO1xuICAgIH1cbiAgICByZXR1cm4gYnVmZmVyO1xuICB9XG5cbiAgZ2V0SGFzaChmb3JXaXRuZXNzPzogYm9vbGVhbik6IEJ1ZmZlciB7XG4gICAgaWYgKGZvcldpdG5lc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhcmd1bWVudGApO1xuICAgIH1cbiAgICBpZiAodGhpcy52ZXJzaW9uID09PSA1KSB7XG4gICAgICByZXR1cm4gZ2V0VHhpZERpZ2VzdCh0aGlzKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyeXB0by5oYXNoMjU2KHRoaXMudG9CdWZmZXIoKSk7XG4gIH1cblxuICBjbG9uZTxUTjIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBUTnVtYmVyPihhbW91bnRUeXBlPzogJ2JpZ2ludCcgfCAnbnVtYmVyJyk6IFpjYXNoVHJhbnNhY3Rpb248VE4yPiB7XG4gICAgcmV0dXJuIG5ldyBaY2FzaFRyYW5zYWN0aW9uPFROMj4odGhpcy5uZXR3b3JrLCB0aGlzLCBhbW91bnRUeXBlKTtcbiAgfVxufVxuIl19
|
|
383
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby96Y2FzaC9aY2FzaFRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9DQSxnRkFlQztBQUVELHNGQXVDQztBQTVGRCxpREFBb0Q7QUFDcEQsaURBQWlEO0FBQ2pELCtEQUEyRTtBQUUzRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUMzQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdkMsNkNBQTBDO0FBQzFDLHdEQUFtRTtBQUNuRSx5REFBMEc7QUFDMUcsK0NBQWtGO0FBRWxGLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0VBQWtFLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFJcEcsOEVBQThFO0FBQzlFLE1BQU0sd0JBQXdCLEdBQUcsVUFBVSxDQUFDO0FBQzVDLDhFQUE4RTtBQUM5RSxNQUFNLHVCQUF1QixHQUFHLFVBQVUsQ0FBQztBQUUzQyw0RUFBNEU7QUFDNUUsTUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUM7QUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7QUFDcEMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBQ2pDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQztBQUNqQyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsQ0FBQywrQkFBK0I7QUFDbkUsa0dBQWtHO0FBQ2xHLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQztBQUVuQyxNQUFhLDJCQUE0QixTQUFRLEtBQUs7SUFDcEQsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFKRCxrRUFJQztBQUVELFNBQWdCLGtDQUFrQyxDQUFDLE9BQWU7SUFDaEUsUUFBUSxPQUFPLEVBQUUsQ0FBQztR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LENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBQSwyQkFBYSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxPQUFPLHNCQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQXdDLFVBQWdDO1FBQzNFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBTSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDOztBQTlWSCw0Q0ErVkM7QUE5VlEsMkNBQTBCLEdBQUcsQ0FBQyxBQUFKLENBQUs7QUFDL0IsbUNBQWtCLEdBQUcsQ0FBQyxBQUFKLENBQUs7QUFDdkIsZ0NBQWUsR0FBRyxDQUFDLEFBQUosQ0FBSztBQUVwQix1Q0FBc0IsR0FBRyxHQUFHLEFBQU4sQ0FBTztBQUM3QixvQ0FBbUIsR0FBRyxHQUFHLEFBQU4sQ0FBTztBQUMxQixvQ0FBbUIsR0FBRyxHQUFHLEFBQU4sQ0FBTztBQUMxQixzQ0FBcUIsR0FBRyxHQUFHLEFBQU4sQ0FBTztBQUM1QixzQ0FBcUIsR0FBRyxHQUFHLEFBQU4sQ0FBTztBQUM1QixvQ0FBbUIsR0FBRyxHQUFHLEFBQU4sQ0FBTztBQUMxQixvQ0FBbUIsR0FBRyxHQUFHLEFBQU4sQ0FBTztBQUMxQixzQ0FBcUIsR0FBRyxHQUFHLEFBQU4sQ0FBTztBQUM1QixzQ0FBcUIsR0FBRyxHQUFHLEFBQU4sQ0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uLCBjcnlwdG8gfSBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL3R5cGVzJztcbmltcG9ydCB7IEJ1ZmZlclJlYWRlciwgQnVmZmVyV3JpdGVyIH0gZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvYnVmZmVydXRpbHMnO1xuXG5jb25zdCB2YXJ1aW50ID0gcmVxdWlyZSgndmFydWludC1iaXRjb2luJyk7XG5jb25zdCB0eXBlZm9yY2UgPSByZXF1aXJlKCd0eXBlZm9yY2UnKTtcblxuaW1wb3J0IHsgbmV0d29ya3MgfSBmcm9tICcuLi8uLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb24sIHZhclNsaWNlU2l6ZSB9IGZyb20gJy4uL1V0eG9UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBmcm9tQnVmZmVyVjQsIGZyb21CdWZmZXJWNSwgdG9CdWZmZXJWNCwgdG9CdWZmZXJWNSwgVkFMVUVfSU5UNjRfWkVSTyB9IGZyb20gJy4vWmNhc2hCdWZmZXJ1dGlscyc7XG5pbXBvcnQgeyBnZXRCbGFrZTJiSGFzaCwgZ2V0U2lnbmF0dXJlRGlnZXN0LCBnZXRUeGlkRGlnZXN0IH0gZnJvbSAnLi9oYXNoWmlwMDI0NCc7XG5cbmNvbnN0IFpFUk8gPSBCdWZmZXIuZnJvbSgnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsICdoZXgnKTtcblxuZXhwb3J0IHR5cGUgWmNhc2hOZXR3b3JrID0gdHlwZW9mIG5ldHdvcmtzLnpjYXNoIHwgdHlwZW9mIG5ldHdvcmtzLnpjYXNoVGVzdDtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNy4wL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDQwXG5jb25zdCBTQVBMSU5HX1ZFUlNJT05fR1JPVVBfSUQgPSAweDg5MmYyMDg1O1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNy4wL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDUyXG5jb25zdCBaSVAyMjVfVkVSU0lPTl9HUk9VUF9JRCA9IDB4MjZhNzI3MGE7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjcuMC9zcmMvY29uc2Vuc3VzL3VwZ3JhZGVzLmNwcCNMMTFcbmNvbnN0IE9WRVJXSU5URVJfQlJBTkNIX0lEID0gMHg1YmE4MWIxOTtcbmNvbnN0IENBTk9QWV9CUkFOQ0hfSUQgPSAweGU5ZmY3NWE2O1xuY29uc3QgTlU1X0JSQU5DSF9JRCA9IDB4YzJkNmQwYjQ7XG5jb25zdCBOVTZfQlJBTkNIX0lEID0gMHhjOGU3MTA1NTtcbmNvbnN0IE5VNl8xX0JSQU5DSF9JRCA9IDB4NGRlYzRkZjA7IC8vIGh0dHBzOi8vemlwcy56LmNhc2gvemlwLTAyNTVcbi8vIE5VNi4yIGVtZXJnZW5jeSBoYXJkIGZvcmsgcmUtZW5hYmxpbmcgT3JjaGFyZCB3aXRoIGEgY29ycmVjdGVkIGNpcmN1aXQgKG1haW5uZXQgYmxvY2sgMzM2NDYwMCkuXG5jb25zdCBOVTZfMl9CUkFOQ0hfSUQgPSAweDU0MzdmMzMwO1xuXG5leHBvcnQgY2xhc3MgVW5zdXBwb3J0ZWRUcmFuc2FjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFZlcnNpb25Hcm91cElkRm9yVmVyc2lvbih2ZXJzaW9uOiBudW1iZXIpOiBudW1iZXIge1xuICBzd2l0Y2ggKHZlcnNpb24pIHtcbiAgICBjYXNlIDQwMDpcbiAgICBjYXNlIDQ1MDpcbiAgICBjYXNlIDQ1NTpcbiAgICBjYXNlIDQ1NjpcbiAgICBjYXNlIDQ1NzpcbiAgICAgIHJldHVybiBTQVBMSU5HX1ZFUlNJT05fR1JPVVBfSUQ7XG4gICAgY2FzZSA1MDA6XG4gICAgY2FzZSA1NTA6XG4gICAgY2FzZSA1NTE6XG4gICAgY2FzZSA1NTI6XG4gICAgICByZXR1cm4gWklQMjI1X1ZFUlNJT05fR1JPVVBfSUQ7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBubyB2YWx1ZSBmb3IgdmVyc2lvbiAke3ZlcnNpb259YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0Q29uc2Vuc3VzQnJhbmNoSWRGb3JWZXJzaW9uKG5ldHdvcms6IFpjYXNoTmV0d29yaywgdmVyc2lvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgLy8gVGVzdG5ldCBoYXMgbm90IHlldCBhY3RpdmF0ZWQgTlU2LjIgKHRlc3RuZXQgYWN0aXZhdGlvbiBibG9jayA0MDUyMDAwKSwgc28ga2VlcFxuICAvLyBkZWZhdWx0aW5nIHRvIE5VNi4xIHRoZXJlLiBNYWlubmV0IGFjdGl2YXRlZCBOVTYuMiBhdCBibG9jayAzMzY0NjAwLlxuICBpZiAobmV0d29yayA9PT0gbmV0d29ya3MuemNhc2hUZXN0KSB7XG4gICAgaWYgKHZlcnNpb24gPT09IDQgfHwgdmVyc2lvbiA9PT0gNSkge1xuICAgICAgcmV0dXJuIE5VNl8xX0JSQU5DSF9JRDtcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKHZlcnNpb24pIHtcbiAgICBjYXNlIDE6XG4gICAgY2FzZSAyOlxuICAgICAgcmV0dXJuIDA7XG4gICAgY2FzZSAzOlxuICAgICAgcmV0dXJuIE9WRVJXSU5URVJfQlJBTkNIX0lEO1xuICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfQ0FOT1BZOlxuICAgICAgLy8gaHR0cHM6Ly96aXBzLnouY2FzaC96aXAtMDI1MVxuICAgICAgcmV0dXJuIENBTk9QWV9CUkFOQ0hfSUQ7XG4gICAgY2FzZSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT040X0JSQU5DSF9OVTU6XG4gICAgY2FzZSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT041X0JSQU5DSF9OVTU6XG4gICAgICAvLyBodHRwczovL3ppcHMuei5jYXNoL3ppcC0wMjUyXG4gICAgICAvLyBOVTUgaXMgZGVwcmVjYXRlZCBvbiBtYWlubmV0IG9uIGJsb2NrIDI3MjY0MDBcbiAgICAgIHJldHVybiBOVTVfQlJBTkNIX0lEO1xuICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfTlU2OlxuICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONV9CUkFOQ0hfTlU2OlxuICAgICAgLy8gaHR0cHM6Ly96aXBzLnouY2FzaC96aXAtMDI1M1xuICAgICAgcmV0dXJuIE5VNl9CUkFOQ0hfSUQ7XG4gICAgY2FzZSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT040X0JSQU5DSF9OVTZfMTpcbiAgICBjYXNlIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjVfQlJBTkNIX05VNl8xOlxuICAgICAgLy8gaHR0cHM6Ly96aXBzLnouY2FzaC96aXAtMDI1NVxuICAgICAgcmV0dXJuIE5VNl8xX0JSQU5DSF9JRDtcbiAgICBjYXNlIDQ6XG4gICAgY2FzZSA1OlxuICAgIGNhc2UgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfTlU2XzI6XG4gICAgY2FzZSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT041X0JSQU5DSF9OVTZfMjpcbiAgICAgIC8vIE5VNi4yIOKAlCBlbWVyZ2VuY3kgaGFyZCBmb3JrIHJlLWVuYWJsaW5nIE9yY2hhcmQsIG1haW5uZXQgYmxvY2sgMzM2NDYwMFxuICAgICAgcmV0dXJuIE5VNl8yX0JSQU5DSF9JRDtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYG5vIHZhbHVlIGZvciB2ZXJzaW9uICR7dmVyc2lvbn1gKTtcbn1cblxuZXhwb3J0IGNsYXNzIFpjYXNoVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gZXh0ZW5kcyBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICBzdGF0aWMgVkVSU0lPTl9KT0lOU1BMSVRTX1NVUFBPUlQgPSAyO1xuICBzdGF0aWMgVkVSU0lPTl9PVkVSV0lOVEVSID0gMztcbiAgc3RhdGljIFZFUlNJT05fU0FQTElORyA9IDQ7XG5cbiAgc3RhdGljIFZFUlNJT040X0JSQU5DSF9DQU5PUFkgPSA0MDA7XG4gIHN0YXRpYyBWRVJTSU9ONF9CUkFOQ0hfTlU1ID0gNDUwO1xuICBzdGF0aWMgVkVSU0lPTjRfQlJBTkNIX05VNiA9IDQ1NTtcbiAgc3RhdGljIFZFUlNJT040X0JSQU5DSF9OVTZfMSA9IDQ1NjtcbiAgc3RhdGljIFZFUlNJT040X0JSQU5DSF9OVTZfMiA9IDQ1NztcbiAgc3RhdGljIFZFUlNJT041X0JSQU5DSF9OVTUgPSA1MDA7XG4gIHN0YXRpYyBWRVJTSU9ONV9CUkFOQ0hfTlU2ID0gNTUwO1xuICBzdGF0aWMgVkVSU0lPTjVfQlJBTkNIX05VNl8xID0gNTUxO1xuICBzdGF0aWMgVkVSU0lPTjVfQlJBTkNIX05VNl8yID0gNTUyO1xuXG4gIC8vIDEgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHBvc3Qgb3ZlcndpbnRlciB1cGdyYWRlLCAwIG90aGVyd2lzZVxuICBvdmVyd2ludGVyZWQgPSAwO1xuICAvLyAweDAzQzQ4MjcwICg2MzIxMDA5NikgZm9yIG92ZXJ3aW50ZXIgYW5kIDB4ODkyRjIwODUgKDIzMDE1NjcxMDkpIGZvciBzYXBsaW5nXG4gIHZlcnNpb25Hcm91cElkID0gMDtcbiAgLy8gQmxvY2sgaGVpZ2h0IGFmdGVyIHdoaWNoIHRoaXMgdHJhbnNhY3Rpb25zIHdpbGwgZXhwaXJlLCBvciAwIHRvIGRpc2FibGUgZXhwaXJ5XG4gIGV4cGlyeUhlaWdodCA9IDA7XG4gIGNvbnNlbnN1c0JyYW5jaElkOiBudW1iZXI7XG4gIC8vIFJhdyA4LWJ5dGUgbGl0dGxlLWVuZGlhbiBzaWduZWQgaW50NjQgdmFsdWVCYWxhbmNlIGZpZWxkIGZvciBTYXBsaW5nIHY0IHR4cy5cbiAgLy8gTmVnYXRpdmUgd2hlbiB2YWx1ZSBmbG93cyBmcm9tIHRoZSB0cmFuc3BhcmVudCBwb29sIGludG8gdGhlIHNoaWVsZGVkIHBvb2xcbiAgLy8gKHQtPnogc2hpZWxkaW5nKS4gU3RvcmVkIHZlcmJhdGltIHNvIHRvQnVmZmVyL2dldElkIHJvdW5kLXRyaXAgY29ycmVjdGx5LlxuICBzYXBsaW5nVmFsdWVCYWxhbmNlOiBCdWZmZXIgPSBWQUxVRV9JTlQ2NF9aRVJPO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuZXR3b3JrOiBaY2FzaE5ldHdvcmssIHR4PzogWmNhc2hUcmFuc2FjdGlvbjxiaWdpbnQgfCBudW1iZXI+LCBhbW91bnRUeXBlPzogJ2JpZ2ludCcgfCAnbnVtYmVyJykge1xuICAgIHN1cGVyKG5ldHdvcmssIHR4LCBhbW91bnRUeXBlKTtcblxuICAgIGxldCBjb25zZW5zdXNCcmFuY2hJZDtcbiAgICBpZiAodHgpIHtcbiAgICAgIHRoaXMub3ZlcndpbnRlcmVkID0gdHgub3ZlcndpbnRlcmVkO1xuICAgICAgdGhpcy52ZXJzaW9uR3JvdXBJZCA9IHR4LnZlcnNpb25Hcm91cElkO1xuICAgICAgdGhpcy5leHBpcnlIZWlnaHQgPSB0eC5leHBpcnlIZWlnaHQ7XG4gICAgICB0aGlzLnNhcGxpbmdWYWx1ZUJhbGFuY2UgPSB0eC5zYXBsaW5nVmFsdWVCYWxhbmNlO1xuXG4gICAgICBpZiAodHguY29uc2Vuc3VzQnJhbmNoSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zZW5zdXNCcmFuY2hJZCA9IHR4LmNvbnNlbnN1c0JyYW5jaElkO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNvbnNlbnN1c0JyYW5jaElkID0gY29uc2Vuc3VzQnJhbmNoSWQgPz8gZ2V0RGVmYXVsdENvbnNlbnN1c0JyYW5jaElkRm9yVmVyc2lvbihuZXR3b3JrLCB0aGlzLnZlcnNpb24pO1xuICB9XG5cbiAgc3RhdGljIGZyb21CdWZmZXI8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gICAgYnVmZmVyOiBCdWZmZXIsXG4gICAgX19ub1N0cmljdDogYm9vbGVhbixcbiAgICBhbW91bnRUeXBlOiAnbnVtYmVyJyB8ICdiaWdpbnQnID0gJ251bWJlcicsXG4gICAgbmV0d29yaz86IFpjYXNoTmV0d29ya1xuICApOiBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghbmV0d29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgbmV0d29ya2ApO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlclJlYWRlciA9IG5ldyBCdWZmZXJSZWFkZXIoYnVmZmVyKTtcbiAgICBjb25zdCB0eCA9IG5ldyBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+KG5ldHdvcmspO1xuICAgIHR4LnZlcnNpb24gPSBidWZmZXJSZWFkZXIucmVhZEludDMyKCk7XG5cbiAgICAvLyBTcGxpdCB0aGUgaGVhZGVyIGludG8gZk92ZXJ3aW50ZXJlZCBhbmQgblZlcnNpb25cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92NC41LjEvc3JjL3ByaW1pdGl2ZXMvdHJhbnNhY3Rpb24uaCNMNzcyXG4gICAgdHgub3ZlcndpbnRlcmVkID0gdHgudmVyc2lvbiA+Pj4gMzE7IC8vIE11c3QgYmUgMSBmb3IgdmVyc2lvbiAzIGFuZCB1cFxuICAgIHR4LnZlcnNpb24gPSB0eC52ZXJzaW9uICYgMHgwN2ZmZmZmZmY7IC8vIDMgZm9yIG92ZXJ3aW50ZXJcbiAgICB0eC5jb25zZW5zdXNCcmFuY2hJZCA9IGdldERlZmF1bHRDb25zZW5zdXNCcmFuY2hJZEZvclZlcnNpb24obmV0d29yaywgdHgudmVyc2lvbik7XG5cbiAgICBpZiAodHguaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICB0eC52ZXJzaW9uR3JvdXBJZCA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDMyKCk7XG4gICAgfVxuXG4gICAgaWYgKHR4LnZlcnNpb24gPT09IDUpIHtcbiAgICAgIGZyb21CdWZmZXJWNShidWZmZXJSZWFkZXIsIHR4LCBhbW91bnRUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZnJvbUJ1ZmZlclY0KGJ1ZmZlclJlYWRlciwgdHgsIGFtb3VudFR5cGUpO1xuICAgIH1cblxuICAgIGlmIChfX25vU3RyaWN0KSByZXR1cm4gdHg7XG4gICAgaWYgKGJ1ZmZlclJlYWRlci5vZmZzZXQgIT09IGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHRyYWlsaW5nID0gYnVmZmVyLnNsaWNlKGJ1ZmZlclJlYWRlci5vZmZzZXQpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHRyYWlsaW5nIGJ5dGVzOiAke3RyYWlsaW5nLnRvU3RyaW5nKCdoZXgnKX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICBzdGF0aWMgZnJvbUJ1ZmZlcldpdGhWZXJzaW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICAgIGJ1ZjogQnVmZmVyLFxuICAgIG5ldHdvcms6IFpjYXNoTmV0d29yayxcbiAgICB2ZXJzaW9uPzogbnVtYmVyLFxuICAgIGFtb3VudFR5cGU6ICdudW1iZXInIHwgJ2JpZ2ludCcgPSAnbnVtYmVyJ1xuICApOiBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+IHtcbiAgICBjb25zdCB0eCA9IFpjYXNoVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcjxUTnVtYmVyPihidWYsIGZhbHNlLCBhbW91bnRUeXBlLCBuZXR3b3JrKTtcbiAgICBpZiAodmVyc2lvbikge1xuICAgICAgdHguY29uc2Vuc3VzQnJhbmNoSWQgPSBnZXREZWZhdWx0Q29uc2Vuc3VzQnJhbmNoSWRGb3JWZXJzaW9uKG5ldHdvcmssIHZlcnNpb24pO1xuICAgIH1cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICBieXRlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgbGV0IGJ5dGVMZW5ndGggPSBzdXBlci5ieXRlTGVuZ3RoKCk7XG4gICAgaWYgKHRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICBieXRlTGVuZ3RoICs9IDQ7IC8vIG5WZXJzaW9uR3JvdXBJZFxuICAgIH1cbiAgICBpZiAodGhpcy5pc092ZXJ3aW50ZXJDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJ5dGVMZW5ndGggKz0gNDsgLy8gbkV4cGlyeUhlaWdodFxuICAgIH1cbiAgICBjb25zdCBlbXB0eVZlY3Rvckxlbmd0aCA9IHZhcnVpbnQuZW5jb2RpbmdMZW5ndGgoMCk7XG4gICAgaWYgKHRoaXMudmVyc2lvbiA9PT0gNSkge1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDgyMlxuICAgICAgYnl0ZUxlbmd0aCArPSA0OyAvLyBjb25zZW5zdXNCcmFuY2hJZFxuICAgICAgYnl0ZUxlbmd0aCArPSBlbXB0eVZlY3Rvckxlbmd0aDsgLy8gc2FwbGluZ0J1bmRsZSBpbnB1dHNcbiAgICAgIGJ5dGVMZW5ndGggKz0gZW1wdHlWZWN0b3JMZW5ndGg7IC8vIHNhcGxpbmdCdW5kbGUgb3V0cHV0c1xuICAgICAgYnl0ZUxlbmd0aCArPSAxOyAvLyBvcmNoYXJkQnVuZGxlIChlbXB0eSlcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuaXNTYXBsaW5nQ29tcGF0aWJsZSgpKSB7XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96Y2FzaC96Y2FzaC9ibG9iL3Y0LjUuMS9zcmMvcHJpbWl0aXZlcy90cmFuc2FjdGlvbi5oI0w4NjJcbiAgICAgICAgYnl0ZUxlbmd0aCArPSA4OyAvLyB2YWx1ZUJhbGFuY2UgKHVpbnQ2NClcbiAgICAgICAgYnl0ZUxlbmd0aCArPSBlbXB0eVZlY3Rvckxlbmd0aDsgLy8gaW5wdXRzXG4gICAgICAgIGJ5dGVMZW5ndGggKz0gZW1wdHlWZWN0b3JMZW5ndGg7IC8vIG91dHB1dHNcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnN1cHBvcnRzSm9pblNwbGl0cygpKSB7XG4gICAgICAgIC8vXG4gICAgICAgIGJ5dGVMZW5ndGggKz0gZW1wdHlWZWN0b3JMZW5ndGg7IC8vIGpvaW5zcGxpdHNcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJ5dGVMZW5ndGg7XG4gIH1cblxuICBpc1NhcGxpbmdDb21wYXRpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcndpbnRlcmVkICYmIHRoaXMudmVyc2lvbiA+PSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT05fU0FQTElORztcbiAgfVxuXG4gIGlzT3ZlcndpbnRlckNvbXBhdGlibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5vdmVyd2ludGVyZWQgJiYgdGhpcy52ZXJzaW9uID49IFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTl9PVkVSV0lOVEVSO1xuICB9XG5cbiAgc3VwcG9ydHNKb2luU3BsaXRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcndpbnRlcmVkICYmIHRoaXMudmVyc2lvbiA+PSBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT05fSk9JTlNQTElUU19TVVBQT1JUO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgaGFzaCBmb3IgYWxsIG9yIG5vbmUgb2YgdGhlIHRyYW5zYWN0aW9uIGlucHV0cyBkZXBlbmRpbmcgb24gdGhlIGhhc2h0eXBlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcmV0dXJucyBCdWZmZXIgLSBCTEFLRTJiIGhhc2ggb3IgMjU2LWJpdCB6ZXJvIGlmIGRvZXNuJ3QgYXBwbHlcbiAgICovXG4gIGdldFByZXZvdXRIYXNoKGhhc2hUeXBlOiBudW1iZXIpOiBCdWZmZXIge1xuICAgIGlmICghKGhhc2hUeXBlICYgVHJhbnNhY3Rpb24uU0lHSEFTSF9BTllPTkVDQU5QQVkpKSB7XG4gICAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvY1Vuc2FmZSgzNiAqIHRoaXMuaW5zLmxlbmd0aCkpO1xuXG4gICAgICB0aGlzLmlucy5mb3JFYWNoKGZ1bmN0aW9uICh0eEluKSB7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKHR4SW4uaGFzaCk7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eEluLmluZGV4KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gZ2V0Qmxha2UyYkhhc2goYnVmZmVyV3JpdGVyLmJ1ZmZlciwgJ1pjYXNoUHJldm91dEhhc2gnKTtcbiAgICB9XG4gICAgcmV0dXJuIFpFUk87XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBoYXNoIGZvciBhbGwgb3Igbm9uZSBvZiB0aGUgdHJhbnNhY3Rpb25zIGlucHV0cyBzZXF1ZW5jZSBudW1iZXJzIGRlcGVuZGluZyBvbiB0aGUgaGFzaHR5cGVcbiAgICogQHBhcmFtIGhhc2hUeXBlXG4gICAqIEByZXR1cm5zIEJ1ZmZlciBCTEFLRTJiIGhhc2ggb3IgMjU2LWJpdCB6ZXJvIGlmIGRvZXNuJ3QgYXBwbHlcbiAgICovXG4gIGdldFNlcXVlbmNlSGFzaChoYXNoVHlwZTogbnVtYmVyKTogQnVmZmVyIHtcbiAgICBpZiAoXG4gICAgICAhKGhhc2hUeXBlICYgVHJhbnNhY3Rpb24uU0lHSEFTSF9BTllPTkVDQU5QQVkpICYmXG4gICAgICAoaGFzaFR5cGUgJiAweDFmKSAhPT0gVHJhbnNhY3Rpb24uU0lHSEFTSF9TSU5HTEUgJiZcbiAgICAgIChoYXNoVHlwZSAmIDB4MWYpICE9PSBUcmFuc2FjdGlvbi5TSUdIQVNIX05PTkVcbiAgICApIHtcbiAgICAgIGNvbnN0IGJ1ZmZlcldyaXRlciA9IG5ldyBCdWZmZXJXcml0ZXIoQnVmZmVyLmFsbG9jVW5zYWZlKDQgKiB0aGlzLmlucy5sZW5ndGgpKTtcblxuICAgICAgdGhpcy5pbnMuZm9yRWFjaChmdW5jdGlvbiAodHhJbikge1xuICAgICAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHhJbi5zZXF1ZW5jZSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcldyaXRlci5idWZmZXIsICdaY2FzaFNlcXVlbmNIYXNoJyk7XG4gICAgfVxuICAgIHJldHVybiBaRVJPO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgaGFzaCBmb3Igb25lLCBhbGwgb3Igbm9uZSBvZiB0aGUgdHJhbnNhY3Rpb24gb3V0cHV0cyBkZXBlbmRpbmcgb24gdGhlIGhhc2h0eXBlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcGFyYW0gaW5JbmRleFxuICAgKiBAcmV0dXJucyBCdWZmZXIgQkxBS0UyYiBoYXNoIG9yIDI1Ni1iaXQgemVybyBpZiBkb2Vzbid0IGFwcGx5XG4gICAqL1xuICBnZXRPdXRwdXRzSGFzaChoYXNoVHlwZTogbnVtYmVyLCBpbkluZGV4OiBudW1iZXIpOiBCdWZmZXIge1xuICAgIGlmICgoaGFzaFR5cGUgJiAweDFmKSAhPT0gVHJhbnNhY3Rpb24uU0lHSEFTSF9TSU5HTEUgJiYgKGhhc2hUeXBlICYgMHgxZikgIT09IFRyYW5zYWN0aW9uLlNJR0hBU0hfTk9ORSkge1xuICAgICAgLy8gRmluZCBvdXQgdGhlIHNpemUgb2YgdGhlIG91dHB1dHMgYW5kIHdyaXRlIHRoZW1cbiAgICAgIGNvbnN0IHR4T3V0c1NpemUgPSB0aGlzLm91dHMucmVkdWNlKGZ1bmN0aW9uIChzdW0sIG91dHB1dCkge1xuICAgICAgICByZXR1cm4gc3VtICsgOCArIHZhclNsaWNlU2l6ZShvdXRwdXQuc2NyaXB0KTtcbiAgICAgIH0sIDApO1xuXG4gICAgICBjb25zdCBidWZmZXJXcml0ZXIgPSBuZXcgQnVmZmVyV3JpdGVyKEJ1ZmZlci5hbGxvY1Vuc2FmZSh0eE91dHNTaXplKSk7XG5cbiAgICAgIHRoaXMub3V0cy5mb3JFYWNoKGZ1bmN0aW9uIChvdXQpIHtcbiAgICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDY0KG91dC52YWx1ZSk7XG4gICAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKG91dC5zY3JpcHQpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBnZXRCbGFrZTJiSGFzaChidWZmZXJXcml0ZXIuYnVmZmVyLCAnWmNhc2hPdXRwdXRzSGFzaCcpO1xuICAgIH0gZWxzZSBpZiAoKGhhc2hUeXBlICYgMHgxZikgPT09IFRyYW5zYWN0aW9uLlNJR0hBU0hfU0lOR0xFICYmIGluSW5kZXggPCB0aGlzLm91dHMubGVuZ3RoKSB7XG4gICAgICAvLyBXcml0ZSBvbmx5IHRoZSBvdXRwdXQgc3BlY2lmaWVkIGluIGluSW5kZXhcbiAgICAgIGNvbnN0IG91dHB1dCA9IHRoaXMub3V0c1tpbkluZGV4XTtcblxuICAgICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihCdWZmZXIuYWxsb2NVbnNhZmUoOCArIHZhclNsaWNlU2l6ZShvdXRwdXQuc2NyaXB0KSkpO1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDY0KG91dHB1dC52YWx1ZSk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVWYXJTbGljZShvdXRwdXQuc2NyaXB0KTtcblxuICAgICAgcmV0dXJuIGdldEJsYWtlMmJIYXNoKGJ1ZmZlcldyaXRlci5idWZmZXIsICdaY2FzaE91dHB1dHNIYXNoJyk7XG4gICAgfVxuICAgIHJldHVybiBaRVJPO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhc2ggdHJhbnNhY3Rpb24gZm9yIHNpZ25pbmcgYSB0cmFuc3BhcmVudCB0cmFuc2FjdGlvbiBpbiBaY2FzaC4gUHJvdGVjdGVkIHRyYW5zYWN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZC5cbiAgICogQHBhcmFtIGluSW5kZXhcbiAgICogQHBhcmFtIHByZXZPdXRTY3JpcHRcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEBwYXJhbSBoYXNoVHlwZVxuICAgKiBAcmV0dXJucyBCdWZmZXIgQkxBS0UyYiBoYXNoXG4gICAqL1xuICBoYXNoRm9yU2lnbmF0dXJlQnlOZXR3b3JrKFxuICAgIGluSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBwcmV2T3V0U2NyaXB0OiBCdWZmZXIsXG4gICAgdmFsdWU6IGJpZ2ludCB8IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBoYXNoVHlwZTogbnVtYmVyXG4gICk6IEJ1ZmZlciB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBwcm92aWRlIHZhbHVlYCk7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjQuNS4xL3NyYy9zY3JpcHQvaW50ZXJwcmV0ZXIuY3BwI0wxMTc1XG4gICAgaWYgKHRoaXMudmVyc2lvbiA9PT0gNSkge1xuICAgICAgcmV0dXJuIGdldFNpZ25hdHVyZURpZ2VzdCh0aGlzLCBpbkluZGV4LCBwcmV2T3V0U2NyaXB0LCB2YWx1ZSwgaGFzaFR5cGUpO1xuICAgIH1cblxuICAgIC8vIFpDYXNoIGFtb3VudHMgYXJlIGFsd2F5cyB3aXRoaW4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcbiAgICB2YWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcgPyBOdW1iZXIodmFsdWUpIDogdmFsdWU7XG4gICAgdHlwZWZvcmNlKHR5cGVzLnR1cGxlKHR5cGVzLlVJbnQzMiwgdHlwZXMuQnVmZmVyLCB0eXBlcy5OdW1iZXIpLCBbaW5JbmRleCwgcHJldk91dFNjcmlwdCwgdmFsdWVdKTtcblxuICAgIGlmIChpbkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBpbkluZGV4YCk7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoaW5JbmRleCA+PSB0aGlzLmlucy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW5wdXQgaW5kZXggaXMgb3V0IG9mIHJhbmdlJyk7XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoIXRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIHZlcnNpb24gJHt0aGlzLnZlcnNpb259YCk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzaFByZXZvdXRzID0gdGhpcy5nZXRQcmV2b3V0SGFzaChoYXNoVHlwZSk7XG4gICAgY29uc3QgaGFzaFNlcXVlbmNlID0gdGhpcy5nZXRTZXF1ZW5jZUhhc2goaGFzaFR5cGUpO1xuICAgIGNvbnN0IGhhc2hPdXRwdXRzID0gdGhpcy5nZXRPdXRwdXRzSGFzaChoYXNoVHlwZSwgaW5JbmRleCk7XG4gICAgY29uc3QgaGFzaEpvaW5TcGxpdHMgPSBaRVJPO1xuICAgIGNvbnN0IGhhc2hTaGllbGRlZFNwZW5kcyA9IFpFUk87XG4gICAgY29uc3QgaGFzaFNoaWVsZGVkT3V0cHV0cyA9IFpFUk87XG5cbiAgICBsZXQgYmFzZUJ1ZmZlclNpemUgPSAwO1xuICAgIGJhc2VCdWZmZXJTaXplICs9IDQgKiA1OyAvLyBoZWFkZXIsIG5WZXJzaW9uR3JvdXBJZCwgbG9ja190aW1lLCBuRXhwaXJ5SGVpZ2h0LCBoYXNoVHlwZVxuICAgIGJhc2VCdWZmZXJTaXplICs9IDMyICogNDsgLy8gMjU2IGhhc2hlczogaGFzaFByZXZvdXRzLCBoYXNoU2VxdWVuY2UsIGhhc2hPdXRwdXRzLCBoYXNoSm9pblNwbGl0c1xuICAgIGJhc2VCdWZmZXJTaXplICs9IDQgKiAyOyAvLyBpbnB1dC5pbmRleCwgaW5wdXQuc2VxdWVuY2VcbiAgICBiYXNlQnVmZmVyU2l6ZSArPSA4OyAvLyB2YWx1ZVxuICAgIGJhc2VCdWZmZXJTaXplICs9IDMyOyAvLyBpbnB1dC5oYXNoXG4gICAgYmFzZUJ1ZmZlclNpemUgKz0gdmFyU2xpY2VTaXplKHByZXZPdXRTY3JpcHQpOyAvLyBwcmV2T3V0U2NyaXB0XG4gICAgaWYgKHRoaXMuaXNTYXBsaW5nQ29tcGF0aWJsZSgpKSB7XG4gICAgICBiYXNlQnVmZmVyU2l6ZSArPSAzMiAqIDI7IC8vIGhhc2hTaGllbGRlZFNwZW5kcyBhbmQgaGFzaFNoaWVsZGVkT3V0cHV0c1xuICAgICAgYmFzZUJ1ZmZlclNpemUgKz0gODsgLy8gdmFsdWVCYWxhbmNlXG4gICAgfVxuXG4gICAgY29uc3QgbWFzayA9IHRoaXMub3ZlcndpbnRlcmVkID8gMSA6IDA7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy52ZXJzaW9uIHwgKG1hc2sgPDwgMzEpO1xuXG4gICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihCdWZmZXIuYWxsb2MoYmFzZUJ1ZmZlclNpemUpKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVJbnQzMihoZWFkZXIpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0aGlzLnZlcnNpb25Hcm91cElkKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShoYXNoUHJldm91dHMpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGhhc2hTZXF1ZW5jZSk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoaGFzaE91dHB1dHMpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGhhc2hKb2luU3BsaXRzKTtcbiAgICBpZiAodGhpcy5pc1NhcGxpbmdDb21wYXRpYmxlKCkpIHtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGhhc2hTaGllbGRlZFNwZW5kcyk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShoYXNoU2hpZWxkZWRPdXRwdXRzKTtcbiAgICB9XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMubG9ja3RpbWUpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0aGlzLmV4cGlyeUhlaWdodCk7XG4gICAgaWYgKHRoaXMuaXNTYXBsaW5nQ29tcGF0aWJsZSgpKSB7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZSh0aGlzLnNhcGxpbmdWYWx1ZUJhbGFuY2UpO1xuICAgIH1cbiAgICBidWZmZXJXcml0ZXIud3JpdGVJbnQzMihoYXNoVHlwZSk7XG5cbiAgICAvLyBUaGUgaW5wdXQgYmVpbmcgc2lnbmVkIChyZXBsYWNpbmcgdGhlIHNjcmlwdFNpZyB3aXRoIHNjcmlwdENvZGUgKyBhbW91bnQpXG4gICAgLy8gVGhlIHByZXZvdXQgbWF5IGFscmVhZHkgYmUgY29udGFpbmVkIGluIGhhc2hQcmV2b3V0LCBhbmQgdGhlIG5TZXF1ZW5jZVxuICAgIC8vIG1heSBhbHJlYWR5IGJlIGNvbnRhaW5lZCBpbiBoYXNoU2VxdWVuY2UuXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmluc1tpbkluZGV4XTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShpbnB1dC5oYXNoKTtcbiAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIoaW5wdXQuaW5kZXgpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVZhclNsaWNlKHByZXZPdXRTY3JpcHQpO1xuICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQ2NCh2YWx1ZSk7XG4gICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKGlucHV0LnNlcXVlbmNlKTtcblxuICAgIGNvbnN0IHBlcnNvbmFsaXphdGlvbiA9IEJ1ZmZlci5hbGxvYygxNik7XG4gICAgY29uc3QgcHJlZml4ID0gJ1pjYXNoU2lnSGFzaCc7XG4gICAgcGVyc29uYWxpemF0aW9uLndyaXRlKHByZWZpeCk7XG4gICAgcGVyc29uYWxpemF0aW9uLndyaXRlVUludDMyTEUodGhpcy5jb25zZW5zdXNCcmFuY2hJZCwgcHJlZml4Lmxlbmd0aCk7XG5cbiAgICByZXR1cm4gZ2V0Qmxha2UyYkhhc2goYnVmZmVyV3JpdGVyLmJ1ZmZlciwgcGVyc29uYWxpemF0aW9uKTtcbiAgfVxuXG4gIHRvQnVmZmVyKGJ1ZmZlcj86IEJ1ZmZlciwgaW5pdGlhbE9mZnNldCA9IDApOiBCdWZmZXIge1xuICAgIGlmICghYnVmZmVyKSBidWZmZXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUodGhpcy5ieXRlTGVuZ3RoKCkpO1xuXG4gICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihidWZmZXIsIGluaXRpYWxPZmZzZXQpO1xuXG4gICAgaWYgKHRoaXMuaXNPdmVyd2ludGVyQ29tcGF0aWJsZSgpKSB7XG4gICAgICBjb25zdCBtYXNrID0gdGhpcy5vdmVyd2ludGVyZWQgPyAxIDogMDtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZUludDMyKHRoaXMudmVyc2lvbiB8IChtYXNrIDw8IDMxKSk7IC8vIFNldCBvdmVyd2ludGVyIGJpdFxuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlVUludDMyKHRoaXMudmVyc2lvbkdyb3VwSWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVJbnQzMih0aGlzLnZlcnNpb24pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZlcnNpb24gPT09IDUpIHtcbiAgICAgIHRvQnVmZmVyVjUoYnVmZmVyV3JpdGVyLCB0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdG9CdWZmZXJWNChidWZmZXJXcml0ZXIsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmIChpbml0aWFsT2Zmc2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBidWZmZXIuc2xpY2UoaW5pdGlhbE9mZnNldCwgYnVmZmVyV3JpdGVyLm9mZnNldCk7XG4gICAgfVxuICAgIHJldHVybiBidWZmZXI7XG4gIH1cblxuICBnZXRIYXNoKGZvcldpdG5lc3M/OiBib29sZWFuKTogQnVmZmVyIHtcbiAgICBpZiAoZm9yV2l0bmVzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFyZ3VtZW50YCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnZlcnNpb24gPT09IDUpIHtcbiAgICAgIHJldHVybiBnZXRUeGlkRGlnZXN0KHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gY3J5cHRvLmhhc2gyNTYodGhpcy50b0J1ZmZlcigpKTtcbiAgfVxuXG4gIGNsb25lPFROMiBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IFROdW1iZXI+KGFtb3VudFR5cGU/OiAnYmlnaW50JyB8ICdudW1iZXInKTogWmNhc2hUcmFuc2FjdGlvbjxUTjI+IHtcbiAgICByZXR1cm4gbmV3IFpjYXNoVHJhbnNhY3Rpb248VE4yPih0aGlzLm5ldHdvcmssIHRoaXMsIGFtb3VudFR5cGUpO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/utxo-lib",
|
|
3
|
-
"version": "8.0.3-beta.
|
|
3
|
+
"version": "8.0.3-beta.1995",
|
|
4
4
|
"description": "Client-side Bitcoin JavaScript library",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"engines": {
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"dist/src"
|
|
47
47
|
],
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@bitgo-beta/blake2b": "3.0.4-beta.
|
|
50
|
-
"@bitgo-beta/secp256k1": "1.0.2-beta.
|
|
49
|
+
"@bitgo-beta/blake2b": "3.0.4-beta.2236",
|
|
50
|
+
"@bitgo-beta/secp256k1": "1.0.2-beta.2033",
|
|
51
51
|
"@brandonblack/musig": "^0.0.1-alpha.0",
|
|
52
52
|
"bech32": "^2.0.0",
|
|
53
53
|
"bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
},
|
|
78
78
|
"author": "BitGo SDK Team <sdkteam@bitgo.com>",
|
|
79
79
|
"license": "MIT",
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "9cca93417bf2a02b86308ef774039470212cd609"
|
|
81
81
|
}
|