@witnet/sdk 1.0.1 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env_witnet +6 -6
- package/LICENSE +21 -21
- package/README.md +103 -103
- package/dist/bin/helpers.d.ts +88 -0
- package/dist/bin/helpers.d.ts.map +1 -0
- package/dist/bin/helpers.js +866 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/lib/crypto/account.d.ts +18 -0
- package/dist/lib/crypto/account.d.ts.map +1 -0
- package/dist/lib/crypto/account.js +152 -0
- package/dist/lib/crypto/coinbase.d.ts +9 -0
- package/dist/lib/crypto/coinbase.d.ts.map +1 -0
- package/dist/lib/crypto/coinbase.js +39 -0
- package/dist/lib/crypto/index.d.ts +7 -0
- package/dist/lib/crypto/index.d.ts.map +1 -0
- package/dist/lib/crypto/index.js +28 -0
- package/dist/lib/crypto/interfaces.d.ts +80 -0
- package/dist/lib/crypto/interfaces.d.ts.map +1 -0
- package/dist/lib/crypto/interfaces.js +3 -0
- package/dist/lib/crypto/payloads/DataRequestPayload.d.ts +47 -0
- package/dist/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -0
- package/dist/lib/crypto/payloads/DataRequestPayload.js +384 -0
- package/dist/lib/crypto/payloads/StakePayload.d.ts +27 -0
- package/dist/lib/crypto/payloads/StakePayload.d.ts.map +1 -0
- package/dist/lib/crypto/payloads/StakePayload.js +184 -0
- package/dist/lib/crypto/payloads/UnstakePayload.d.ts +35 -0
- package/dist/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -0
- package/dist/lib/crypto/payloads/UnstakePayload.js +244 -0
- package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts +24 -0
- package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -0
- package/dist/lib/crypto/payloads/ValueTransferPayload.js +182 -0
- package/dist/lib/crypto/payloads.d.ts +54 -0
- package/dist/lib/crypto/payloads.d.ts.map +1 -0
- package/dist/lib/crypto/payloads.js +224 -0
- package/dist/lib/crypto/signer.d.ts +26 -0
- package/dist/lib/crypto/signer.d.ts.map +1 -0
- package/dist/lib/crypto/signer.js +299 -0
- package/dist/lib/crypto/transmitters/DataRequests.d.ts +14 -0
- package/dist/lib/crypto/transmitters/DataRequests.d.ts.map +1 -0
- package/dist/lib/crypto/transmitters/DataRequests.js +62 -0
- package/dist/lib/crypto/transmitters/StakeDeposits.d.ts +11 -0
- package/dist/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -0
- package/dist/lib/crypto/transmitters/StakeDeposits.js +48 -0
- package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts +17 -0
- package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -0
- package/dist/lib/crypto/transmitters/StakeWithdrawals.js +115 -0
- package/dist/lib/crypto/transmitters/ValueTransfers.d.ts +10 -0
- package/dist/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -0
- package/dist/lib/crypto/transmitters/ValueTransfers.js +47 -0
- package/dist/lib/crypto/transmitters.d.ts +46 -0
- package/dist/lib/crypto/transmitters.d.ts.map +1 -0
- package/dist/lib/crypto/transmitters.js +506 -0
- package/dist/lib/crypto/types.d.ts +127 -0
- package/dist/lib/crypto/types.d.ts.map +1 -0
- package/dist/lib/crypto/types.js +261 -0
- package/dist/lib/crypto/utils.d.ts +10 -0
- package/dist/lib/crypto/utils.d.ts.map +1 -0
- package/dist/lib/crypto/utils.js +97 -0
- package/dist/lib/crypto/wallet.d.ts +26 -0
- package/dist/lib/crypto/wallet.d.ts.map +1 -0
- package/dist/lib/crypto/wallet.js +327 -0
- package/dist/lib/helpers.d.ts +90 -0
- package/dist/lib/helpers.d.ts.map +1 -0
- package/dist/lib/helpers.js +1031 -0
- package/dist/lib/index.d.ts +5 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +21 -0
- package/dist/lib/radon/artifacts.d.ts +55 -0
- package/dist/lib/radon/artifacts.d.ts.map +1 -0
- package/dist/lib/radon/artifacts.js +347 -0
- package/dist/lib/radon/ccdr/eth.d.ts +100 -0
- package/dist/lib/radon/ccdr/eth.d.ts.map +1 -0
- package/dist/lib/radon/ccdr/eth.js +237 -0
- package/dist/lib/radon/ccdr/index.d.ts +34 -0
- package/dist/lib/radon/ccdr/index.d.ts.map +1 -0
- package/dist/lib/radon/ccdr/index.js +63 -0
- package/dist/lib/radon/ccdr/wit.d.ts +29 -0
- package/dist/lib/radon/ccdr/wit.d.ts.map +1 -0
- package/dist/lib/radon/ccdr/wit.js +60 -0
- package/dist/lib/radon/filters.d.ts +14 -0
- package/dist/lib/radon/filters.d.ts.map +1 -0
- package/dist/lib/radon/filters.js +47 -0
- package/dist/lib/radon/index.d.ts +36 -0
- package/dist/lib/radon/index.d.ts.map +1 -0
- package/dist/lib/radon/index.js +154 -0
- package/dist/lib/radon/reducers.d.ts +29 -0
- package/dist/lib/radon/reducers.d.ts.map +1 -0
- package/dist/lib/radon/reducers.js +101 -0
- package/dist/lib/radon/retrievals.d.ts +120 -0
- package/dist/lib/radon/retrievals.d.ts.map +1 -0
- package/dist/lib/radon/retrievals.js +358 -0
- package/dist/lib/radon/sources.d.ts +102 -0
- package/dist/lib/radon/sources.d.ts.map +1 -0
- package/dist/lib/radon/sources.js +294 -0
- package/dist/lib/radon/types.d.ts +521 -0
- package/dist/lib/radon/types.d.ts.map +1 -0
- package/dist/lib/radon/types.js +1066 -0
- package/dist/lib/radon/utils.d.ts +55 -0
- package/dist/lib/radon/utils.d.ts.map +1 -0
- package/dist/lib/radon/utils.js +181 -0
- package/dist/lib/rpc/farm.d.ts +66 -0
- package/dist/lib/rpc/farm.d.ts.map +1 -0
- package/dist/lib/rpc/farm.js +808 -0
- package/dist/lib/rpc/index.d.ts +3 -0
- package/dist/lib/rpc/index.d.ts.map +1 -0
- package/dist/lib/rpc/index.js +19 -0
- package/dist/lib/rpc/node.d.ts +38 -0
- package/dist/lib/rpc/node.d.ts.map +1 -0
- package/dist/lib/rpc/node.js +335 -0
- package/dist/lib/rpc/nodes.d.ts +40 -0
- package/dist/lib/rpc/nodes.d.ts.map +1 -0
- package/dist/lib/rpc/nodes.js +531 -0
- package/dist/lib/rpc/provider.d.ts +72 -0
- package/dist/lib/rpc/provider.d.ts.map +1 -0
- package/dist/lib/rpc/provider.js +402 -0
- package/dist/lib/rpc/reporter.d.ts +18 -0
- package/dist/lib/rpc/reporter.d.ts.map +1 -0
- package/dist/lib/rpc/reporter.js +99 -0
- package/dist/lib/rpc/types.d.ts +396 -0
- package/dist/lib/rpc/types.d.ts.map +1 -0
- package/dist/lib/rpc/types.js +81 -0
- package/dist/lib/rpc/wallet.d.ts +72 -0
- package/dist/lib/rpc/wallet.d.ts.map +1 -0
- package/dist/lib/rpc/wallet.js +41 -0
- package/dist/lib/types.d.ts +19 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +7 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +51 -0
- package/dist/package.json +1 -1
- package/dist/src/bin/helpers.js +2 -2
- package/dist/src/index.js +1 -1
- package/dist/src/lib/crypto/account.js +1 -1
- package/dist/src/lib/crypto/coinbase.js +1 -1
- package/dist/src/lib/crypto/index.js +1 -1
- package/dist/src/lib/crypto/interfaces.js +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +2 -2
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.js +8 -8
- package/dist/src/lib/crypto/payloads/StakePayload.js +1 -1
- package/dist/src/lib/crypto/payloads/UnstakePayload.js +1 -1
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +1 -1
- package/dist/src/lib/crypto/payloads.js +1 -1
- package/dist/src/lib/crypto/signer.js +1 -1
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts +0 -1
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/DataRequests.js +1 -2
- package/dist/src/lib/crypto/transmitters/StakeDeposits.js +1 -1
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +1 -1
- package/dist/src/lib/crypto/transmitters/ValueTransfers.js +1 -1
- package/dist/src/lib/crypto/transmitters.js +1 -1
- package/dist/src/lib/crypto/types.js +1 -1
- package/dist/src/lib/crypto/utils.js +1 -1
- package/dist/src/lib/crypto/wallet.js +1 -1
- package/dist/src/lib/index.js +1 -1
- package/dist/src/lib/radon/ccdr/eth.js +1 -1
- package/dist/src/lib/radon/ccdr/index.js +1 -1
- package/dist/src/lib/radon/ccdr/wit.d.ts +11 -0
- package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/wit.js +17 -2
- package/dist/src/lib/radon/filters.js +1 -1
- package/dist/src/lib/radon/index.d.ts +1 -1
- package/dist/src/lib/radon/index.d.ts.map +1 -1
- package/dist/src/lib/radon/index.js +9 -3
- package/dist/src/lib/radon/reducers.js +1 -1
- package/dist/src/lib/radon/types.js +1 -1
- package/dist/src/lib/radon/utils.js +1 -1
- package/dist/src/lib/rpc/index.js +1 -1
- package/dist/src/lib/rpc/nodes.js +1 -1
- package/dist/src/lib/rpc/provider.d.ts +5 -3
- package/dist/src/lib/rpc/provider.d.ts.map +1 -1
- package/dist/src/lib/rpc/provider.js +14 -3
- package/dist/src/lib/rpc/reporter.d.ts +2 -3
- package/dist/src/lib/rpc/reporter.d.ts.map +1 -1
- package/dist/src/lib/rpc/reporter.js +1 -4
- package/dist/src/lib/rpc/types.d.ts +49 -24
- package/dist/src/lib/rpc/types.d.ts.map +1 -1
- package/dist/src/lib/rpc/types.js +3 -1
- package/dist/src/lib/types.d.ts +1 -1
- package/dist/src/lib/types.d.ts.map +1 -1
- package/dist/src/lib/types.js +1 -1
- package/dist/src/lib/utils.js +1 -1
- package/dist/witnet/assets/index.js +1 -1
- package/dist/witnet/assets/modals/index.js +1 -1
- package/dist/witnet/assets/modals/web3/eth.js +1 -1
- package/dist/witnet/assets/modals/web3/ipfs.js +1 -1
- package/dist/witnet/assets/modals/web3/wit.js +4 -7
- package/dist/witnet/assets/requests.js +1 -1
- package/package.json +1 -1
- package/src/bin/cli/history.js +31 -31
- package/src/bin/cli/inspect.js +405 -359
- package/src/bin/cli/network.js +594 -592
- package/src/bin/cli/nodes.js +364 -364
- package/src/bin/cli/radon.js +815 -815
- package/src/bin/cli/wallet.js +1117 -1094
- package/src/bin/helpers.js +840 -840
- package/src/bin/postinstall.js +9 -9
- package/src/bin/toolkit.js +295 -295
- package/witnet/assets/_index.js +8 -8
- package/witnet/assets/_requests.js +25 -25
- package/witnet/assets/_sources.js +36 -36
- package/witnet/assets/_templates.js +36 -36
- package/witnet/assets/index.js +4 -4
- package/witnet/assets/modals/index.js +9 -9
- package/witnet/assets/modals/web3/eth.js +29 -29
- package/witnet/assets/modals/web3/ipfs.js +19 -19
- package/witnet/assets/modals/web3/wit.js +21 -23
- package/witnet/assets/requests.js +95 -95
package/dist/src/bin/helpers.js
CHANGED
|
@@ -334,7 +334,7 @@ function showVersion() {
|
|
|
334
334
|
}
|
|
335
335
|
function getWildcardsCountFromString(str) {
|
|
336
336
|
let maxArgsIndex = 0;
|
|
337
|
-
if (str) {
|
|
337
|
+
if (str && typeof str === 'string') {
|
|
338
338
|
let match;
|
|
339
339
|
const regexp = /\\\d\\/g;
|
|
340
340
|
while ((match = regexp.exec(str)) !== null) {
|
|
@@ -823,4 +823,4 @@ module.exports = {
|
|
|
823
823
|
spliceWildcard,
|
|
824
824
|
txJsonReplacer,
|
|
825
825
|
};
|
|
826
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vaGVscGVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUN6QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7QUFDaEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzFCLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUN4QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7QUFFcEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQ3JDLDZFQUE2RSxFQUFFLEVBQUUsQ0FDbEYsQ0FBQTtBQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7SUFDeEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMxQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7UUFDOUIsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNyRCxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ25FLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBRUQsU0FBUyxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUM7SUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQy9ELElBQUksQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2xCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ3BELE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQTtJQUM3QixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFBO0FBQ3ZCLENBQUM7QUFBQSxDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDcEMsTUFBTSxNQUFNLEdBQUc7UUFDYixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtRQUMvQixFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7UUFDckMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO1FBQ3JDLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRTtRQUN0QyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7S0FDdkMsQ0FBQTtJQUNELHlDQUF5QztJQUN6QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDL0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDOUcsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFBO0FBQzVILENBQUMsQ0FBQTtBQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUE7QUFDdkQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUE7QUFDbkQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUE7QUFDcEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUE7QUFDbEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUE7QUFFckQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDaEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDaEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDakQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDbkQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDbEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDOUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDOUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDL0MsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDbkQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDN0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFFaEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDN0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDN0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDN0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDOUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDbEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDL0MsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDNUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDaEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFFL0MsU0FBUyxXQUFXLENBQUUsQ0FBQyxFQUFFLEdBQUc7SUFDMUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxDQUFDLENBQUE7SUFDN0MsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzlCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTs7UUFDbEYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcs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QUFBO0lBQy9DLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQzdELENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBRSxPQUFPLEVBQUUsT0FBTztJQUNuQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFDNUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNuQyxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzNGLElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQTtJQUNwQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN4RSxNQUFNLGNBQWMsR0FBRyxPQUFPLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQTtJQUNwRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQzVDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzlELElBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDOUcsSUFBSSxPQUFPLEVBQUUsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDM0YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDM0MsQ0FBQyxDQUFDLENBQUE7SUFDRixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNuRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3BELElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3ZCLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFB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Y29uc3QgbW9tZW50ID0gcmVxdWlyZShcIm1vbWVudFwiKVxyXG5jb25zdCBuZXQgPSByZXF1aXJlKFwibmV0XCIpXHJcbmNvbnN0IG9zID0gcmVxdWlyZShcIm9zXCIpXHJcbmNvbnN0IHJlYWRsaW5lID0gcmVxdWlyZShcInJlYWRsaW5lXCIpXHJcblxyXG5jb25zdCBjb2xvcnN0cmlwID0gKHN0cikgPT4gc3RyLnJlcGxhY2UoXHJcbiAgL1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZywgXCJcIlxyXG4pXHJcblxyXG5jb25zdCBjb21tYXMgPSAobnVtYmVyKSA9PiB7XHJcbiAgY29uc3QgcGFydHMgPSBudW1iZXIudG9TdHJpbmcoKS5zcGxpdChcIi5cIilcclxuICBjb25zdCByZXN1bHQgPSBwYXJ0cy5sZW5ndGggPD0gMVxyXG4gICAgPyBgJHtwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIil9YFxyXG4gICAgOiBgJHtwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIil9LiR7cGFydHNbMV19YFxyXG4gIHJldHVybiByZXN1bHRcclxufVxyXG5cclxuZnVuY3Rpb24gdG9GaXhlZFRydW5jICh4LCBuKSB7XHJcbiAgY29uc3QgdiA9ICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIiA/IHggOiB4LnRvU3RyaW5nKCkpLnNwbGl0KFwiLlwiKVxyXG4gIGlmIChuIDw9IDApIHJldHVybiB2WzBdXHJcbiAgbGV0IGYgPSB2WzFdIHx8IFwiXCJcclxuICBpZiAoZi5sZW5ndGggPiBuKSByZXR1cm4gYCR7dlswXX0uJHtmLnN1YnN0cigwLCBuKX1gXHJcbiAgd2hpbGUgKGYubGVuZ3RoIDwgbikgZiArPSBcIjBcIlxyXG4gIHJldHVybiBgJHt2WzBdfS4ke2Z9YFxyXG59O1xyXG5cclxuY29uc3Qgd2hvbGVfd2l0cyA9IChudW1iZXIsIGRpZ2l0cykgPT4ge1xyXG4gIGNvbnN0IGxvb2t1cCA9IFtcclxuICAgIHsgdmFsdWU6IDFuLCBzeW1ib2w6IFwicGVkcm9zXCIgfSxcclxuICAgIHsgdmFsdWU6IDEwbiAqKiA2biwgc3ltYm9sOiBcIm1XaXRzXCIgfSxcclxuICAgIHsgdmFsdWU6IDEwbiAqKiA5biwgc3ltYm9sOiBcIiBXaXRzXCIgfSxcclxuICAgIHsgdmFsdWU6IDEwbiAqKiAxMm4sIHN5bWJvbDogXCJLV2l0c1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxMG4gKiogMTVuLCBzeW1ib2w6IFwiTVdpdHNcIiB9LFxyXG4gIF1cclxuICAvLyBjb25zdCByZWdleHAgPSAvXFwuMCskfCg/PD1cXC5bMC05XSkwKyQvXHJcbiAgY29uc3QgaXRlbSA9IGxvb2t1cC5maW5kTGFzdChpdGVtID0+IG51bWJlciA+PSBpdGVtLnZhbHVlKVxyXG4gIGNvbnN0IHF1b3RpZW50ID0gaXRlbSA/IE51bWJlcihCaWdJbnQobnVtYmVyKSAvIGl0ZW0udmFsdWUpIDogbnVtYmVyLnRvU3RyaW5nKClcclxuICBjb25zdCBkZWNpbWFscyA9IGl0ZW0gPyAoaXRlbS52YWx1ZSArIEJpZ0ludChudW1iZXIpIC0gQmlnSW50KHF1b3RpZW50KSAqIGl0ZW0udmFsdWUpLnRvU3RyaW5nKCkuc2xpY2UoMSkgOiBcIlwiXHJcbiAgcmV0dXJuIGl0ZW0gPyBgJHtjb21tYXMocXVvdGllbnQpfSR7ZGVjaW1hbHMgIT09IFwiXCIgPyBgLiR7ZGVjaW1hbHMuc2xpY2UoMCwgZGlnaXRzKX1gIDogXCJcIn0gJHtpdGVtLnN5bWJvbH1gIDogXCIobm8gY29pbnMpXCJcclxufVxyXG5cclxuY29uc3QgYmJsdWUgPSAoc3RyKSA9PiBgXFx4MWJbMTs5ODs0NG0ke3N0cn1cXHgxYlswOzA7MG1gXHJcbmNvbnN0IGJjeWFuID0gKHN0cikgPT4gYFxceDFiWzM4OzQ2bSR7c3RyfVxceDFiWzA7MG1gXHJcbmNvbnN0IGJncmVlbiA9IChzdHIpID0+IGBcXHgxYlszMDs0Mm0ke3N0cn1cXHgxYlswOzBtYFxyXG5jb25zdCBicmVkID0gKHN0cikgPT4gYFxceDFiWzMwOzQxbSR7c3RyfVxceDFiWzA7MG1gXHJcbmNvbnN0IGJ2aW9sZXQgPSAoc3RyKSA9PiBgXFx4MWJbMzA7NDVtJHtzdHJ9XFx4MWJbMDswbWBcclxuXHJcbmNvbnN0IGxjeWFuID0gKHN0cikgPT4gYFxceDFiWzE7OTZtJHtzdHJ9XFx4MWJbMG1gXHJcbmNvbnN0IGxncmF5ID0gKHN0cikgPT4gYFxceDFiWzE7OTBtJHtzdHJ9XFx4MWJbMG1gXHJcbmNvbnN0IGxncmVlbiA9IChzdHIpID0+IGBcXHgxYlsxOzkybSR7c3RyfVxceDFiWzBtYFxyXG5jb25zdCBsbWFnZW50YSA9IChzdHIpID0+IGBcXHgxYlsxOzk1bSR7c3RyfVxceDFiWzBtYFxyXG5jb25zdCBseWVsbG93ID0gKHN0cikgPT4gYFxceDFiWzE7OTNtJHtzdHJ9XFx4MWJbMG1gXHJcbmNvbnN0IG1ibHVlID0gKHN0cikgPT4gYFxceDFiWzk0bSR7c3RyfVxceDFiWzBtYFxyXG5jb25zdCBtY3lhbiA9IChzdHIpID0+IGBcXHgxYls5Nm0ke3N0cn1cXHgxYlswbWBcclxuY29uc3QgbWdyZWVuID0gKHN0cikgPT4gYFxceDFiWzkybSR7c3RyfVxceDFiWzBtYFxyXG5jb25zdCBtbWFnZW50YSA9IChzdHIpID0+IGBcXHgxYlswOzk1bSR7c3RyfVxceDFiWzBtYFxyXG5jb25zdCBtcmVkID0gKHN0cikgPT4gYFxceDFiWzkxbSR7c3RyfVxceDFiWzBtYFxyXG5jb25zdCBteWVsbG93ID0gKHN0cikgPT4gYFxceDFiWzkzbSR7c3RyfVxceDFiWzBtYFxyXG5cclxuY29uc3QgYmx1ZSA9IChzdHIpID0+IGBcXHgxYlszNG0ke3N0cn1cXHgxYlswbWBcclxuY29uc3QgY3lhbiA9IChzdHIpID0+IGBcXHgxYlszNm0ke3N0cn1cXHgxYlswbWBcclxuY29uc3QgZ3JheSA9IChzdHIpID0+IGBcXHgxYls5MG0ke3N0cn1cXHgxYlswbWBcclxuY29uc3QgZ3JlZW4gPSAoc3RyKSA9PiBgXFx4MWJbMzJtJHtzdHJ9XFx4MWJbMG1gXHJcbmNvbnN0IG1hZ2VudGEgPSAoc3RyKSA9PiBgXFx4MWJbMDszNW0ke3N0cn1cXHgxYlswbWBcclxuY29uc3Qgbm9ybWFsID0gKHN0cikgPT4gYFxceDFiWzk4bSR7c3RyfVxceDFiWzBtYFxyXG5jb25zdCByZWQgPSAoc3RyKSA9PiBgXFx4MWJbMzFtJHtzdHJ9XFx4MWJbMG1gXHJcbmNvbnN0IHdoaXRlID0gKHN0cikgPT4gYFxceDFiWzE7OThtJHtzdHJ9XFx4MWJbMG1gXHJcbmNvbnN0IHllbGxvdyA9IChzdHIpID0+IGBcXHgxYlszM20ke3N0cn1cXHgxYlswbWBcclxuXHJcbmZ1bmN0aW9uIGNvdW50TGVhdmVzICh0LCBvYmopIHtcclxuICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSByZXR1cm4gMFxyXG4gIGlmIChvYmogaW5zdGFuY2VvZiB0KSByZXR1cm4gMVxyXG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHJldHVybiBvYmoucmVkdWNlKChzdW0sIGl0ZW0pID0+IHN1bSArIGNvdW50TGVhdmVzKHQsIGl0ZW0pLCAwKVxyXG4gIGVsc2UgcmV0dXJuIE9iamVjdC52YWx1ZXMob2JqKS5yZWR1Y2UoKHN1bSwgaXRlbSkgPT4gc3VtICsgY291bnRMZWF2ZXModCwgaXRlbSksIDApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlbGV0ZUV4dHJhRmxhZ3MgKGFyZ3MpIHtcclxuICByZXR1cm4gYXJncy5maWx0ZXIoYXJnID0+ICFhcmcuc3RhcnRzV2l0aChcIi0tXCIpKVxyXG59XHJcblxyXG5mdW5jdGlvbiBjbWQgKC4uLmNvbW1hbmQpIHtcclxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgZXhlYyhjb21tYW5kLmpvaW4oXCIgXCIpLCB7IG1heEJ1ZmZlcjogMTAyNCAqIDEwMjQgKiAxMCB9LCAoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgIHJlamVjdChlcnJvcilcclxuICAgICAgfVxyXG4gICAgICBpZiAoc3RkZXJyKSB7XHJcbiAgICAgICAgcmVqZWN0KHN0ZGVycilcclxuICAgICAgfVxyXG4gICAgICByZXNvbHZlKHN0ZG91dClcclxuICAgIH0pXHJcbiAgfSlcclxufTtcclxuXHJcbmFzeW5jIGZ1bmN0aW9uIGV4ZWNSYWRvbkJ5dGVjb2RlIChieXRlY29kZSwgLi4uZmxhZ3MpIHtcclxuICBpZiAoIWlzSGV4U3RyaW5nKGJ5dGVjb2RlKSkge1xyXG4gICAgdGhyb3cgRXZhbEVycm9yKFwiaW52YWxpZCBoZXggc3RyaW5nXCIpXHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IG5weCA9IG9zLnR5cGUoKSA9PT0gXCJXaW5kb3dzX05UXCIgPyBcIm5weC5jbWRcIiA6IFwibnB4XCJcclxuICAgIHJldHVybiBjbWQobnB4LCBcIndpdG5ldFwiLCBcInJhZG9uXCIsIFwiZHJ5cnVuXCIsIGJ5dGVjb2RlLCAuLi5mbGFncylcclxuICAgIC8vIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAvLyAgICAgbGV0IGVycm9yTWVzc2FnZSA9IGVyci5tZXNzYWdlLnNwbGl0KCdcXG4nKS5zbGljZSgxKS5qb2luKCdcXG4nKS50cmltKClcclxuICAgIC8vICAgICBjb25zdCBlcnJvclJlZ2V4ID0gLy4qXmVycm9yOiAoPzxtZXNzYWdlPi4qKSQuKi9nbVxyXG4gICAgLy8gICAgIGNvbnN0IG1hdGNoZWQgPSBlcnJvclJlZ2V4LmV4ZWMoZXJyLm1lc3NhZ2UpXHJcbiAgICAvLyAgICAgaWYgKG1hdGNoZWQpIHtcclxuICAgIC8vICAgICAgICAgZXJyb3JNZXNzYWdlID0gbWF0Y2hlZC5ncm91cHMubWVzc2FnZVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhlcnJvck1lc3NhZ2UgfHwgZXJyKVxyXG4gICAgLy8gICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JNZXNzYWdlIHx8IGVycilcclxuICAgIC8vIH0pXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBleHRyYWN0RnJvbUFyZ3MgKGFyZ3MsIGZsYWdzKSB7XHJcbiAgY29uc3QgY3VyYXRlZCA9IHt9XHJcbiAgaWYgKGFyZ3MgJiYgZmxhZ3MpIHtcclxuICAgIE9iamVjdC5rZXlzKGZsYWdzKS5mb3JFYWNoKGZsYWcgPT4ge1xyXG4gICAgICBjb25zdCBmbGFnSW5kZXggPSBhcmdzLmluZGV4T2YoYC0tJHtmbGFnfWApXHJcbiAgICAgIGlmIChmbGFnSW5kZXggPj0gMCkge1xyXG4gICAgICAgIGlmIChmbGFnc1tmbGFnXS5wYXJhbSkge1xyXG4gICAgICAgICAgY3VyYXRlZFtmbGFnXSA9IGFyZ3NbZmxhZ0luZGV4XVxyXG4gICAgICAgICAgaWYgKCFhcmdzW2ZsYWdJbmRleCArIDFdIHx8IGFyZ3NbZmxhZ0luZGV4ICsgMV0uc3RhcnRzV2l0aChcIi0tXCIpKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlciBmb3IgLS0ke2ZsYWd9YClcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGN1cmF0ZWRbZmxhZ10gPSBhcmdzW2ZsYWdJbmRleCArIDFdXHJcbiAgICAgICAgICAgIGFyZ3Muc3BsaWNlKGZsYWdJbmRleCwgMilcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY3VyYXRlZFtmbGFnXSA9IHRydWVcclxuICAgICAgICAgIGFyZ3Muc3BsaWNlKGZsYWdJbmRleCwgMSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHJldHVybiBbYXJncywgY3VyYXRlZF1cclxufVxyXG5cclxuZnVuY3Rpb24gZnJvbUhleFN0cmluZyAoaGV4U3RyaW5nKSB7XHJcbiAgaWYgKGhleFN0cmluZy5zdGFydHNXaXRoKFwiMHhcIikpIGhleFN0cmluZyA9IGhleFN0cmluZy5zbGljZSgyKVxyXG4gIHJldHVybiBVaW50OEFycmF5LmZyb20oaGV4U3RyaW5nLm1hdGNoKC8uezEsMn0vZykubWFwKChieXRlKSA9PiBwYXJzZUludChieXRlLCAxNikpKVxyXG59XHJcblxyXG5mdW5jdGlvbiBpcElzUHJpdmF0ZU9yTG9jYWxob3N0IChpcCkge1xyXG4gIGlmIChpcC5zdWJzdHJpbmcoMCwgNykgPT09IFwiOjpmZmZmOlwiKSB7IGlwID0gaXAuc3Vic3RyaW5nKDcpIH1cclxuXHJcbiAgaWYgKG5ldC5pc0lQdjQoaXApKSB7XHJcbiAgICAvLyBjaGVjayBsb2NhbGhvc3RcclxuICAgIGlmIChpcCA9PT0gXCIxMjcuMC4wLjFcIikgeyByZXR1cm4gdHJ1ZSB9XHJcblxyXG4gICAgLy8gICAgICAgICAxMC4wLjAuMCAtIDEwLjI1NS4yNTUuMjU1ICAgICAgICB8fCAgIDE3Mi4xNi4wLjAgLSAxNzIuMzEuMjU1LjI1NSAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgICAgMTkyLjE2OC4wLjAgLSAxOTIuMTY4LjI1NS4yNTVcclxuICAgIHJldHVybiAvXigxMClcXC4oLiopXFwuKC4qKVxcLiguKikkLy50ZXN0KGlwKSB8fCAvXigxNzIpXFwuKDFbNi05XXwyWzAtOV18M1swLTFdKVxcLiguKilcXC4oLiopJC8udGVzdChpcCkgfHwgL14oMTkyKVxcLigxNjgpXFwuKC4qKVxcLiguKikkLy50ZXN0KGlwKVxyXG4gIH1cclxuXHJcbiAgLy8gZWxzZTogaXAgaXMgSVB2NlxyXG4gIGNvbnN0IGZpcnN0V29yZCA9IGlwLnNwbGl0KFwiOlwiKS5maW5kKGVsID0+ICEhZWwpIC8vIGdldCBmaXJzdCBub3QgZW1wdHkgd29yZFxyXG5cclxuICAvLyBlcXVpdmFsZW50IG9mIDEyNy4wLjAuMSBpbiBJUHY2XHJcbiAgaWYgKGlwID09PSBcIjo6MVwiKSByZXR1cm4gdHJ1ZVxyXG5cclxuICAvLyBUaGUgb3JpZ2luYWwgSVB2NiBTaXRlIExvY2FsIGFkZHJlc3NlcyAoZmVjMDo6LzEwKSBhcmUgZGVwcmVjYXRlZC4gUmFuZ2U6IGZlYzAgLSBmZWZmXHJcbiAgZWxzZSBpZiAoL15mZVtjLWZdWzAtZl0kLy50ZXN0KGZpcnN0V29yZCkpIHJldHVybiB0cnVlXHJcblxyXG4gIC8vIFRoZXNlIGRheXMgVW5pcXVlIExvY2FsIEFkZHJlc3NlcyAoVUxBKSBhcmUgdXNlZCBpbiBwbGFjZSBvZiBTaXRlIExvY2FsLlxyXG4gIC8vIFJhbmdlOiBmYzAwIC0gZmNmZlxyXG4gIGVsc2UgaWYgKC9eZmNbMC1mXXsyfSQvLnRlc3QoZmlyc3RXb3JkKSkgcmV0dXJuIHRydWVcclxuXHJcbiAgLy8gUmFuZ2U6IGZkMDAgLSBmY2ZmXHJcbiAgZWxzZSBpZiAoL15mZFswLWZdezJ9JC8udGVzdChmaXJzdFdvcmQpKSByZXR1cm4gdHJ1ZVxyXG5cclxuICAvLyBMaW5rIGxvY2FsIGFkZHJlc3NlcyAocHJlZml4ZWQgd2l0aCBmZTgwKSBhcmUgbm90IHJvdXRhYmxlXHJcbiAgZWxzZSBpZiAoZmlyc3RXb3JkID09PSBcImZlODBcIikgcmV0dXJuIHRydWVcclxuXHJcbiAgLy8gRGlzY2FyZCBQcmVmaXhcclxuICBlbHNlIGlmIChmaXJzdFdvcmQgPT09IFwiMTAwXCIpIHJldHVybiB0cnVlXHJcblxyXG4gIC8vIEFueSBvdGhlciBJUCBhZGRyZXNzIGlzIG5vdCBVbmlxdWUgTG9jYWwgQWRkcmVzcyAoVUxBKVxyXG4gIHJldHVybiBmYWxzZVxyXG59XHJcblxyXG5mdW5jdGlvbiBpc0hleFN0cmluZ09mTGVuZ3RoIChzdHIsIGxlbmd0aCkge1xyXG4gIHJldHVybiAoaXNIZXhTdHJpbmcoc3RyKSAmJlxyXG4gICAgICAgIChcclxuICAgICAgICAgIChzdHIuc3RhcnRzV2l0aChcIjB4XCIpICYmIHN0ci5zbGljZSgyKS5sZW5ndGggPT09IGxlbmd0aCAqIDIpIHx8XHJcbiAgICAgICAgICAgIHN0ci5sZW5ndGggPT09IGxlbmd0aCAqIDJcclxuICAgICAgICApXHJcbiAgKSB8fCBpc1dpbGRjYXJkKHN0cilcclxufVxyXG5cclxuZnVuY3Rpb24gaXNIZXhTdHJpbmcgKHN0cikge1xyXG4gIHJldHVybiAoXHJcbiAgICB0eXBlb2Ygc3RyID09PSBcInN0cmluZ1wiICYmXHJcbiAgICAgICAgKFxyXG4gICAgICAgICAgKHN0ci5zdGFydHNXaXRoKFwiMHhcIikgJiYgL15bYS1mQS1GMC05XSskL2kudGVzdChzdHIuc2xpY2UoMikpKSB8fFxyXG4gICAgICAgICAgICAvXlthLWZBLUYwLTldKyQvaS50ZXN0KHN0cilcclxuICAgICAgICApXHJcbiAgKSB8fCBpc1dpbGRjYXJkKHN0cilcclxufVxyXG5cclxuZnVuY3Rpb24gdG9IZXhTdHJpbmcgKGJ1ZmZlciwgcHJlZml4MHggPSBmYWxzZSkge1xyXG4gIGlmIChidWZmZXIgaW5zdGFuY2VvZiBVaW50OEFycmF5KSBidWZmZXIgPSBCdWZmZXIuZnJvbShidWZmZXIpXHJcbiAgcmV0dXJuIChwcmVmaXgweCA/IFwiMHhcIiA6IFwiXCIpICsgQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGJ1ZmZlciwgeCA9PiAoXCIwMFwiICsgeC50b1N0cmluZygxNikpLnNsaWNlKC0yKSlcclxuICAgIC5qb2luKFwiXCIpXHJcbiAgICAubWF0Y2goL1thLWZBLUYwLTldezJ9L2cpXHJcbiAgICAuam9pbihcIlwiKVxyXG59XHJcblxyXG5mdW5jdGlvbiBwYXJzZVVSTCAodXJsKSB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHBhcnNlZFVybCA9IG5ldyBVUkwodXJsKVxyXG4gICAgcmV0dXJuIFtcclxuICAgICAgcGFyc2VkVXJsLnByb3RvY29sICsgXCIvL1wiLFxyXG4gICAgICBwYXJzZWRVcmwuaG9zdCxcclxuICAgICAgcGFyc2VkVXJsLnBhdGhuYW1lLnNsaWNlKDEpLFxyXG4gICAgICBwYXJzZWRVcmwuc2VhcmNoLnNsaWNlKDEpLFxyXG4gICAgXVxyXG4gIH0gY2F0Y2gge1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBVUkwgd2FzIHByb3ZpZGVkOiAke3VybH1gKVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc2hvd1VzYWdlIChjbWQsIG1vZHVsZSkge1xyXG4gIHNob3dVc2FnZUhlYWRsaW5lKGNtZClcclxuICBzaG93VXNhZ2VPcHRpb25zKHsgLi4ubW9kdWxlPy5mbGFncyB9KVxyXG4gIHNob3dVc2FnZUZsYWdzKHsgLi4ubW9kdWxlPy5mbGFncyB9KVxyXG4gIHNob3dVc2FnZVJvdXRlcih7IC4uLm1vZHVsZT8ucm91dGVyIH0pXHJcbiAgc2hvd1VzYWdlRW52YXJzKHsgLi4ubW9kdWxlPy5lbnZhcnMgfSlcclxufVxyXG5cclxuZnVuY3Rpb24gc2hvd1VzYWdlUm91dGVyIChyb3V0ZXIpIHtcclxuICBjb25zdCBjbWRzID0gT2JqZWN0LmVudHJpZXMocm91dGVyKVxyXG4gIGlmIChjbWRzLmxlbmd0aCA+IDApIHtcclxuICAgIGNvbnNvbGUuaW5mbyhcIlxcblNVQkNPTU1BTkRTOlwiKVxyXG4gICAgY29uc3QgbWF4TGVuZ3RoID0gTWF0aC5tYXgoLi4uY21kcy5tYXAoKFtjbWRdKSA9PiBjbWQubGVuZ3RoKSlcclxuICAgIGNtZHMuZm9yRWFjaChjbWQgPT4ge1xyXG4gICAgICBjb25zb2xlLmluZm8oXCIgIFwiLCBgJHtjbWRbMF19JHtcIiBcIi5yZXBlYXQobWF4TGVuZ3RoIC0gY21kWzBdLmxlbmd0aCl9YCwgXCIgIFwiLCBjbWRbMV0uaGludClcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBzaG93VXNhZ2VFcnJvciAoY21kLCBzdWJjbWQsIG1vZHVsZSwgZXJyb3IsIGZsYWdzKSB7XHJcbiAgc2hvd1VzYWdlU3ViY29tbWFuZChjbWQsIHN1YmNtZCwgbW9kdWxlLCBlcnJvcilcclxuICBpZiAoZXJyb3IpIHtcclxuICAgIGNvbnNvbGUuaW5mbyhcIlxcbkVSUk9SOlwiKVxyXG4gICAgaWYgKGZsYWdzPy5kZWJ1Zykge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcihlcnJvcj8uc3RhY2s/LnNwbGl0KFwiXFxuXCIpWzBdIHx8IGVycm9yKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc2hvd1VzYWdlRW52YXJzIChlbnZhcnMpIHtcclxuICBpZiAoZW52YXJzKSB7XHJcbiAgICBlbnZhcnMgPSBPYmplY3QuZW50cmllcyhlbnZhcnMpXHJcbiAgICBpZiAoZW52YXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc29sZS5pbmZvKFwiXFxuRU5WQVJTOlwiKVxyXG4gICAgICBjb25zdCBtYXhXaWR0aCA9IE1hdGgubWF4KC4uLmVudmFycy5tYXAoKFtlbnZhcl0pID0+IGVudmFyLmxlbmd0aCkpXHJcbiAgICAgIGVudmFycy5mb3JFYWNoKChbZW52YXIsIGhpbnRdKSA9PiB7XHJcbiAgICAgICAgaWYgKGVudmFyLnRvVXBwZXJDYXNlKCkuaW5kZXhPZihcIktFWVwiKSA8IDAgJiYgcHJvY2Vzcy5lbnZbZW52YXJdKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmluZm8oXCIgIFwiLCBgJHt5ZWxsb3coZW52YXIudG9VcHBlckNhc2UoKSl9JHtcIiBcIi5yZXBlYXQobWF4V2lkdGggLSBlbnZhci5sZW5ndGgpfWAsIGAgPT4gU2V0dGxlZCB0byBcIiR7bXllbGxvdyhwcm9jZXNzLmVudltlbnZhcl0pfVwiYClcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5pbmZvKFwiICBcIiwgYCR7eWVsbG93KGVudmFyLnRvVXBwZXJDYXNlKCkpfSR7XCIgXCIucmVwZWF0KG1heFdpZHRoIC0gZW52YXIubGVuZ3RoKX1gLCBgICR7aGludH1gKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNob3dVc2FnZUZsYWdzIChmbGFncykge1xyXG4gIGlmIChmbGFncykge1xyXG4gICAgZmxhZ3MgPSBPYmplY3QuZW50cmllcyhmbGFncykuZmlsdGVyKChbLCBmbGFnXSkgPT4gIWZsYWc/LnBhcmFtKS5zb3J0KChbYV0sIFtiXSkgPT4ge1xyXG4gICAgICBpZiAoYSA8IGIpIHJldHVybiAtMVxyXG4gICAgICBlbHNlIGlmIChhID4gYikgcmV0dXJuIDFcclxuICAgICAgZWxzZSByZXR1cm4gMFxyXG4gICAgfSlcclxuICAgIGlmIChmbGFncy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnNvbGUuaW5mbyhcIlxcbkZMQUdTOlwiKVxyXG4gICAgICBjb25zdCBtYXhMZW5ndGggPSBNYXRoLm1heCguLi5mbGFncy5maWx0ZXIoKFssIHsgaGludCB9XSkgPT4gaGludCkubWFwKChba2V5LCB7IHBhcmFtIH1dKSA9PiBwYXJhbSA/IGtleS5sZW5ndGggKyBwYXJhbS5sZW5ndGggKyAzIDoga2V5Lmxlbmd0aCkpXHJcbiAgICAgIGZsYWdzLmZvckVhY2goZmxhZyA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RyID0gYCR7ZmxhZ1swXX0ke2ZsYWdbMV0ucGFyYW0gPyBncmF5KGAgPCR7ZmxhZ1sxXS5wYXJhbX0+YCkgOiBcIlwifWBcclxuICAgICAgICBpZiAoZmxhZ1sxXS5oaW50KSB7XHJcbiAgICAgICAgICBjb25zb2xlLmluZm8oXCIgIFwiLCBgLS0ke3N0cn0ke1wiIFwiLnJlcGVhdChtYXhMZW5ndGggLSBjb2xvcnN0cmlwKHN0cikubGVuZ3RoKX1gLCBcIiAgXCIsIGZsYWdbMV0uaGludClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBzaG93VXNhZ2VIZWFkbGluZSAoY21kLCBzdWJjbWQsIG1vZHVsZSkge1xyXG4gIGNvbnNvbGUuaW5mbyhcIlVTQUdFOlwiKVxyXG4gIGlmIChzdWJjbWQpIHtcclxuICAgIGxldCBwYXJhbXMgPSBtb2R1bGUucm91dGVyW3N1YmNtZF0/LnBhcmFtc1xyXG4gICAgLy8gY29uc3Qgb3B0aW9ucyA9IG1vZHVsZS5yb3V0ZXJbc3ViY21kXT8ub3B0aW9uc1xyXG4gICAgaWYgKHBhcmFtcykge1xyXG4gICAgICBjb25zdCBvcHRpb25hbGl6ZSA9IChzdHIpID0+IHN0ci5lbmRzV2l0aChcIiAuLi5dXCIpXHJcbiAgICAgICAgPyBgWzwke3N0ci5zbGljZSgxLCAtNSl9PiAuLi5dYFxyXG4gICAgICAgIDogKFxyXG4gICAgICAgICAgc3RyWzBdID09PSBcIltcIiA/IGBbPCR7c3RyLnNsaWNlKDEsIC0xKX0+XWAgOiBgPCR7c3RyfT5gXHJcbiAgICAgICAgKVxyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJhbXMpKSB7XHJcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLm1hcChwYXJhbSA9PiBvcHRpb25hbGl6ZShwYXJhbSkpLmpvaW4oXCIgXCIpICsgXCIgXCJcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBvcHRpb25hbGl6ZShwYXJhbXMpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnNvbGUuaW5mbyhgICAgJHt3aGl0ZShgbnB4IHdpdG5ldCAke2NtZH1gKX0gJHt3aGl0ZShzdWJjbWQpfSAke3BhcmFtcyA/IGdyZWVuKHBhcmFtcykgKyBcIiBcIiA6IFwiXCJ9W09QVElPTlNdIFtGTEFHU11gKVxyXG4gICAgaWYgKG1vZHVsZT8ucm91dGVyW3N1YmNtZF0/LmhpbnQpIHtcclxuICAgICAgY29uc29sZS5pbmZvKFwiXFxuREVTQ1JJUFRJT046XCIpXHJcbiAgICAgIGNvbnNvbGUuaW5mbyhgICAgJHttb2R1bGUucm91dGVyW3N1YmNtZF0uaGludH1gKVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zb2xlLmluZm8oYCAgICR7d2hpdGUoYG5weCB3aXRuZXQgJHtjbWR9YCl9IDxTVUJDT01NQU5EPiAuLi4gW09QVElPTlNdIFtGTEFHU11gKVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc2hvd1VzYWdlT3B0aW9ucyAob3B0aW9ucykge1xyXG4gIG9wdGlvbnMgPSBPYmplY3QuZW50cmllcyhvcHRpb25zKS5maWx0ZXIoKFssIG9wdGlvbl0pID0+IG9wdGlvbj8ucGFyYW0pLnNvcnQoKFthXSwgW2JdKSA9PiB7XHJcbiAgICBpZiAoYSA8IGIpIHJldHVybiAtMVxyXG4gICAgZWxzZSBpZiAoYSA+IGIpIHJldHVybiAxXHJcbiAgICBlbHNlIHJldHVybiAwXHJcbiAgfSlcclxuICBpZiAob3B0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICBjb25zb2xlLmluZm8oXCJcXG5PUFRJT05TOlwiKVxyXG4gICAgY29uc3QgbWF4TGVuZ3RoID0gb3B0aW9uc1xyXG4gICAgICAubWFwKG9wdGlvbiA9PiBvcHRpb25bMV0ucGFyYW0gPyBvcHRpb25bMV0ucGFyYW0ubGVuZ3RoICsgb3B0aW9uWzBdLmxlbmd0aCArIDMgOiBvcHRpb25bMF0ubGVuZ3RoKVxyXG4gICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBjdXJyID4gcHJldiA/IGN1cnIgOiBwcmV2KVxyXG4gICAgb3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XHJcbiAgICAgIGlmIChvcHRpb25bMV0uaGludCkge1xyXG4gICAgICAgIGNvbnN0IHN0ciA9IGAke29wdGlvblswXX0ke29wdGlvblsxXS5wYXJhbSA/IGdyYXkoYCA8JHtvcHRpb25bMV0ucGFyYW19PmApIDogXCJcIn1gXHJcbiAgICAgICAgY29uc29sZS5pbmZvKFwiICBcIiwgYC0tJHtzdHJ9JHtcIiBcIi5yZXBlYXQobWF4TGVuZ3RoIC0gY29sb3JzdHJpcChzdHIpLmxlbmd0aCl9YCwgXCIgIFwiLCBvcHRpb25bMV0uaGludClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNob3dVc2FnZVN1YmNvbW1hbmQgKGNtZCwgc3ViY21kLCBtb2R1bGUpIHtcclxuICBzaG93VXNhZ2VIZWFkbGluZShjbWQsIHN1YmNtZCwgbW9kdWxlKVxyXG4gIHNob3dVc2FnZU9wdGlvbnMoeyAuLi5tb2R1bGU/LmZsYWdzLCAuLi5tb2R1bGUucm91dGVyW3N1YmNtZF0/Lm9wdGlvbnMgfSlcclxuICBzaG93VXNhZ2VGbGFncyh7IC4uLm1vZHVsZT8uZmxhZ3MsIC4uLm1vZHVsZS5yb3V0ZXJbc3ViY21kXT8ub3B0aW9ucyB9KVxyXG4gIHNob3dVc2FnZUVudmFycyhtb2R1bGUucm91dGVyW3N1YmNtZF0/LmVudmFycyB8fCBtb2R1bGU/LmVudmFycylcclxufVxyXG5cclxuZnVuY3Rpb24gc2hvd1ZlcnNpb24gKCkge1xyXG4gIGNvbnNvbGUuaW5mbyhgJHttY3lhbihgV2l0bmV0IFNESyB2JHtyZXF1aXJlKFwiLi4vLi4vcGFja2FnZS5qc29uXCIpLnZlcnNpb259YCl9YClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0V2lsZGNhcmRzQ291bnRGcm9tU3RyaW5nIChzdHIpIHtcclxuICBsZXQgbWF4QXJnc0luZGV4ID0gMFxyXG4gIGlmIChzdHIpIHtcclxuICAgIGxldCBtYXRjaFxyXG4gICAgY29uc3QgcmVnZXhwID0gL1xcXFxcXGRcXFxcL2dcclxuICAgIHdoaWxlICgobWF0Y2ggPSByZWdleHAuZXhlYyhzdHIpKSAhPT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBhcmdzSW5kZXggPSBwYXJzZUludChtYXRjaFswXVsxXSkgKyAxXHJcbiAgICAgIGlmIChhcmdzSW5kZXggPiBtYXhBcmdzSW5kZXgpIG1heEFyZ3NJbmRleCA9IGFyZ3NJbmRleFxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gbWF4QXJnc0luZGV4XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNoZWNrUnBjV2lsZGNhcmRzICh3aWxkY2FyZHMpIHtcclxuICBpZiAodHlwZW9mIHdpbGRjYXJkcyA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgT2JqZWN0LnZhbHVlcyh3aWxkY2FyZHMpLmZvckVhY2god2lsZGNhcmQgPT4ge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh3aWxkY2FyZCkpIHdpbGRjYXJkLmZvckVhY2goaXRlbSA9PiBjaGVja1JwY1dpbGRjYXJkcyhpdGVtKSlcclxuICAgICAgZWxzZSBjaGVja1JwY1dpbGRjYXJkcyh3aWxkY2FyZClcclxuICAgIH0pXHJcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHdpbGRjYXJkcykpIHtcclxuICAgIHdpbGRjYXJkcy5mb3JFYWNoKHdpbGRjYXJkID0+IGNoZWNrUnBjV2lsZGNhcmRzKHdpbGRjYXJkKSlcclxuICB9IGVsc2UgaWYgKHR5cGVvZiB3aWxkY2FyZHMgPT09IFwic3RyaW5nXCIpIHtcclxuICAgIGlmIChpc1dpbGRjYXJkKHdpbGRjYXJkcykpIHtcclxuICAgICAgY29uc3QgY2hhciA9IHdpbGRjYXJkcy5jaGFyQXQoMSlcclxuICAgICAgaWYgKGNoYXIgPCBcIjFcIiB8fCBjaGFyID4gXCI5XCIpIHtcclxuICAgICAgICB0aHJvdyBFcnJvcihcIlJQQzogd2lsZGNhcmRzIG5vdCBpbiByYW5nZSBbMSAuLiA5XVwiKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBpc1dpbGRjYXJkIChzdHIpIHtcclxuICByZXR1cm4gc3RyLmxlbmd0aCA9PT0gMyAmJiAvXFxcXFxcZFxcXFwvZy50ZXN0KHN0cilcclxufVxyXG5cclxuZnVuY3Rpb24gcmVwbGFjZVdpbGRjYXJkcyAob2JqLCBhcmdzKSB7XHJcbiAgaWYgKGFyZ3MubGVuZ3RoID4gMTApIGFyZ3MgPSBhcmdzLnNsaWNlKDAsIDEwKVxyXG4gIGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgZm9yIChsZXQgYXJnSW5kZXggPSAwOyBhcmdJbmRleCA8IGFyZ3MubGVuZ3RoOyBhcmdJbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IHdpbGRjYXJkID0gYFxcXFwke2FyZ0luZGV4fVxcXFxgXHJcbiAgICAgIG9iaiA9IG9iai5yZXBsYWNlQWxsKHdpbGRjYXJkLCBhcmdzW2FyZ0luZGV4XSlcclxuICAgIH1cclxuICB9IGVsc2UgaWYgKG9iaiAmJiBBcnJheS5pc0FycmF5KG9iaikpIHtcclxuICAgIG9iaiA9IG9iai5tYXAodmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpXHJcbiAgICAgID8gcmVwbGFjZVdpbGRjYXJkcyh2YWx1ZSwgYXJncylcclxuICAgICAgOiB2YWx1ZVxyXG4gICAgKVxyXG4gIH1cclxuICByZXR1cm4gb2JqXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNwbGljZVdpbGRjYXJkIChvYmosIGFyZ0luZGV4LCBhcmdWYWx1ZSwgYXJnc0NvdW50KSB7XHJcbiAgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICBjb25zdCB3aWxkY2FyZCA9IGBcXFxcJHthcmdJbmRleH1cXFxcYFxyXG4gICAgb2JqID0gb2JqLnJlcGxhY2VBbGwod2lsZGNhcmQsIGFyZ1ZhbHVlKVxyXG4gICAgZm9yIChsZXQgaiA9IGFyZ0luZGV4ICsgMTsgaiA8IGFyZ3NDb3VudDsgaisrKSB7XHJcbiAgICAgIG9iaiA9IG9iai5yZXBsYWNlQWxsKGBcXFxcJHtqfVxcXFxgLCBgXFxcXCR7aiAtIDF9XFxcXGApXHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmIChvYmogJiYgQXJyYXkuaXNBcnJheShvYmopKSB7XHJcbiAgICBvYmogPSBvYmoubWFwKHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheS5pc0FycmF5KHZhbHVlKVxyXG4gICAgICA/IHNwbGljZVdpbGRjYXJkKHZhbHVlLCBhcmdJbmRleCwgYXJnVmFsdWUsIGFyZ3NDb3VudClcclxuICAgICAgOiB2YWx1ZVxyXG4gICAgKVxyXG4gIH1cclxuICByZXR1cm4gb2JqXHJcbn1cclxuXHJcbmFzeW5jIGZ1bmN0aW9uIHRvb2xraXRSdW4gKHNldHRpbmdzLCBhcmdzKSB7XHJcbiAgY29uc3QgY21kID0gYCR7c2V0dGluZ3MucGF0aHMudG9vbGtpdEJpblBhdGh9ICR7YXJncy5qb2luKFwiIFwiKX1gXHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIGV4ZWMoY21kLCB7IG1heEJ1ZmZlcjogMTAyNCAqIDEwMjQgKiAxMCB9LCAoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgIHJlamVjdChlcnJvcilcclxuICAgICAgfVxyXG4gICAgICBpZiAoc3RkZXJyKSB7XHJcbiAgICAgICAgcmVqZWN0KHN0ZGVycilcclxuICAgICAgfVxyXG4gICAgICByZXNvbHZlKHN0ZG91dClcclxuICAgIH0pXHJcbiAgfSlcclxufVxyXG5cclxuZnVuY3Rpb24gdG9VcHBlckNhbWVsQ2FzZSAoc3RyKSB7XHJcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXGIoXFx3KS9nLCBmdW5jdGlvbiAobWF0Y2gsIGNhcHR1cmUpIHtcclxuICAgIHJldHVybiBjYXB0dXJlLnRvVXBwZXJDYXNlKClcclxuICB9KS5yZXBsYWNlKC9cXHMrL2csIFwiXCIpXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvVXRmMTZCeXRlcyhzdHIpIHtcclxuICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KHN0ci5sZW5ndGggKiAyKTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgY29uc3QgY29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgYnl0ZXNbaSAqIDJdID0gY29kZSA+PiA4O1xyXG4gICAgYnl0ZXNbaSAqIDIgKyAxXSA9IGNvZGUgJiAweGZmO1xyXG4gIH1cclxuICByZXR1cm4gYnl0ZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvVXRmOEFycmF5IChzdHIpIHtcclxuICBjb25zdCB1dGY4ID0gW11cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGNoYXJjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSlcclxuICAgIGlmIChjaGFyY29kZSA8IDB4ODApIHV0ZjgucHVzaChjaGFyY29kZSlcclxuICAgIGVsc2UgaWYgKGNoYXJjb2RlIDwgMHg4MDApIHtcclxuICAgICAgdXRmOC5wdXNoKDB4YzAgfCAoY2hhcmNvZGUgPj4gNiksXHJcbiAgICAgICAgMHg4MCB8IChjaGFyY29kZSAmIDB4M2YpKVxyXG4gICAgfSBlbHNlIGlmIChjaGFyY29kZSA8IDB4ZDgwMCB8fCBjaGFyY29kZSA+PSAweGUwMDApIHtcclxuICAgICAgdXRmOC5wdXNoKDB4ZTAgfCAoY2hhcmNvZGUgPj4gMTIpLFxyXG4gICAgICAgIDB4ODAgfCAoKGNoYXJjb2RlID4+IDYpICYgMHgzZiksXHJcbiAgICAgICAgMHg4MCB8IChjaGFyY29kZSAmIDB4M2YpKVxyXG4gICAgfSBlbHNlIHsgLy8gc3Vycm9nYXRlIHBhaXJcclxuICAgICAgaSsrXHJcbiAgICAgIC8vIFVURi0xNiBlbmNvZGVzIDB4MTAwMDAtMHgxMEZGRkYgYnlcclxuICAgICAgLy8gc3VidHJhY3RpbmcgMHgxMDAwMCBhbmQgc3BsaXR0aW5nIHRoZVxyXG4gICAgICAvLyAyMCBiaXRzIG9mIDB4MC0weEZGRkZGIGludG8gdHdvIGhhbHZlc1xyXG4gICAgICBjaGFyY29kZSA9IDB4MTAwMDAgKyAoKChjaGFyY29kZSAmIDB4M2ZmKSA8PCAxMCkgfFxyXG4gICAgICAgICAgICAgICAgKHN0ci5jaGFyQ29kZUF0KGkpICYgMHgzZmYpKVxyXG4gICAgICB1dGY4LnB1c2goMHhmMCB8IChjaGFyY29kZSA+PiAxOCksXHJcbiAgICAgICAgMHg4MCB8ICgoY2hhcmNvZGUgPj4gMTIpICYgMHgzZiksXHJcbiAgICAgICAgMHg4MCB8ICgoY2hhcmNvZGUgPj4gNikgJiAweDNmKSxcclxuICAgICAgICAweDgwIHwgKGNoYXJjb2RlICYgMHgzZikpXHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB1dGY4XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHV0ZjhBcnJheVRvU3RyIChhcnJheSkge1xyXG4gIGNvbnN0IGxlbiA9IGFycmF5Lmxlbmd0aFxyXG4gIGxldCBvdXQgPSBcIlwiOyBsZXQgaSA9IDA7IGxldCBjXHJcbiAgbGV0IGNoYXIyLCBjaGFyM1xyXG4gIHdoaWxlIChpIDwgbGVuKSB7XHJcbiAgICBjID0gYXJyYXlbaSsrXVxyXG4gICAgc3dpdGNoIChjID4+IDQpIHtcclxuICAgICAgY2FzZSAwOiBjYXNlIDE6IGNhc2UgMjogY2FzZSAzOiBjYXNlIDQ6IGNhc2UgNTogY2FzZSA2OiBjYXNlIDc6XHJcbiAgICAgICAgLy8gMHh4eHh4eHhcclxuICAgICAgICBvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjKVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIGNhc2UgMTI6IGNhc2UgMTM6XHJcbiAgICAgICAgLy8gMTEweCB4eHh4ICAgMTB4eCB4eHh4XHJcbiAgICAgICAgY2hhcjIgPSBhcnJheVtpKytdXHJcbiAgICAgICAgb3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjICYgMHgxRikgPDwgNikgfCAoY2hhcjIgJiAweDNGKSlcclxuICAgICAgICBicmVha1xyXG4gICAgICBjYXNlIDE0OlxyXG4gICAgICAgIC8vIDExMTAgeHh4eCAgMTB4eCB4eHh4ICAxMHh4IHh4eHhcclxuICAgICAgICBjaGFyMiA9IGFycmF5W2krK11cclxuICAgICAgICBjaGFyMyA9IGFycmF5W2krK11cclxuICAgICAgICBvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAweDBGKSA8PCAxMikgfFxyXG4gICAgICAgICAgICAgICAgICAgICgoY2hhcjIgJiAweDNGKSA8PCA2KSB8XHJcbiAgICAgICAgICAgICAgICAgICAgKChjaGFyMyAmIDB4M0YpIDw8IDApKVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBvdXRcclxufVxyXG5cclxuYXN5bmMgZnVuY3Rpb24gcHJvbXB0IChxdWVzdGlvbikge1xyXG4gIGNvbnN0IHJlYWRsaW5lSW50ZXJmYWNlID0gcmVhZGxpbmUuY3JlYXRlSW50ZXJmYWNlKHtcclxuICAgIGlucHV0OiBwcm9jZXNzLnN0ZGluLFxyXG4gICAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dCxcclxuICB9KVxyXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICByZWFkbGluZUludGVyZmFjZS5xdWVzdGlvbihgJHtxdWVzdGlvbn0gYCwgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHJlYWRsaW5lSW50ZXJmYWNlLmNsb3NlKClcclxuICAgICAgcmVzb2x2ZShyZXNwb25zZS50cmltKCkpXHJcbiAgICB9KVxyXG4gIH0pXHJcbn1cclxuXHJcbmFzeW5jIGZ1bmN0aW9uIHByb21wdGVyIChwcm9taXNlKSB7XHJcbiAgY29uc3QgbG9hZGluZyA9ICgoKSA9PiB7XHJcbiAgICBjb25zdCBoID0gW1wifFwiLCBcIi9cIiwgXCItXCIsIFwiXFxcXFwiXVxyXG4gICAgbGV0IGkgPSAwXHJcbiAgICByZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICBpID0gKGkgPiAzKSA/IDAgOiBpXHJcbiAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBcXGJcXGIke2hbaV19IGApXHJcbiAgICAgIGkrK1xyXG4gICAgfSwgNTApXHJcbiAgfSkoKVxyXG4gIHJldHVybiBwcm9taXNlXHJcbiAgICAudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICBjbGVhckludGVydmFsKGxvYWRpbmcpXHJcbiAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiXFxiXFxiXCIpXHJcbiAgICAgIHJldHVybiByZXN1bHRcclxuICAgIH0pXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRyYWNlQ2hlY2tsaXN0cyAoY2hlY2tsaXN0cykge1xyXG4gIGlmIChjaGVja2xpc3RzICYmIE9iamVjdC5rZXlzKGNoZWNrbGlzdHMpLmxlbmd0aCA+IDApIHtcclxuICAgIGNvbnN0IGhlYWRsaW5lcyA9IFtcIk5PREVTXCIsIC4uLk9iamVjdC5rZXlzKGNoZWNrbGlzdHMpLm1hcChrZXkgPT4gYDoke2tleX1gKV1cclxuICAgIGNoZWNrbGlzdHMgPSBPYmplY3QudmFsdWVzKGNoZWNrbGlzdHMpXHJcbiAgICBjb25zdCB1cmxzID0gT2JqZWN0LmtleXMoY2hlY2tsaXN0c1swXSlcclxuICAgIGNvbnN0IHJlY29yZHMgPSB1cmxzLm1hcCh1cmwgPT4ge1xyXG4gICAgICBjb25zdCBlcnJvcnMgPSBjaGVja2xpc3RzLmZpbHRlcihjaGVja2xpc3QgPT4gY2hlY2tsaXN0W3VybF0gaW5zdGFuY2VvZiBFcnJvcikubGVuZ3RoXHJcbiAgICAgIHJldHVybiBbXHJcbiAgICAgICAgZXJyb3JzID09PSBjaGVja2xpc3RzLmxlbmd0aCA/IHJlZCh1cmwpIDogKGVycm9ycyA+IDAgPyBteWVsbG93KHVybCkgOiBtY3lhbih1cmwpKSxcclxuICAgICAgICAuLi5jaGVja2xpc3RzLm1hcChjaGVja2xpc3QgPT4gY2hlY2tsaXN0W3VybF0gaW5zdGFuY2VvZiBFcnJvclxyXG4gICAgICAgICAgPyByZWQoY2hlY2tsaXN0W3VybF0pXHJcbiAgICAgICAgICA6IChjaGVja2xpc3RbdXJsXSA9PT0gdHJ1ZSA/IGxjeWFuKFwiQXllXCIpIDogY3lhbihcIk5heVwiKSlcclxuICAgICAgICApLFxyXG4gICAgICBdXHJcbiAgICB9KVxyXG4gICAgdHJhY2VUYWJsZShyZWNvcmRzLCB7XHJcbiAgICAgIGhlYWRsaW5lcyxcclxuICAgICAgbWF4Q29sdW1uV2lkdGg6IDMxLFxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRyYWNlSGVhZGVyIChoZWFkbGluZSwgY29sb3IgPSBub3JtYWwsIGluZGVudCA9IFwiXCIsKSB7XHJcbiAgY29uc29sZS5pbmZvKGAke2luZGVudH3ilIzilIAke1wi4pSAXCIucmVwZWF0KGhlYWRsaW5lLmxlbmd0aCl94pSA4pSQYClcclxuICBjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2NvbG9yKGhlYWRsaW5lKX0g4pSCYClcclxuICBjb25zb2xlLmluZm8oYCR7aW5kZW50feKUlOKUgCR7XCLilIBcIi5yZXBlYXQoaGVhZGxpbmUubGVuZ3RoKX3ilIDilJhgKVxyXG59XHJcblxyXG5mdW5jdGlvbiB0cmFjZVRhYmxlIChyZWNvcmRzLCBvcHRpb25zKSB7XHJcbiAgY29uc3Qgc3RyaW5naWZ5ID0gKGRhdGEsIGh1bWFuaXplcnMsIGluZGV4KSA9PiBodW1hbml6ZXJzICYmIGh1bWFuaXplcnNbaW5kZXhdID8gaHVtYW5pemVyc1tpbmRleF0oZGF0YSkudG9TdHJpbmcoKSA6IGRhdGE/LnRvU3RyaW5nKCkgPz8gXCJcIlxyXG4gIGNvbnN0IG1heCA9IChhLCBiKSA9PiBhID4gYiA/IGEgOiBiXHJcbiAgY29uc3QgcmVkdWNlTWF4ID0gKG51bWJlcnMpID0+IG51bWJlcnMucmVkdWNlKChjdXJyLCBwcmV2KSA9PiBwcmV2ID4gY3VyciA/IHByZXYgOiBjdXJyLCAwKVxyXG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9XHJcbiAgY29uc3QgaW5kZW50ID0gb3B0aW9ucz8uaW5kZW50IHx8IFwiXCJcclxuICBjb25zdCBudW1Db2x1bW5zID0gcmVkdWNlTWF4KHJlY29yZHMubWFwKHJlY29yZCA9PiByZWNvcmQ/Lmxlbmd0aCB8fCAxKSlcclxuICBjb25zdCBtYXhDb2x1bW5XaWR0aCA9IG9wdGlvbnM/Lm1heENvbHVtbldpZHRoIHx8IDgwXHJcbiAgY29uc3QgdGFibGUgPSB0cmFuc3Bvc2UocmVjb3JkcywgbnVtQ29sdW1ucylcclxuICBvcHRpb25zLndpZHRocyA9IG9wdGlvbnM/LndpZHRocyB8fCB0YWJsZS5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IHtcclxuICAgIGxldCBtYXhXaWR0aCA9IHJlZHVjZU1heChjb2x1bW4ubWFwKGZpZWxkID0+IGNvbG9yc3RyaXAoc3RyaW5naWZ5KGZpZWxkLCBvcHRpb25zPy5odW1hbml6ZXJzLCBpbmRleCkpLmxlbmd0aCkpXHJcbiAgICBpZiAob3B0aW9ucz8uaGVhZGxpbmVzICYmIG9wdGlvbnMuaGVhZGxpbmVzW2luZGV4XSkge1xyXG4gICAgICBtYXhXaWR0aCA9IG1heChtYXhXaWR0aCwgY29sb3JzdHJpcChvcHRpb25zLmhlYWRsaW5lc1tpbmRleF0ucmVwbGFjZUFsbChcIjpcIiwgXCJcIikpLmxlbmd0aClcclxuICAgIH1cclxuICAgIHJldHVybiBNYXRoLm1pbihtYXhXaWR0aCwgbWF4Q29sdW1uV2lkdGgpXHJcbiAgfSlcclxuICBsZXQgaGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAobWF4V2lkdGggPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKVxyXG4gIGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSM4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pSs4pSAXCIpfeKUgOKUkGApXHJcbiAgaWYgKG9wdGlvbnM/LmhlYWRsaW5lcykge1xyXG4gICAgaGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBjYXB0aW9uID0gb3B0aW9ucy5oZWFkbGluZXNbaW5kZXhdLnJlcGxhY2VBbGwoXCI6XCIsIFwiXCIpXHJcbiAgICAgIGNvbnN0IGNhcHRpb25MZW5ndGggPSBjb2xvcnN0cmlwKGNhcHRpb24pLmxlbmd0aFxyXG4gICAgICByZXR1cm4gYCR7d2hpdGUoY2FwdGlvbil9JHtcIiBcIi5yZXBlYXQobWF4V2lkdGggLSBjYXB0aW9uTGVuZ3RoKX1gXHJcbiAgICB9KVxyXG4gICAgY29uc29sZS5pbmZvKGAke2luZGVudH3ilIIgJHtoZWFkbGluZS5qb2luKFwiIOKUgiBcIil9IOKUgmApXHJcbiAgICBoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcChtYXhXaWR0aCA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpXHJcbiAgICBjb25zb2xlLmluZm8oYCR7aW5kZW50feKUnOKUgCR7aGVhZGxpbmUuam9pbihcIuKUgOKUvOKUgFwiKX3ilIDilKRgKVxyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBsaW5lID0gXCJcIlxyXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBudW1Db2x1bW5zOyBqKyspIHtcclxuICAgICAgbGV0IGRhdGEgPSB0YWJsZVtqXVtpXVxyXG4gICAgICBsZXQgY29sb3JcclxuICAgICAgaWYgKG9wdGlvbnM/LmNvbG9ycyAmJiBvcHRpb25zLmNvbG9yc1tqXSkge1xyXG4gICAgICAgIGNvbG9yID0gb3B0aW9ucy5jb2xvcnNbal1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xvciA9IHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiXHJcbiAgICAgICAgICA/IGdyZWVuXHJcbiAgICAgICAgICA6IChOdW1iZXIoZGF0YSkgPT09IGRhdGEgJiYgZGF0YSAlIDEgIT09IDAgLy8gaXMgZmxvYXQgbnVtYmVyP1xyXG4gICAgICAgICAgICA/IHllbGxvd1xyXG4gICAgICAgICAgICA6ICh4KSA9PiB4XHJcbiAgICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgZGF0YSA9IHN0cmluZ2lmeShkYXRhLCBvcHRpb25zPy5odW1hbml6ZXJzLCBqKVxyXG4gICAgICBpZiAoY29sb3JzdHJpcChkYXRhKS5sZW5ndGggPiBtYXhDb2x1bW5XaWR0aCkge1xyXG4gICAgICAgIHdoaWxlIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoIC0gMykge1xyXG4gICAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoMCwgLTEpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRhdGEgKz0gXCIuLi5cIlxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRhdGFMZW5ndGggPSBjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aFxyXG4gICAgICBpZiAob3B0aW9ucz8uaGVhZGxpbmVzICYmIG9wdGlvbnMuaGVhZGxpbmVzW2pdWzBdID09PSBcIjpcIikge1xyXG4gICAgICAgIGRhdGEgPSBgJHtjb2xvcihkYXRhKX0ke1wiIFwiLnJlcGVhdChvcHRpb25zLndpZHRoc1tqXSAtIGRhdGFMZW5ndGgpfWBcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkYXRhID0gYCR7XCIgXCIucmVwZWF0KG9wdGlvbnMud2lkdGhzW2pdIC0gZGF0YUxlbmd0aCl9JHtjb2xvcihkYXRhKX1gXHJcbiAgICAgIH1cclxuICAgICAgbGluZSArPSBg4pSCICR7ZGF0YX0gYFxyXG4gICAgfVxyXG4gICAgY29uc29sZS5pbmZvKGAke2luZGVudH0ke2xpbmV94pSCYClcclxuICB9XHJcbiAgaGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAobWF4V2lkdGggPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKVxyXG4gIGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS04pSAXCIpfeKUgOKUmGApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRyYW5zcG9zZSAocmVjb3JkcywgbnVtQ29sdW1ucykge1xyXG4gIGNvbnN0IGNvbHVtbnMgPSBbXVxyXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBudW1Db2x1bW5zOyBpbmRleCsrKSB7XHJcbiAgICBjb2x1bW5zLnB1c2gocmVjb3Jkcy5tYXAocm93ID0+IHJvd1tpbmRleF0pKVxyXG4gIH1cclxuICByZXR1cm4gY29sdW1uc1xyXG59XHJcblxyXG5mdW5jdGlvbiB0eEpzb25SZXBsYWNlciAoa2V5LCB2YWx1ZSkge1xyXG4gIHN3aXRjaCAoa2V5KSB7XHJcbiAgICBjYXNlIFwiYnl0ZXNcIjpcclxuICAgIGNhc2UgXCJkZXJcIjpcclxuICAgICAgcmV0dXJuIHRvSGV4U3RyaW5nKHZhbHVlLCB0cnVlKVxyXG4gICAgY2FzZSBcInR4XCI6XHJcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgdHhKc29uUmVwbGFjZXIpXHJcbiAgICBjYXNlIFwiY2hhbmdlXCI6XHJcbiAgICBjYXNlIFwiZmVlc1wiOlxyXG4gICAgY2FzZSBcInZhbHVlXCI6XHJcbiAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSkgLyAxMCAqKiA5XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHR4UmVjZWlwdEpzb25SZXBsYWNlciAoa2V5LCB2YWx1ZSkge1xyXG4gIHN3aXRjaCAoa2V5KSB7XHJcbiAgICBjYXNlIFwiYnl0ZXNcIjpcclxuICAgIGNhc2UgXCJkZXJcIjpcclxuICAgICAgcmV0dXJuIHRvSGV4U3RyaW5nKHZhbHVlLCB0cnVlKVxyXG4gICAgY2FzZSBcInR4XCI6XHJcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgdHhKc29uUmVwbGFjZXIpXHJcbiAgICBjYXNlIFwiY2hhbmdlXCI6XHJcbiAgICBjYXNlIFwiZmVlc1wiOlxyXG4gICAgY2FzZSBcInZhbHVlXCI6XHJcbiAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZT8ucGVkcm9zKSAvIDEwICoqIDlcclxuICAgIGNhc2UgXCJ0aW1lc3RhbXBcIjpcclxuICAgICAgcmV0dXJuIG1vbWVudC51bml4KHZhbHVlKS5mb3JtYXQoXCJNTU1NIERvIFlZWVksIGg6bW06c3MgYVwiKVxyXG4gICAgZGVmYXVsdDpcclxuICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB0cmFjZVRyYW5zYWN0aW9uT25DaGVja3BvaW50IChyZWNlaXB0KSB7XHJcbiAgaWYgKHJlY2VpcHQ/LmNvbmZpcm1hdGlvbnMpIHtcclxuICAgIGNvbnNvbGUuaW5mbyhgID4gQ2hlY2twb2ludCAjJHtjb21tYXMocmVjZWlwdC5jb25maXJtYXRpb25zKX0uLi5gKVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gdHJhY2VUcmFuc2FjdGlvbk9uU3RhdHVzQ2hhbmdlIChyZWNlaXB0KSB7XHJcbiAgY29uc3QgY2FwdGlvbnMgPSB7XHJcbiAgICBwZW5kaW5nOiBcIkF3YWl0aW5nIHJlbGF5Li4uXCIsXHJcbiAgICAvLyBjb25maXJtZWQ6IFwiVHJhbnNhY3Rpb24gY29uZmlybWVkOlwiLFxyXG4gICAgLy8gZmluYWxpemVkOiBcIlRyYW5zYWN0aW9uIGZpbmFsaXplZDpcIixcclxuICAgIHJlbGF5ZWQ6IFwiQXdhaXRpbmcgaW5jbHVzaW9uLi4uXCIsXHJcbiAgICBtaW5lZDogXCJBd2FpdGluZyBjb25maXJtYXRpb25zLi4uXCIsXHJcbiAgfVxyXG4gIGNvbnN0IGNhcHRpb24gPSBjYXB0aW9uc1tyZWNlaXB0LnN0YXR1c11cclxuICBpZiAoY2FwdGlvbikgY29uc29sZS5pbmZvKGAgPiAke2NhcHRpb25zW3JlY2VpcHQuc3RhdHVzXX1gKVxyXG4gIGlmIChbXCJmaW5hbGl6ZWRcIiwgXCJjb25maXJtZWRcIl0uaW5jbHVkZXMocmVjZWlwdC5zdGF0dXMpKSB7XHJcbiAgICBjb25zb2xlLmluZm8oYCA+IEJsb2NrIGhhc2g6ICAgJHtncmF5KHJlY2VpcHQ/LmJsb2NrSGFzaCl9YClcclxuICAgIGNvbnNvbGUuaW5mbyhgID4gQmxvY2sgbWluZXI6ICAke2N5YW4ocmVjZWlwdD8uYmxvY2tNaW5lcil9YCk7XHJcbiAgICBjb25zb2xlLmluZm8oYCA+IEJsb2NrIGVwb2NoOiAgJHt3aGl0ZShjb21tYXMocmVjZWlwdD8uYmxvY2tFcG9jaCkpfWApXHJcbiAgICBjb25zb2xlLmluZm8oYCA+IEluY2x1ZGVkIGF0OiAgJHtncmVlbihtb21lbnQudW5peChyZWNlaXB0Py5ibG9ja1RpbWVzdGFtcCkuZm9ybWF0KFwiTU1NTSBEbyBZWVlZLCBoOm1tOnNzIGFcIikpfWApXHJcbiAgICBjb25zb2xlLmluZm8oYCA+ICR7cmVjZWlwdC5zdGF0dXNbMF0udG9VcHBlckNhc2UoKSArIHJlY2VpcHQuc3RhdHVzLnNsaWNlKDEpfSBhdDogJHttZ3JlZW4obW9tZW50LnVuaXgocmVjZWlwdC50aW1lc3RhbXApLmZvcm1hdChcIk1NTU0gRG8gWVlZWSwgaDptbTpzcyBhXCIpKX1gKVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gdHJhY2VUcmFuc2FjdGlvblJlY2VpcHQgKHJlY2VpcHQpIHtcclxuICBjb25zdCBjYXB0aW9ucyA9IHtcclxuICAgIERhdGFSZXF1ZXN0OiBcIiA+IERSVCBoYXNoOiAgICAgXCIsXHJcbiAgICBWYWx1ZVRyYW5zZmVyOiBcIiA+IFZUVCBoYXNoOiAgICAgXCIsXHJcbiAgfVxyXG4gIGNvbnNvbGUuaW5mbyhgJHtjYXB0aW9uc1tyZWNlaXB0LnR5cGVdIHx8IFwiID4gVFggaGFzaDogICAgICBcIn0ke3doaXRlKHJlY2VpcHQuaGFzaCl9YClcclxuICBpZiAocmVjZWlwdD8uZHJvSGFzaCkgY29uc29sZS5pbmZvKGAgPiBEUk8gaGFzaDogICAgICR7Z3JlZW4ocmVjZWlwdC5kcm9IYXNoKX1gKVxyXG4gIGlmIChyZWNlaXB0Py5yYWRIYXNoKSBjb25zb2xlLmluZm8oYCA+IFJBRCBoYXNoOiAgICAgJHttZ3JlZW4ocmVjZWlwdC5yYWRIYXNoKX1gKVxyXG4gIGlmIChyZWNlaXB0Py5kcm9TTEEpIGNvbnNvbGUuaW5mbyhgID4gU0xBIHBhcmFtczogICAke0pTT04uc3RyaW5naWZ5KHJlY2VpcHQuZHJvU0xBKX1gKVxyXG4gIGlmIChyZWNlaXB0Py53aXRoZHJhd2VyKSB7XHJcbiAgICBpZiAocmVjZWlwdD8udmFsaWRhdG9yKSB7XHJcbiAgICAgIGNvbnNvbGUuaW5mbyhgID4gVmFsaWRhdG9yOiAgICAke21jeWFuKHJlY2VpcHQudmFsaWRhdG9yKX1gKVxyXG4gICAgfVxyXG4gICAgY29uc29sZS5pbmZvKGAgPiBXaXRoZHJhd2VyOiAgICR7bW1hZ2VudGEocmVjZWlwdC53aXRoZHJhd2VyKX1gKVxyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBzaWduZXJzID0gQXJyYXkuaXNBcnJheShyZWNlaXB0LmZyb20pID8gcmVjZWlwdC5mcm9tIDogW3JlY2VpcHQuZnJvbV1cclxuICAgIGNvbnNvbGUuaW5mbyhgID4gU2lnbmVyL3M6ICAgICAke21tYWdlbnRhKHNpZ25lcnNbMF0pfWApXHJcbiAgICBzaWduZXJzLnNsaWNlKDEpLmZvckVhY2goc2lnbmVyID0+IHtcclxuICAgICAgY29uc29sZS5pbmZvKGAgICAgICAgICAgICAgICAgICR7bW1hZ2VudGEoc2lnbmVyKX1gKVxyXG4gICAgfSlcclxuICB9XHJcbiAgaWYgKHJlY2VpcHQ/LnJlY2lwaWVudHMpIHtcclxuICAgIGNvbnNvbGUuaW5mbyhgID4gUmVjaXBpZW50L3M6ICAke1xyXG4gICAgICBtYmx1ZShyZWNlaXB0LnJlY2lwaWVudHMuZmlsdGVyKChwa2gsIGluZGV4LCBhcnJheSkgPT4gaW5kZXggPT09IGFycmF5LmluZGV4T2YocGtoKSkpXHJcbiAgICB9YClcclxuICB9XHJcbiAgaWYgKHJlY2VpcHQ/LmZlZXMpIGNvbnNvbGUuaW5mbyhgID4gRmVlOiAgICAgICAgICAke3llbGxvdyhyZWNlaXB0LmZlZXMudG9TdHJpbmcoMikpfWApXHJcbiAgaWYgKHJlY2VpcHQ/LnZhbHVlKSBjb25zb2xlLmluZm8oYCA+IFZhbHVlOiAgICAgICAgJHtteWVsbG93KHJlY2VpcHQudmFsdWUudG9TdHJpbmcoMikpfWApXHJcbiAgaWYgKHJlY2VpcHQ/LndlaWdodCkgY29uc29sZS5pbmZvKGAgPiBXZWlnaHQ6ICAgICAgICR7bWdyZWVuKGNvbW1hcyhyZWNlaXB0LndlaWdodCkpfWApXHJcbiAgaWYgKHJlY2VpcHQ/LndpdG5lc3Nlcykge1xyXG4gICAgY29uc29sZS5pbmZvKGAgPiBXaXRuZXNzZXM6ICAgICR7cmVjZWlwdC53aXRuZXNzZXN9YClcclxuICB9XHJcbn1cclxuXHJcbmFzeW5jIGZ1bmN0aW9uIHRyYWNlVHJhbnNhY3Rpb24gKHRyYW5zbWl0dGVyLCBvcHRpb25zKSB7XHJcbiAgY29uc3QgY29sb3IgPSBvcHRpb25zPy5jb2xvciB8fCAoKHgpID0+IGBcXHgxYlszMDs0NW0ke3h9XFx4MWJbMG1gKVxyXG4gIGxldCByZWNlaXB0ID0gYXdhaXQgdHJhbnNtaXR0ZXIuc2lnblRyYW5zYWN0aW9uKG9wdGlvbnMsIG9wdGlvbnM/LnJlbG9hZClcclxuICBpZiAob3B0aW9ucz8udmVyYm9zZSkge1xyXG4gICAgY29uc29sZS5pbmZvKFxyXG4gICAgICBgXFxuJHtncmF5KEpTT04uc3RyaW5naWZ5KHJlY2VpcHQudHgsIHR4SnNvblJlcGxhY2VyKSl9YFxyXG4gICAgKVxyXG4gIH1cclxuICBpZiAob3B0aW9ucz8uaGVhZGxpbmUpIHtcclxuICAgIGNvbnNvbGUuaW5mbyhgXFxuICR7Y29sb3IoYCAgJHtvcHRpb25zLmhlYWRsaW5lfSAgYCl9XFxuYClcclxuICB9XHJcbiAgdHJhY2VUcmFuc2FjdGlvblJlY2VpcHQocmVjZWlwdClcclxuICBpZiAoIW9wdGlvbnM/LmZvcmNlKSB7XHJcbiAgICAvLyBwcm9tcHQgdXNlciBjb25maXJtYXRpb25cclxuICAgIGNvbnNvbGUuaW5mbygpXHJcbiAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCByZXF1aXJlKFwiaW5xdWlyZXJcIikuY3JlYXRlUHJvbXB0TW9kdWxlKCkoW3tcclxuICAgICAgbWVzc2FnZTogXCJTZW5kIHRyYW5zYWN0aW9uP1wiLFxyXG4gICAgICB0eXBlOiBcImNvbmZpcm1cIixcclxuICAgICAgbmFtZTogXCJjb250aW51ZVwiLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcclxuICAgIH1dKVxyXG4gICAgaWYgKCFhbnN3ZXIuY29udGludWUpIHtcclxuICAgICAgcmV0dXJuIHJlY2VpcHRcclxuICAgIH1cclxuICB9XHJcbiAgdHJ5IHtcclxuICAgIGNvbnNvbGUuaW5mbygpXHJcbiAgICByZWNlaXB0ID0gYXdhaXQgdHJhbnNtaXR0ZXIuc2VuZFRyYW5zYWN0aW9uKClcclxuICAgIGlmIChvcHRpb25zPy5hd2FpdCB8fCBvcHRpb25zPy5jb25maXJtYXRpb25zICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmVjZWlwdCA9IGF3YWl0IHRyYW5zbWl0dGVyLmNvbmZpcm1UcmFuc2FjdGlvbihyZWNlaXB0Lmhhc2gsIHtcclxuICAgICAgICBjb25maXJtYXRpb25zOiBvcHRpb25zPy5jb25maXJtYXRpb25zIHx8IDAsXHJcbiAgICAgICAgb25DaGVja3BvaW50OiB0cmFjZVRyYW5zYWN0aW9uT25DaGVja3BvaW50LFxyXG4gICAgICAgIG9uU3RhdHVzQ2hhbmdlOiB0cmFjZVRyYW5zYWN0aW9uT25TdGF0dXNDaGFuZ2UsXHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkYXRhID0geyBzdGF0dXM6IHJlY2VpcHQ/LnN0YXR1cywgdGltZXN0YW1wOiByZWNlaXB0Py50aW1lc3RhbXAgfHwgTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCkgfVxyXG4gICAgICBjb25zb2xlLmluZm8oZGF0YSlcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnIpIHtcclxuICAgIGlmIChlcnI/LmluRmxpZ2h0ICYmIGVyci5pbkZsaWdodCkge1xyXG4gICAgICBjb25zb2xlLmluZm8oYFxcbiR7Z3JheShKU09OLnN0cmluZ2lmeShlcnIuaW5GbGlndD8ubWVzc2FnZSwgdHhSZWNlaXB0SnNvblJlcGxhY2VyKSl9YClcclxuICAgIH1cclxuICAgIHRocm93IGVyclxyXG4gIH1cclxuICByZXR1cm4gcmVjZWlwdFxyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICBjb2xvcnM6IHtcclxuICAgIGJibHVlLFxyXG4gICAgYmN5YW4sXHJcbiAgICBiZ3JlZW4sXHJcbiAgICBibHVlLFxyXG4gICAgYnJlZCxcclxuICAgIGJ2aW9sZXQsXHJcbiAgICBjeWFuLFxyXG4gICAgZ3JheSxcclxuICAgIGdyZWVuLFxyXG4gICAgbWFnZW50YSxcclxuICAgIHJlZCxcclxuICAgIHdoaXRlLFxyXG4gICAgeWVsbG93LFxyXG4gICAgbm9ybWFsLFxyXG4gICAgbGN5YW4sXHJcbiAgICBsZ3JheSxcclxuICAgIGxncmVlbixcclxuICAgIGxtYWdlbnRhLFxyXG4gICAgbHllbGxvdyxcclxuICAgIG1ibHVlLFxyXG4gICAgbWN5YW4sXHJcbiAgICBtZ3JlZW4sXHJcbiAgICBtbWFnZW50YSxcclxuICAgIG1yZWQsXHJcbiAgICBteWVsbG93LFxyXG4gIH0sXHJcbiAgY29sb3JzdHJpcCxcclxuICBjb21tYXMsXHJcbiAgd2hvbGVfd2l0cyxcclxuICB0b0ZpeGVkVHJ1bmMsXHJcbiAgY291bnRMZWF2ZXMsXHJcbiAgZXhlY1JhZG9uQnl0ZWNvZGUsXHJcbiAgZGVsZXRlRXh0cmFGbGFncyxcclxuICBleHRyYWN0RnJvbUFyZ3MsXHJcbiAgZnJvbUhleFN0cmluZyxcclxuICBpc0hleFN0cmluZyxcclxuICBpc0hleFN0cmluZ09mTGVuZ3RoLFxyXG4gIHRvSGV4U3RyaW5nLFxyXG4gIHBhcnNlVVJMLFxyXG4gIGlwSXNQcml2YXRlT3JMb2NhbGhvc3QsXHJcbiAgc2hvd1VzYWdlLFxyXG4gIHNob3dVc2FnZUVycm9yLFxyXG4gIHNob3dVc2FnZVN1YmNvbW1hbmQsXHJcbiAgc2hvd1ZlcnNpb24sXHJcbiAgdG9vbGtpdFJ1bixcclxuICB0b1VwcGVyQ2FtZWxDYXNlLFxyXG4gIHRvVXRmMTZCeXRlcyxcclxuICB0b1V0ZjhBcnJheSwgIFxyXG4gIHV0ZjhBcnJheVRvU3RyLFxyXG4gIHByb21wdCxcclxuICBwcm9tcHRlcixcclxuICB0cmFjZUNoZWNrbGlzdHMsXHJcbiAgdHJhY2VIZWFkZXIsXHJcbiAgdHJhY2VUYWJsZSxcclxuICB0cmFjZVRyYW5zYWN0aW9uLFxyXG4gIHRyYWNlVHJhbnNhY3Rpb25PblN0YXR1c0NoYW5nZSxcclxuICB0cmFjZVRyYW5zYWN0aW9uT25DaGVja3BvaW50LFxyXG4gIHRyYWNlVHJhbnNhY3Rpb25SZWNlaXB0LFxyXG4gIGNoZWNrUnBjV2lsZGNhcmRzLFxyXG4gIGlzV2lsZGNhcmQsXHJcbiAgZ2V0V2lsZGNhcmRzQ291bnRGcm9tU3RyaW5nLFxyXG4gIHJlcGxhY2VXaWxkY2FyZHMsXHJcbiAgc3BsaWNlV2lsZGNhcmQsXHJcbiAgdHhKc29uUmVwbGFjZXIsXHJcbn1cclxuIl19
|
|
826
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vaGVscGVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUN6QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7QUFDaEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzFCLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUN4QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7QUFFcEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQ3JDLDZFQUE2RSxFQUFFLEVBQUUsQ0FDbEYsQ0FBQTtBQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7SUFDeEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMxQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7UUFDOUIsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNyRCxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ25FLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBRUQsU0FBUyxZQUFZLENBQUUsQ0FBQyxFQUFFLENBQUM7SUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQy9ELElBQUksQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2xCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ3BELE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQTtJQUM3QixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFBO0FBQ3ZCLENBQUM7QUFBQSxDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDcEMsTUFBTSxNQUFNLEdBQUc7UUFDYixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtRQUMvQixFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7UUFDckMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO1FBQ3JDLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRTtRQUN0QyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7S0FDdkMsQ0FBQTtJQUNELHlDQUF5QztJQUN6QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDL0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDOUcsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFBO0FBQzVILENBQUMsQ0FBQTtBQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUE7QUFDdkQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUE7QUFDbkQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUE7QUFDcEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUE7QUFDbEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUE7QUFFckQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDaEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDaEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDakQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDbkQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDbEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDOUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDOUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDL0MsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDbkQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDN0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFFaEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDN0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDN0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDN0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDOUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDbEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDL0MsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFDNUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUE7QUFDaEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7QUFFL0MsU0FBUyxXQUFXLENBQUUsQ0FBQyxFQUFFLEdBQUc7SUFDMUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxDQUFDLENBQUE7SUFDN0MsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzlCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTs7UUFDbEYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcs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Q0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0MsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDN0QsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFFLE9BQU8sRUFBRSxPQUFPO0lBQ25DLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUM1SSxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ25DLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDM0YsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQzFCLE1BQU0sTUFBTSxHQUFHLE9BQU8sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFBO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3hFLE1BQU0sY0FBYyxHQUFHLE9BQU8sRUFBRSxjQUFjLElBQUksRUFBRSxDQUFBO0lBQ3BELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDNUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDOUQsSUFBSSxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUM5RyxJQUFJLE9BQU8sRUFBRSxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25ELFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMzRixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUMzQyxDQUFDLENBQUMsQ0FBQTtJQUNGLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ25FLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDcEQsSUFBSSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDdkIsUUFBUSxHQUFHLE9BQU8sQ0FBQyxN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aXJlKFwiY2hpbGRfcHJvY2Vzc1wiKVxuY29uc3QgbW9tZW50ID0gcmVxdWlyZShcIm1vbWVudFwiKVxuY29uc3QgbmV0ID0gcmVxdWlyZShcIm5ldFwiKVxuY29uc3Qgb3MgPSByZXF1aXJlKFwib3NcIilcbmNvbnN0IHJlYWRsaW5lID0gcmVxdWlyZShcInJlYWRsaW5lXCIpXG5cbmNvbnN0IGNvbG9yc3RyaXAgPSAoc3RyKSA9PiBzdHIucmVwbGFjZShcbiAgL1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZywgXCJcIlxuKVxuXG5jb25zdCBjb21tYXMgPSAobnVtYmVyKSA9PiB7XG4gIGNvbnN0IHBhcnRzID0gbnVtYmVyLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpXG4gIGNvbnN0IHJlc3VsdCA9IHBhcnRzLmxlbmd0aCA8PSAxXG4gICAgPyBgJHtwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIil9YFxuICAgIDogYCR7cGFydHNbMF0ucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgXCIsXCIpfS4ke3BhcnRzWzFdfWBcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiB0b0ZpeGVkVHJ1bmMgKHgsIG4pIHtcbiAgY29uc3QgdiA9ICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIiA/IHggOiB4LnRvU3RyaW5nKCkpLnNwbGl0KFwiLlwiKVxuICBpZiAobiA8PSAwKSByZXR1cm4gdlswXVxuICBsZXQgZiA9IHZbMV0gfHwgXCJcIlxuICBpZiAoZi5sZW5ndGggPiBuKSByZXR1cm4gYCR7dlswXX0uJHtmLnN1YnN0cigwLCBuKX1gXG4gIHdoaWxlIChmLmxlbmd0aCA8IG4pIGYgKz0gXCIwXCJcbiAgcmV0dXJuIGAke3ZbMF19LiR7Zn1gXG59O1xuXG5jb25zdCB3aG9sZV93aXRzID0gKG51bWJlciwgZGlnaXRzKSA9PiB7XG4gIGNvbnN0IGxvb2t1cCA9IFtcbiAgICB7IHZhbHVlOiAxbiwgc3ltYm9sOiBcInBlZHJvc1wiIH0sXG4gICAgeyB2YWx1ZTogMTBuICoqIDZuLCBzeW1ib2w6IFwibVdpdHNcIiB9LFxuICAgIHsgdmFsdWU6IDEwbiAqKiA5biwgc3ltYm9sOiBcIiBXaXRzXCIgfSxcbiAgICB7IHZhbHVlOiAxMG4gKiogMTJuLCBzeW1ib2w6IFwiS1dpdHNcIiB9LFxuICAgIHsgdmFsdWU6IDEwbiAqKiAxNW4sIHN5bWJvbDogXCJNV2l0c1wiIH0sXG4gIF1cbiAgLy8gY29uc3QgcmVnZXhwID0gL1xcLjArJHwoPzw9XFwuWzAtOV0pMCskL1xuICBjb25zdCBpdGVtID0gbG9va3VwLmZpbmRMYXN0KGl0ZW0gPT4gbnVtYmVyID49IGl0ZW0udmFsdWUpXG4gIGNvbnN0IHF1b3RpZW50ID0gaXRlbSA/IE51bWJlcihCaWdJbnQobnVtYmVyKSAvIGl0ZW0udmFsdWUpIDogbnVtYmVyLnRvU3RyaW5nKClcbiAgY29uc3QgZGVjaW1hbHMgPSBpdGVtID8gKGl0ZW0udmFsdWUgKyBCaWdJbnQobnVtYmVyKSAtIEJpZ0ludChxdW90aWVudCkgKiBpdGVtLnZhbHVlKS50b1N0cmluZygpLnNsaWNlKDEpIDogXCJcIlxuICByZXR1cm4gaXRlbSA/IGAke2NvbW1hcyhxdW90aWVudCl9JHtkZWNpbWFscyAhPT0gXCJcIiA/IGAuJHtkZWNpbWFscy5zbGljZSgwLCBkaWdpdHMpfWAgOiBcIlwifSAke2l0ZW0uc3ltYm9sfWAgOiBcIihubyBjb2lucylcIlxufVxuXG5jb25zdCBiYmx1ZSA9IChzdHIpID0+IGBcXHgxYlsxOzk4OzQ0bSR7c3RyfVxceDFiWzA7MDswbWBcbmNvbnN0IGJjeWFuID0gKHN0cikgPT4gYFxceDFiWzM4OzQ2bSR7c3RyfVxceDFiWzA7MG1gXG5jb25zdCBiZ3JlZW4gPSAoc3RyKSA9PiBgXFx4MWJbMzA7NDJtJHtzdHJ9XFx4MWJbMDswbWBcbmNvbnN0IGJyZWQgPSAoc3RyKSA9PiBgXFx4MWJbMzA7NDFtJHtzdHJ9XFx4MWJbMDswbWBcbmNvbnN0IGJ2aW9sZXQgPSAoc3RyKSA9PiBgXFx4MWJbMzA7NDVtJHtzdHJ9XFx4MWJbMDswbWBcblxuY29uc3QgbGN5YW4gPSAoc3RyKSA9PiBgXFx4MWJbMTs5Nm0ke3N0cn1cXHgxYlswbWBcbmNvbnN0IGxncmF5ID0gKHN0cikgPT4gYFxceDFiWzE7OTBtJHtzdHJ9XFx4MWJbMG1gXG5jb25zdCBsZ3JlZW4gPSAoc3RyKSA9PiBgXFx4MWJbMTs5Mm0ke3N0cn1cXHgxYlswbWBcbmNvbnN0IGxtYWdlbnRhID0gKHN0cikgPT4gYFxceDFiWzE7OTVtJHtzdHJ9XFx4MWJbMG1gXG5jb25zdCBseWVsbG93ID0gKHN0cikgPT4gYFxceDFiWzE7OTNtJHtzdHJ9XFx4MWJbMG1gXG5jb25zdCBtYmx1ZSA9IChzdHIpID0+IGBcXHgxYls5NG0ke3N0cn1cXHgxYlswbWBcbmNvbnN0IG1jeWFuID0gKHN0cikgPT4gYFxceDFiWzk2bSR7c3RyfVxceDFiWzBtYFxuY29uc3QgbWdyZWVuID0gKHN0cikgPT4gYFxceDFiWzkybSR7c3RyfVxceDFiWzBtYFxuY29uc3QgbW1hZ2VudGEgPSAoc3RyKSA9PiBgXFx4MWJbMDs5NW0ke3N0cn1cXHgxYlswbWBcbmNvbnN0IG1yZWQgPSAoc3RyKSA9PiBgXFx4MWJbOTFtJHtzdHJ9XFx4MWJbMG1gXG5jb25zdCBteWVsbG93ID0gKHN0cikgPT4gYFxceDFiWzkzbSR7c3RyfVxceDFiWzBtYFxuXG5jb25zdCBibHVlID0gKHN0cikgPT4gYFxceDFiWzM0bSR7c3RyfVxceDFiWzBtYFxuY29uc3QgY3lhbiA9IChzdHIpID0+IGBcXHgxYlszNm0ke3N0cn1cXHgxYlswbWBcbmNvbnN0IGdyYXkgPSAoc3RyKSA9PiBgXFx4MWJbOTBtJHtzdHJ9XFx4MWJbMG1gXG5jb25zdCBncmVlbiA9IChzdHIpID0+IGBcXHgxYlszMm0ke3N0cn1cXHgxYlswbWBcbmNvbnN0IG1hZ2VudGEgPSAoc3RyKSA9PiBgXFx4MWJbMDszNW0ke3N0cn1cXHgxYlswbWBcbmNvbnN0IG5vcm1hbCA9IChzdHIpID0+IGBcXHgxYls5OG0ke3N0cn1cXHgxYlswbWBcbmNvbnN0IHJlZCA9IChzdHIpID0+IGBcXHgxYlszMW0ke3N0cn1cXHgxYlswbWBcbmNvbnN0IHdoaXRlID0gKHN0cikgPT4gYFxceDFiWzE7OThtJHtzdHJ9XFx4MWJbMG1gXG5jb25zdCB5ZWxsb3cgPSAoc3RyKSA9PiBgXFx4MWJbMzNtJHtzdHJ9XFx4MWJbMG1gXG5cbmZ1bmN0aW9uIGNvdW50TGVhdmVzICh0LCBvYmopIHtcbiAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIDBcbiAgaWYgKG9iaiBpbnN0YW5jZW9mIHQpIHJldHVybiAxXG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHJldHVybiBvYmoucmVkdWNlKChzdW0sIGl0ZW0pID0+IHN1bSArIGNvdW50TGVhdmVzKHQsIGl0ZW0pLCAwKVxuICBlbHNlIHJldHVybiBPYmplY3QudmFsdWVzKG9iaikucmVkdWNlKChzdW0sIGl0ZW0pID0+IHN1bSArIGNvdW50TGVhdmVzKHQsIGl0ZW0pLCAwKVxufVxuXG5mdW5jdGlvbiBkZWxldGVFeHRyYUZsYWdzIChhcmdzKSB7XG4gIHJldHVybiBhcmdzLmZpbHRlcihhcmcgPT4gIWFyZy5zdGFydHNXaXRoKFwiLS1cIikpXG59XG5cbmZ1bmN0aW9uIGNtZCAoLi4uY29tbWFuZCkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGV4ZWMoY29tbWFuZC5qb2luKFwiIFwiKSwgeyBtYXhCdWZmZXI6IDEwMjQgKiAxMDI0ICogMTAgfSwgKGVycm9yLCBzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgIH1cbiAgICAgIGlmIChzdGRlcnIpIHtcbiAgICAgICAgcmVqZWN0KHN0ZGVycilcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoc3Rkb3V0KVxuICAgIH0pXG4gIH0pXG59O1xuXG5hc3luYyBmdW5jdGlvbiBleGVjUmFkb25CeXRlY29kZSAoYnl0ZWNvZGUsIC4uLmZsYWdzKSB7XG4gIGlmICghaXNIZXhTdHJpbmcoYnl0ZWNvZGUpKSB7XG4gICAgdGhyb3cgRXZhbEVycm9yKFwiaW52YWxpZCBoZXggc3RyaW5nXCIpXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbnB4ID0gb3MudHlwZSgpID09PSBcIldpbmRvd3NfTlRcIiA/IFwibnB4LmNtZFwiIDogXCJucHhcIlxuICAgIHJldHVybiBjbWQobnB4LCBcIndpdG5ldFwiLCBcInJhZG9uXCIsIFwiZHJ5cnVuXCIsIGJ5dGVjb2RlLCAuLi5mbGFncylcbiAgICAvLyAuY2F0Y2goKGVycikgPT4ge1xuICAgIC8vICAgICBsZXQgZXJyb3JNZXNzYWdlID0gZXJyLm1lc3NhZ2Uuc3BsaXQoJ1xcbicpLnNsaWNlKDEpLmpvaW4oJ1xcbicpLnRyaW0oKVxuICAgIC8vICAgICBjb25zdCBlcnJvclJlZ2V4ID0gLy4qXmVycm9yOiAoPzxtZXNzYWdlPi4qKSQuKi9nbVxuICAgIC8vICAgICBjb25zdCBtYXRjaGVkID0gZXJyb3JSZWdleC5leGVjKGVyci5tZXNzYWdlKVxuICAgIC8vICAgICBpZiAobWF0Y2hlZCkge1xuICAgIC8vICAgICAgICAgZXJyb3JNZXNzYWdlID0gbWF0Y2hlZC5ncm91cHMubWVzc2FnZVxuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGNvbnNvbGUubG9nKGVycm9yTWVzc2FnZSB8fCBlcnIpXG4gICAgLy8gICAgIGNvbnNvbGUuZXJyb3IoZXJyb3JNZXNzYWdlIHx8IGVycilcbiAgICAvLyB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RGcm9tQXJncyAoYXJncywgZmxhZ3MpIHtcbiAgY29uc3QgY3VyYXRlZCA9IHt9XG4gIGlmIChhcmdzICYmIGZsYWdzKSB7XG4gICAgT2JqZWN0LmtleXMoZmxhZ3MpLmZvckVhY2goZmxhZyA9PiB7XG4gICAgICBjb25zdCBmbGFnSW5kZXggPSBhcmdzLmluZGV4T2YoYC0tJHtmbGFnfWApXG4gICAgICBpZiAoZmxhZ0luZGV4ID49IDApIHtcbiAgICAgICAgaWYgKGZsYWdzW2ZsYWddLnBhcmFtKSB7XG4gICAgICAgICAgY3VyYXRlZFtmbGFnXSA9IGFyZ3NbZmxhZ0luZGV4XVxuICAgICAgICAgIGlmICghYXJnc1tmbGFnSW5kZXggKyAxXSB8fCBhcmdzW2ZsYWdJbmRleCArIDFdLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyIGZvciAtLSR7ZmxhZ31gKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJhdGVkW2ZsYWddID0gYXJnc1tmbGFnSW5kZXggKyAxXVxuICAgICAgICAgICAgYXJncy5zcGxpY2UoZmxhZ0luZGV4LCAyKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdXJhdGVkW2ZsYWddID0gdHJ1ZVxuICAgICAgICAgIGFyZ3Muc3BsaWNlKGZsYWdJbmRleCwgMSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIFthcmdzLCBjdXJhdGVkXVxufVxuXG5mdW5jdGlvbiBmcm9tSGV4U3RyaW5nIChoZXhTdHJpbmcpIHtcbiAgaWYgKGhleFN0cmluZy5zdGFydHNXaXRoKFwiMHhcIikpIGhleFN0cmluZyA9IGhleFN0cmluZy5zbGljZSgyKVxuICByZXR1cm4gVWludDhBcnJheS5mcm9tKGhleFN0cmluZy5tYXRjaCgvLnsxLDJ9L2cpLm1hcCgoYnl0ZSkgPT4gcGFyc2VJbnQoYnl0ZSwgMTYpKSlcbn1cblxuZnVuY3Rpb24gaXBJc1ByaXZhdGVPckxvY2FsaG9zdCAoaXApIHtcbiAgaWYgKGlwLnN1YnN0cmluZygwLCA3KSA9PT0gXCI6OmZmZmY6XCIpIHsgaXAgPSBpcC5zdWJzdHJpbmcoNykgfVxuXG4gIGlmIChuZXQuaXNJUHY0KGlwKSkge1xuICAgIC8vIGNoZWNrIGxvY2FsaG9zdFxuICAgIGlmIChpcCA9PT0gXCIxMjcuMC4wLjFcIikgeyByZXR1cm4gdHJ1ZSB9XG5cbiAgICAvLyAgICAgICAgIDEwLjAuMC4wIC0gMTAuMjU1LjI1NS4yNTUgICAgICAgIHx8ICAgMTcyLjE2LjAuMCAtIDE3Mi4zMS4yNTUuMjU1ICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAgICAxOTIuMTY4LjAuMCAtIDE5Mi4xNjguMjU1LjI1NVxuICAgIHJldHVybiAvXigxMClcXC4oLiopXFwuKC4qKVxcLiguKikkLy50ZXN0KGlwKSB8fCAvXigxNzIpXFwuKDFbNi05XXwyWzAtOV18M1swLTFdKVxcLiguKilcXC4oLiopJC8udGVzdChpcCkgfHwgL14oMTkyKVxcLigxNjgpXFwuKC4qKVxcLiguKikkLy50ZXN0KGlwKVxuICB9XG5cbiAgLy8gZWxzZTogaXAgaXMgSVB2NlxuICBjb25zdCBmaXJzdFdvcmQgPSBpcC5zcGxpdChcIjpcIikuZmluZChlbCA9PiAhIWVsKSAvLyBnZXQgZmlyc3Qgbm90IGVtcHR5IHdvcmRcblxuICAvLyBlcXVpdmFsZW50IG9mIDEyNy4wLjAuMSBpbiBJUHY2XG4gIGlmIChpcCA9PT0gXCI6OjFcIikgcmV0dXJuIHRydWVcblxuICAvLyBUaGUgb3JpZ2luYWwgSVB2NiBTaXRlIExvY2FsIGFkZHJlc3NlcyAoZmVjMDo6LzEwKSBhcmUgZGVwcmVjYXRlZC4gUmFuZ2U6IGZlYzAgLSBmZWZmXG4gIGVsc2UgaWYgKC9eZmVbYy1mXVswLWZdJC8udGVzdChmaXJzdFdvcmQpKSByZXR1cm4gdHJ1ZVxuXG4gIC8vIFRoZXNlIGRheXMgVW5pcXVlIExvY2FsIEFkZHJlc3NlcyAoVUxBKSBhcmUgdXNlZCBpbiBwbGFjZSBvZiBTaXRlIExvY2FsLlxuICAvLyBSYW5nZTogZmMwMCAtIGZjZmZcbiAgZWxzZSBpZiAoL15mY1swLWZdezJ9JC8udGVzdChmaXJzdFdvcmQpKSByZXR1cm4gdHJ1ZVxuXG4gIC8vIFJhbmdlOiBmZDAwIC0gZmNmZlxuICBlbHNlIGlmICgvXmZkWzAtZl17Mn0kLy50ZXN0KGZpcnN0V29yZCkpIHJldHVybiB0cnVlXG5cbiAgLy8gTGluayBsb2NhbCBhZGRyZXNzZXMgKHByZWZpeGVkIHdpdGggZmU4MCkgYXJlIG5vdCByb3V0YWJsZVxuICBlbHNlIGlmIChmaXJzdFdvcmQgPT09IFwiZmU4MFwiKSByZXR1cm4gdHJ1ZVxuXG4gIC8vIERpc2NhcmQgUHJlZml4XG4gIGVsc2UgaWYgKGZpcnN0V29yZCA9PT0gXCIxMDBcIikgcmV0dXJuIHRydWVcblxuICAvLyBBbnkgb3RoZXIgSVAgYWRkcmVzcyBpcyBub3QgVW5pcXVlIExvY2FsIEFkZHJlc3MgKFVMQSlcbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIGlzSGV4U3RyaW5nT2ZMZW5ndGggKHN0ciwgbGVuZ3RoKSB7XG4gIHJldHVybiAoaXNIZXhTdHJpbmcoc3RyKSAmJlxuICAgICAgICAoXG4gICAgICAgICAgKHN0ci5zdGFydHNXaXRoKFwiMHhcIikgJiYgc3RyLnNsaWNlKDIpLmxlbmd0aCA9PT0gbGVuZ3RoICogMikgfHxcbiAgICAgICAgICAgIHN0ci5sZW5ndGggPT09IGxlbmd0aCAqIDJcbiAgICAgICAgKVxuICApIHx8IGlzV2lsZGNhcmQoc3RyKVxufVxuXG5mdW5jdGlvbiBpc0hleFN0cmluZyAoc3RyKSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAoXG4gICAgICAgICAgKHN0ci5zdGFydHNXaXRoKFwiMHhcIikgJiYgL15bYS1mQS1GMC05XSskL2kudGVzdChzdHIuc2xpY2UoMikpKSB8fFxuICAgICAgICAgICAgL15bYS1mQS1GMC05XSskL2kudGVzdChzdHIpXG4gICAgICAgIClcbiAgKSB8fCBpc1dpbGRjYXJkKHN0cilcbn1cblxuZnVuY3Rpb24gdG9IZXhTdHJpbmcgKGJ1ZmZlciwgcHJlZml4MHggPSBmYWxzZSkge1xuICBpZiAoYnVmZmVyIGluc3RhbmNlb2YgVWludDhBcnJheSkgYnVmZmVyID0gQnVmZmVyLmZyb20oYnVmZmVyKVxuICByZXR1cm4gKHByZWZpeDB4ID8gXCIweFwiIDogXCJcIikgKyBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoYnVmZmVyLCB4ID0+IChcIjAwXCIgKyB4LnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpKVxuICAgIC5qb2luKFwiXCIpXG4gICAgLm1hdGNoKC9bYS1mQS1GMC05XXsyfS9nKVxuICAgIC5qb2luKFwiXCIpXG59XG5cbmZ1bmN0aW9uIHBhcnNlVVJMICh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHVybClcbiAgICByZXR1cm4gW1xuICAgICAgcGFyc2VkVXJsLnByb3RvY29sICsgXCIvL1wiLFxuICAgICAgcGFyc2VkVXJsLmhvc3QsXG4gICAgICBwYXJzZWRVcmwucGF0aG5hbWUuc2xpY2UoMSksXG4gICAgICBwYXJzZWRVcmwuc2VhcmNoLnNsaWNlKDEpLFxuICAgIF1cbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBVUkwgd2FzIHByb3ZpZGVkOiAke3VybH1gKVxuICB9XG59XG5cbmZ1bmN0aW9uIHNob3dVc2FnZSAoY21kLCBtb2R1bGUpIHtcbiAgc2hvd1VzYWdlSGVhZGxpbmUoY21kKVxuICBzaG93VXNhZ2VPcHRpb25zKHsgLi4ubW9kdWxlPy5mbGFncyB9KVxuICBzaG93VXNhZ2VGbGFncyh7IC4uLm1vZHVsZT8uZmxhZ3MgfSlcbiAgc2hvd1VzYWdlUm91dGVyKHsgLi4ubW9kdWxlPy5yb3V0ZXIgfSlcbiAgc2hvd1VzYWdlRW52YXJzKHsgLi4ubW9kdWxlPy5lbnZhcnMgfSlcbn1cblxuZnVuY3Rpb24gc2hvd1VzYWdlUm91dGVyIChyb3V0ZXIpIHtcbiAgY29uc3QgY21kcyA9IE9iamVjdC5lbnRyaWVzKHJvdXRlcilcbiAgaWYgKGNtZHMubGVuZ3RoID4gMCkge1xuICAgIGNvbnNvbGUuaW5mbyhcIlxcblNVQkNPTU1BTkRTOlwiKVxuICAgIGNvbnN0IG1heExlbmd0aCA9IE1hdGgubWF4KC4uLmNtZHMubWFwKChbY21kXSkgPT4gY21kLmxlbmd0aCkpXG4gICAgY21kcy5mb3JFYWNoKGNtZCA9PiB7XG4gICAgICBjb25zb2xlLmluZm8oXCIgIFwiLCBgJHtjbWRbMF19JHtcIiBcIi5yZXBlYXQobWF4TGVuZ3RoIC0gY21kWzBdLmxlbmd0aCl9YCwgXCIgIFwiLCBjbWRbMV0uaGludClcbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIHNob3dVc2FnZUVycm9yIChjbWQsIHN1YmNtZCwgbW9kdWxlLCBlcnJvciwgZmxhZ3MpIHtcbiAgc2hvd1VzYWdlU3ViY29tbWFuZChjbWQsIHN1YmNtZCwgbW9kdWxlLCBlcnJvcilcbiAgaWYgKGVycm9yKSB7XG4gICAgY29uc29sZS5pbmZvKFwiXFxuRVJST1I6XCIpXG4gICAgaWYgKGZsYWdzPy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcj8uc3RhY2s/LnNwbGl0KFwiXFxuXCIpWzBdIHx8IGVycm9yKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzaG93VXNhZ2VFbnZhcnMgKGVudmFycykge1xuICBpZiAoZW52YXJzKSB7XG4gICAgZW52YXJzID0gT2JqZWN0LmVudHJpZXMoZW52YXJzKVxuICAgIGlmIChlbnZhcnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5pbmZvKFwiXFxuRU5WQVJTOlwiKVxuICAgICAgY29uc3QgbWF4V2lkdGggPSBNYXRoLm1heCguLi5lbnZhcnMubWFwKChbZW52YXJdKSA9PiBlbnZhci5sZW5ndGgpKVxuICAgICAgZW52YXJzLmZvckVhY2goKFtlbnZhciwgaGludF0pID0+IHtcbiAgICAgICAgaWYgKGVudmFyLnRvVXBwZXJDYXNlKCkuaW5kZXhPZihcIktFWVwiKSA8IDAgJiYgcHJvY2Vzcy5lbnZbZW52YXJdKSB7XG4gICAgICAgICAgY29uc29sZS5pbmZvKFwiICBcIiwgYCR7eWVsbG93KGVudmFyLnRvVXBwZXJDYXNlKCkpfSR7XCIgXCIucmVwZWF0KG1heFdpZHRoIC0gZW52YXIubGVuZ3RoKX1gLCBgID0+IFNldHRsZWQgdG8gXCIke215ZWxsb3cocHJvY2Vzcy5lbnZbZW52YXJdKX1cImApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5pbmZvKFwiICBcIiwgYCR7eWVsbG93KGVudmFyLnRvVXBwZXJDYXNlKCkpfSR7XCIgXCIucmVwZWF0KG1heFdpZHRoIC0gZW52YXIubGVuZ3RoKX1gLCBgICR7aGludH1gKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzaG93VXNhZ2VGbGFncyAoZmxhZ3MpIHtcbiAgaWYgKGZsYWdzKSB7XG4gICAgZmxhZ3MgPSBPYmplY3QuZW50cmllcyhmbGFncykuZmlsdGVyKChbLCBmbGFnXSkgPT4gIWZsYWc/LnBhcmFtKS5zb3J0KChbYV0sIFtiXSkgPT4ge1xuICAgICAgaWYgKGEgPCBiKSByZXR1cm4gLTFcbiAgICAgIGVsc2UgaWYgKGEgPiBiKSByZXR1cm4gMVxuICAgICAgZWxzZSByZXR1cm4gMFxuICAgIH0pXG4gICAgaWYgKGZsYWdzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnNvbGUuaW5mbyhcIlxcbkZMQUdTOlwiKVxuICAgICAgY29uc3QgbWF4TGVuZ3RoID0gTWF0aC5tYXgoLi4uZmxhZ3MuZmlsdGVyKChbLCB7IGhpbnQgfV0pID0+IGhpbnQpLm1hcCgoW2tleSwgeyBwYXJhbSB9XSkgPT4gcGFyYW0gPyBrZXkubGVuZ3RoICsgcGFyYW0ubGVuZ3RoICsgMyA6IGtleS5sZW5ndGgpKVxuICAgICAgZmxhZ3MuZm9yRWFjaChmbGFnID0+IHtcbiAgICAgICAgY29uc3Qgc3RyID0gYCR7ZmxhZ1swXX0ke2ZsYWdbMV0ucGFyYW0gPyBncmF5KGAgPCR7ZmxhZ1sxXS5wYXJhbX0+YCkgOiBcIlwifWBcbiAgICAgICAgaWYgKGZsYWdbMV0uaGludCkge1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhcIiAgXCIsIGAtLSR7c3RyfSR7XCIgXCIucmVwZWF0KG1heExlbmd0aCAtIGNvbG9yc3RyaXAoc3RyKS5sZW5ndGgpfWAsIFwiICBcIiwgZmxhZ1sxXS5oaW50KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzaG93VXNhZ2VIZWFkbGluZSAoY21kLCBzdWJjbWQsIG1vZHVsZSkge1xuICBjb25zb2xlLmluZm8oXCJVU0FHRTpcIilcbiAgaWYgKHN1YmNtZCkge1xuICAgIGxldCBwYXJhbXMgPSBtb2R1bGUucm91dGVyW3N1YmNtZF0/LnBhcmFtc1xuICAgIC8vIGNvbnN0IG9wdGlvbnMgPSBtb2R1bGUucm91dGVyW3N1YmNtZF0/Lm9wdGlvbnNcbiAgICBpZiAocGFyYW1zKSB7XG4gICAgICBjb25zdCBvcHRpb25hbGl6ZSA9IChzdHIpID0+IHN0ci5lbmRzV2l0aChcIiAuLi5dXCIpXG4gICAgICAgID8gYFs8JHtzdHIuc2xpY2UoMSwgLTUpfT4gLi4uXWBcbiAgICAgICAgOiAoXG4gICAgICAgICAgc3RyWzBdID09PSBcIltcIiA/IGBbPCR7c3RyLnNsaWNlKDEsIC0xKX0+XWAgOiBgPCR7c3RyfT5gXG4gICAgICAgIClcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtcykpIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLm1hcChwYXJhbSA9PiBvcHRpb25hbGl6ZShwYXJhbSkpLmpvaW4oXCIgXCIpICsgXCIgXCJcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcmFtcyA9IG9wdGlvbmFsaXplKHBhcmFtcylcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc29sZS5pbmZvKGAgICAke3doaXRlKGBucHggd2l0bmV0ICR7Y21kfWApfSAke3doaXRlKHN1YmNtZCl9ICR7cGFyYW1zID8gZ3JlZW4ocGFyYW1zKSArIFwiIFwiIDogXCJcIn1bT1BUSU9OU10gW0ZMQUdTXWApXG4gICAgaWYgKG1vZHVsZT8ucm91dGVyW3N1YmNtZF0/LmhpbnQpIHtcbiAgICAgIGNvbnNvbGUuaW5mbyhcIlxcbkRFU0NSSVBUSU9OOlwiKVxuICAgICAgY29uc29sZS5pbmZvKGAgICAke21vZHVsZS5yb3V0ZXJbc3ViY21kXS5oaW50fWApXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUuaW5mbyhgICAgJHt3aGl0ZShgbnB4IHdpdG5ldCAke2NtZH1gKX0gPFNVQkNPTU1BTkQ+IC4uLiBbT1BUSU9OU10gW0ZMQUdTXWApXG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvd1VzYWdlT3B0aW9ucyAob3B0aW9ucykge1xuICBvcHRpb25zID0gT2JqZWN0LmVudHJpZXMob3B0aW9ucykuZmlsdGVyKChbLCBvcHRpb25dKSA9PiBvcHRpb24/LnBhcmFtKS5zb3J0KChbYV0sIFtiXSkgPT4ge1xuICAgIGlmIChhIDwgYikgcmV0dXJuIC0xXG4gICAgZWxzZSBpZiAoYSA+IGIpIHJldHVybiAxXG4gICAgZWxzZSByZXR1cm4gMFxuICB9KVxuICBpZiAob3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5pbmZvKFwiXFxuT1BUSU9OUzpcIilcbiAgICBjb25zdCBtYXhMZW5ndGggPSBvcHRpb25zXG4gICAgICAubWFwKG9wdGlvbiA9PiBvcHRpb25bMV0ucGFyYW0gPyBvcHRpb25bMV0ucGFyYW0ubGVuZ3RoICsgb3B0aW9uWzBdLmxlbmd0aCArIDMgOiBvcHRpb25bMF0ubGVuZ3RoKVxuICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gY3VyciA+IHByZXYgPyBjdXJyIDogcHJldilcbiAgICBvcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgIGlmIChvcHRpb25bMV0uaGludCkge1xuICAgICAgICBjb25zdCBzdHIgPSBgJHtvcHRpb25bMF19JHtvcHRpb25bMV0ucGFyYW0gPyBncmF5KGAgPCR7b3B0aW9uWzFdLnBhcmFtfT5gKSA6IFwiXCJ9YFxuICAgICAgICBjb25zb2xlLmluZm8oXCIgIFwiLCBgLS0ke3N0cn0ke1wiIFwiLnJlcGVhdChtYXhMZW5ndGggLSBjb2xvcnN0cmlwKHN0cikubGVuZ3RoKX1gLCBcIiAgXCIsIG9wdGlvblsxXS5oaW50KVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gc2hvd1VzYWdlU3ViY29tbWFuZCAoY21kLCBzdWJjbWQsIG1vZHVsZSkge1xuICBzaG93VXNhZ2VIZWFkbGluZShjbWQsIHN1YmNtZCwgbW9kdWxlKVxuICBzaG93VXNhZ2VPcHRpb25zKHsgLi4ubW9kdWxlPy5mbGFncywgLi4ubW9kdWxlLnJvdXRlcltzdWJjbWRdPy5vcHRpb25zIH0pXG4gIHNob3dVc2FnZUZsYWdzKHsgLi4ubW9kdWxlPy5mbGFncywgLi4ubW9kdWxlLnJvdXRlcltzdWJjbWRdPy5vcHRpb25zIH0pXG4gIHNob3dVc2FnZUVudmFycyhtb2R1bGUucm91dGVyW3N1YmNtZF0/LmVudmFycyB8fCBtb2R1bGU/LmVudmFycylcbn1cblxuZnVuY3Rpb24gc2hvd1ZlcnNpb24gKCkge1xuICBjb25zb2xlLmluZm8oYCR7bWN5YW4oYFdpdG5ldCBTREsgdiR7cmVxdWlyZShcIi4uLy4uL3BhY2thZ2UuanNvblwiKS52ZXJzaW9ufWApfWApXG59XG5cbmZ1bmN0aW9uIGdldFdpbGRjYXJkc0NvdW50RnJvbVN0cmluZyAoc3RyKSB7XG4gIGxldCBtYXhBcmdzSW5kZXggPSAwXG4gIGlmIChzdHIgJiYgdHlwZW9mIHN0ciA9PT0gJ3N0cmluZycpIHtcbiAgICBsZXQgbWF0Y2hcbiAgICBjb25zdCByZWdleHAgPSAvXFxcXFxcZFxcXFwvZ1xuICAgIHdoaWxlICgobWF0Y2ggPSByZWdleHAuZXhlYyhzdHIpKSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgYXJnc0luZGV4ID0gcGFyc2VJbnQobWF0Y2hbMF1bMV0pICsgMVxuICAgICAgaWYgKGFyZ3NJbmRleCA+IG1heEFyZ3NJbmRleCkgbWF4QXJnc0luZGV4ID0gYXJnc0luZGV4XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXhBcmdzSW5kZXhcbn1cblxuZnVuY3Rpb24gY2hlY2tScGNXaWxkY2FyZHMgKHdpbGRjYXJkcykge1xuICBpZiAodHlwZW9mIHdpbGRjYXJkcyA9PT0gXCJvYmplY3RcIikge1xuICAgIE9iamVjdC52YWx1ZXMod2lsZGNhcmRzKS5mb3JFYWNoKHdpbGRjYXJkID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHdpbGRjYXJkKSkgd2lsZGNhcmQuZm9yRWFjaChpdGVtID0+IGNoZWNrUnBjV2lsZGNhcmRzKGl0ZW0pKVxuICAgICAgZWxzZSBjaGVja1JwY1dpbGRjYXJkcyh3aWxkY2FyZClcbiAgICB9KVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkod2lsZGNhcmRzKSkge1xuICAgIHdpbGRjYXJkcy5mb3JFYWNoKHdpbGRjYXJkID0+IGNoZWNrUnBjV2lsZGNhcmRzKHdpbGRjYXJkKSlcbiAgfSBlbHNlIGlmICh0eXBlb2Ygd2lsZGNhcmRzID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKGlzV2lsZGNhcmQod2lsZGNhcmRzKSkge1xuICAgICAgY29uc3QgY2hhciA9IHdpbGRjYXJkcy5jaGFyQXQoMSlcbiAgICAgIGlmIChjaGFyIDwgXCIxXCIgfHwgY2hhciA+IFwiOVwiKSB7XG4gICAgICAgIHRocm93IEVycm9yKFwiUlBDOiB3aWxkY2FyZHMgbm90IGluIHJhbmdlIFsxIC4uIDldXCIpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGlzV2lsZGNhcmQgKHN0cikge1xuICByZXR1cm4gc3RyLmxlbmd0aCA9PT0gMyAmJiAvXFxcXFxcZFxcXFwvZy50ZXN0KHN0cilcbn1cblxuZnVuY3Rpb24gcmVwbGFjZVdpbGRjYXJkcyAob2JqLCBhcmdzKSB7XG4gIGlmIChhcmdzLmxlbmd0aCA+IDEwKSBhcmdzID0gYXJncy5zbGljZSgwLCAxMClcbiAgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSB7XG4gICAgZm9yIChsZXQgYXJnSW5kZXggPSAwOyBhcmdJbmRleCA8IGFyZ3MubGVuZ3RoOyBhcmdJbmRleCsrKSB7XG4gICAgICBjb25zdCB3aWxkY2FyZCA9IGBcXFxcJHthcmdJbmRleH1cXFxcYFxuICAgICAgb2JqID0gb2JqLnJlcGxhY2VBbGwod2lsZGNhcmQsIGFyZ3NbYXJnSW5kZXhdKVxuICAgIH1cbiAgfSBlbHNlIGlmIChvYmogJiYgQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgb2JqID0gb2JqLm1hcCh2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gcmVwbGFjZVdpbGRjYXJkcyh2YWx1ZSwgYXJncylcbiAgICAgIDogdmFsdWVcbiAgICApXG4gIH1cbiAgcmV0dXJuIG9ialxufVxuXG5mdW5jdGlvbiBzcGxpY2VXaWxkY2FyZCAob2JqLCBhcmdJbmRleCwgYXJnVmFsdWUsIGFyZ3NDb3VudCkge1xuICBpZiAob2JqICYmIHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCB3aWxkY2FyZCA9IGBcXFxcJHthcmdJbmRleH1cXFxcYFxuICAgIG9iaiA9IG9iai5yZXBsYWNlQWxsKHdpbGRjYXJkLCBhcmdWYWx1ZSlcbiAgICBmb3IgKGxldCBqID0gYXJnSW5kZXggKyAxOyBqIDwgYXJnc0NvdW50OyBqKyspIHtcbiAgICAgIG9iaiA9IG9iai5yZXBsYWNlQWxsKGBcXFxcJHtqfVxcXFxgLCBgXFxcXCR7aiAtIDF9XFxcXGApXG4gICAgfVxuICB9IGVsc2UgaWYgKG9iaiAmJiBBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICBvYmogPSBvYmoubWFwKHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgPyBzcGxpY2VXaWxkY2FyZCh2YWx1ZSwgYXJnSW5kZXgsIGFyZ1ZhbHVlLCBhcmdzQ291bnQpXG4gICAgICA6IHZhbHVlXG4gICAgKVxuICB9XG4gIHJldHVybiBvYmpcbn1cblxuYXN5bmMgZnVuY3Rpb24gdG9vbGtpdFJ1biAoc2V0dGluZ3MsIGFyZ3MpIHtcbiAgY29uc3QgY21kID0gYCR7c2V0dGluZ3MucGF0aHMudG9vbGtpdEJpblBhdGh9ICR7YXJncy5qb2luKFwiIFwiKX1gXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgZXhlYyhjbWQsIHsgbWF4QnVmZmVyOiAxMDI0ICogMTAyNCAqIDEwIH0sIChlcnJvciwgc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICB9XG4gICAgICBpZiAoc3RkZXJyKSB7XG4gICAgICAgIHJlamVjdChzdGRlcnIpXG4gICAgICB9XG4gICAgICByZXNvbHZlKHN0ZG91dClcbiAgICB9KVxuICB9KVxufVxuXG5mdW5jdGlvbiB0b1VwcGVyQ2FtZWxDYXNlIChzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXGIoXFx3KS9nLCBmdW5jdGlvbiAobWF0Y2gsIGNhcHR1cmUpIHtcbiAgICByZXR1cm4gY2FwdHVyZS50b1VwcGVyQ2FzZSgpXG4gIH0pLnJlcGxhY2UoL1xccysvZywgXCJcIilcbn1cblxuZnVuY3Rpb24gdG9VdGYxNkJ5dGVzKHN0cikge1xuICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KHN0ci5sZW5ndGggKiAyKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgYnl0ZXNbaSAqIDJdID0gY29kZSA+PiA4O1xuICAgIGJ5dGVzW2kgKiAyICsgMV0gPSBjb2RlICYgMHhmZjtcbiAgfVxuICByZXR1cm4gYnl0ZXM7XG59XG5cbmZ1bmN0aW9uIHRvVXRmOEFycmF5IChzdHIpIHtcbiAgY29uc3QgdXRmOCA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGNoYXJjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSlcbiAgICBpZiAoY2hhcmNvZGUgPCAweDgwKSB1dGY4LnB1c2goY2hhcmNvZGUpXG4gICAgZWxzZSBpZiAoY2hhcmNvZGUgPCAweDgwMCkge1xuICAgICAgdXRmOC5wdXNoKDB4YzAgfCAoY2hhcmNvZGUgPj4gNiksXG4gICAgICAgIDB4ODAgfCAoY2hhcmNvZGUgJiAweDNmKSlcbiAgICB9IGVsc2UgaWYgKGNoYXJjb2RlIDwgMHhkODAwIHx8IGNoYXJjb2RlID49IDB4ZTAwMCkge1xuICAgICAgdXRmOC5wdXNoKDB4ZTAgfCAoY2hhcmNvZGUgPj4gMTIpLFxuICAgICAgICAweDgwIHwgKChjaGFyY29kZSA+PiA2KSAmIDB4M2YpLFxuICAgICAgICAweDgwIHwgKGNoYXJjb2RlICYgMHgzZikpXG4gICAgfSBlbHNlIHsgLy8gc3Vycm9nYXRlIHBhaXJcbiAgICAgIGkrK1xuICAgICAgLy8gVVRGLTE2IGVuY29kZXMgMHgxMDAwMC0weDEwRkZGRiBieVxuICAgICAgLy8gc3VidHJhY3RpbmcgMHgxMDAwMCBhbmQgc3BsaXR0aW5nIHRoZVxuICAgICAgLy8gMjAgYml0cyBvZiAweDAtMHhGRkZGRiBpbnRvIHR3byBoYWx2ZXNcbiAgICAgIGNoYXJjb2RlID0gMHgxMDAwMCArICgoKGNoYXJjb2RlICYgMHgzZmYpIDw8IDEwKSB8XG4gICAgICAgICAgICAgICAgKHN0ci5jaGFyQ29kZUF0KGkpICYgMHgzZmYpKVxuICAgICAgdXRmOC5wdXNoKDB4ZjAgfCAoY2hhcmNvZGUgPj4gMTgpLFxuICAgICAgICAweDgwIHwgKChjaGFyY29kZSA+PiAxMikgJiAweDNmKSxcbiAgICAgICAgMHg4MCB8ICgoY2hhcmNvZGUgPj4gNikgJiAweDNmKSxcbiAgICAgICAgMHg4MCB8IChjaGFyY29kZSAmIDB4M2YpKVxuICAgIH1cbiAgfVxuICByZXR1cm4gdXRmOFxufVxuXG5mdW5jdGlvbiB1dGY4QXJyYXlUb1N0ciAoYXJyYXkpIHtcbiAgY29uc3QgbGVuID0gYXJyYXkubGVuZ3RoXG4gIGxldCBvdXQgPSBcIlwiOyBsZXQgaSA9IDA7IGxldCBjXG4gIGxldCBjaGFyMiwgY2hhcjNcbiAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICBjID0gYXJyYXlbaSsrXVxuICAgIHN3aXRjaCAoYyA+PiA0KSB7XG4gICAgICBjYXNlIDA6IGNhc2UgMTogY2FzZSAyOiBjYXNlIDM6IGNhc2UgNDogY2FzZSA1OiBjYXNlIDY6IGNhc2UgNzpcbiAgICAgICAgLy8gMHh4eHh4eHhcbiAgICAgICAgb3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYylcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgMTI6IGNhc2UgMTM6XG4gICAgICAgIC8vIDExMHggeHh4eCAgIDEweHggeHh4eFxuICAgICAgICBjaGFyMiA9IGFycmF5W2krK11cbiAgICAgICAgb3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKChjICYgMHgxRikgPDwgNikgfCAoY2hhcjIgJiAweDNGKSlcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgMTQ6XG4gICAgICAgIC8vIDExMTAgeHh4eCAgMTB4eCB4eHh4ICAxMHh4IHh4eHhcbiAgICAgICAgY2hhcjIgPSBhcnJheVtpKytdXG4gICAgICAgIGNoYXIzID0gYXJyYXlbaSsrXVxuICAgICAgICBvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAweDBGKSA8PCAxMikgfFxuICAgICAgICAgICAgICAgICAgICAoKGNoYXIyICYgMHgzRikgPDwgNikgfFxuICAgICAgICAgICAgICAgICAgICAoKGNoYXIzICYgMHgzRikgPDwgMCkpXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG4gIHJldHVybiBvdXRcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvbXB0IChxdWVzdGlvbikge1xuICBjb25zdCByZWFkbGluZUludGVyZmFjZSA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7XG4gICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG4gICAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dCxcbiAgfSlcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICByZWFkbGluZUludGVyZmFjZS5xdWVzdGlvbihgJHtxdWVzdGlvbn0gYCwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICByZWFkbGluZUludGVyZmFjZS5jbG9zZSgpXG4gICAgICByZXNvbHZlKHJlc3BvbnNlLnRyaW0oKSlcbiAgICB9KVxuICB9KVxufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9tcHRlciAocHJvbWlzZSkge1xuICBjb25zdCBsb2FkaW5nID0gKCgpID0+IHtcbiAgICBjb25zdCBoID0gW1wifFwiLCBcIi9cIiwgXCItXCIsIFwiXFxcXFwiXVxuICAgIGxldCBpID0gMFxuICAgIHJldHVybiBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpID0gKGkgPiAzKSA/IDAgOiBpXG4gICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgXFxiXFxiJHtoW2ldfSBgKVxuICAgICAgaSsrXG4gICAgfSwgNTApXG4gIH0pKClcbiAgcmV0dXJuIHByb21pc2VcbiAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgY2xlYXJJbnRlcnZhbChsb2FkaW5nKVxuICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoXCJcXGJcXGJcIilcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9KVxufVxuXG5mdW5jdGlvbiB0cmFjZUNoZWNrbGlzdHMgKGNoZWNrbGlzdHMpIHtcbiAgaWYgKGNoZWNrbGlzdHMgJiYgT2JqZWN0LmtleXMoY2hlY2tsaXN0cykubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGhlYWRsaW5lcyA9IFtcIk5PREVTXCIsIC4uLk9iamVjdC5rZXlzKGNoZWNrbGlzdHMpLm1hcChrZXkgPT4gYDoke2tleX1gKV1cbiAgICBjaGVja2xpc3RzID0gT2JqZWN0LnZhbHVlcyhjaGVja2xpc3RzKVxuICAgIGNvbnN0IHVybHMgPSBPYmplY3Qua2V5cyhjaGVja2xpc3RzWzBdKVxuICAgIGNvbnN0IHJlY29yZHMgPSB1cmxzLm1hcCh1cmwgPT4ge1xuICAgICAgY29uc3QgZXJyb3JzID0gY2hlY2tsaXN0cy5maWx0ZXIoY2hlY2tsaXN0ID0+IGNoZWNrbGlzdFt1cmxdIGluc3RhbmNlb2YgRXJyb3IpLmxlbmd0aFxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgZXJyb3JzID09PSBjaGVja2xpc3RzLmxlbmd0aCA/IHJlZCh1cmwpIDogKGVycm9ycyA+IDAgPyBteWVsbG93KHVybCkgOiBtY3lhbih1cmwpKSxcbiAgICAgICAgLi4uY2hlY2tsaXN0cy5tYXAoY2hlY2tsaXN0ID0+IGNoZWNrbGlzdFt1cmxdIGluc3RhbmNlb2YgRXJyb3JcbiAgICAgICAgICA/IHJlZChjaGVja2xpc3RbdXJsXSlcbiAgICAgICAgICA6IChjaGVja2xpc3RbdXJsXSA9PT0gdHJ1ZSA/IGxjeWFuKFwiQXllXCIpIDogY3lhbihcIk5heVwiKSlcbiAgICAgICAgKSxcbiAgICAgIF1cbiAgICB9KVxuICAgIHRyYWNlVGFibGUocmVjb3Jkcywge1xuICAgICAgaGVhZGxpbmVzLFxuICAgICAgbWF4Q29sdW1uV2lkdGg6IDMxLFxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhY2VIZWFkZXIgKGhlYWRsaW5lLCBjb2xvciA9IG5vcm1hbCwgaW5kZW50ID0gXCJcIiwpIHtcbiAgY29uc29sZS5pbmZvKGAke2luZGVudH3ilIzilIAke1wi4pSAXCIucmVwZWF0KGhlYWRsaW5lLmxlbmd0aCl94pSA4pSQYClcbiAgY29uc29sZS5pbmZvKGAke2luZGVudH3ilIIgJHtjb2xvcihoZWFkbGluZSl9IOKUgmApXG4gIGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkbGluZS5sZW5ndGgpfeKUgOKUmGApXG59XG5cbmZ1bmN0aW9uIHRyYWNlVGFibGUgKHJlY29yZHMsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc3RyaW5naWZ5ID0gKGRhdGEsIGh1bWFuaXplcnMsIGluZGV4KSA9PiBodW1hbml6ZXJzICYmIGh1bWFuaXplcnNbaW5kZXhdID8gaHVtYW5pemVyc1tpbmRleF0oZGF0YSkudG9TdHJpbmcoKSA6IGRhdGE/LnRvU3RyaW5nKCkgPz8gXCJcIlxuICBjb25zdCBtYXggPSAoYSwgYikgPT4gYSA+IGIgPyBhIDogYlxuICBjb25zdCByZWR1Y2VNYXggPSAobnVtYmVycykgPT4gbnVtYmVycy5yZWR1Y2UoKGN1cnIsIHByZXYpID0+IHByZXYgPiBjdXJyID8gcHJldiA6IGN1cnIsIDApXG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9XG4gIGNvbnN0IGluZGVudCA9IG9wdGlvbnM/LmluZGVudCB8fCBcIlwiXG4gIGNvbnN0IG51bUNvbHVtbnMgPSByZWR1Y2VNYXgocmVjb3Jkcy5tYXAocmVjb3JkID0+IHJlY29yZD8ubGVuZ3RoIHx8IDEpKVxuICBjb25zdCBtYXhDb2x1bW5XaWR0aCA9IG9wdGlvbnM/Lm1heENvbHVtbldpZHRoIHx8IDgwXG4gIGNvbnN0IHRhYmxlID0gdHJhbnNwb3NlKHJlY29yZHMsIG51bUNvbHVtbnMpXG4gIG9wdGlvbnMud2lkdGhzID0gb3B0aW9ucz8ud2lkdGhzIHx8IHRhYmxlLm1hcCgoY29sdW1uLCBpbmRleCkgPT4ge1xuICAgIGxldCBtYXhXaWR0aCA9IHJlZHVjZU1heChjb2x1bW4ubWFwKGZpZWxkID0+IGNvbG9yc3RyaXAoc3RyaW5naWZ5KGZpZWxkLCBvcHRpb25zPy5odW1hbml6ZXJzLCBpbmRleCkpLmxlbmd0aCkpXG4gICAgaWYgKG9wdGlvbnM/LmhlYWRsaW5lcyAmJiBvcHRpb25zLmhlYWRsaW5lc1tpbmRleF0pIHtcbiAgICAgIG1heFdpZHRoID0gbWF4KG1heFdpZHRoLCBjb2xvcnN0cmlwKG9wdGlvbnMuaGVhZGxpbmVzW2luZGV4XS5yZXBsYWNlQWxsKFwiOlwiLCBcIlwiKSkubGVuZ3RoKVxuICAgIH1cbiAgICByZXR1cm4gTWF0aC5taW4obWF4V2lkdGgsIG1heENvbHVtbldpZHRoKVxuICB9KVxuICBsZXQgaGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAobWF4V2lkdGggPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKVxuICBjb25zb2xlLmluZm8oYCR7aW5kZW50feKUjOKUgCR7aGVhZGxpbmUuam9pbihcIuKUgOKUrOKUgFwiKX3ilIDilJBgKVxuICBpZiAob3B0aW9ucz8uaGVhZGxpbmVzKSB7XG4gICAgaGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY2FwdGlvbiA9IG9wdGlvbnMuaGVhZGxpbmVzW2luZGV4XS5yZXBsYWNlQWxsKFwiOlwiLCBcIlwiKVxuICAgICAgY29uc3QgY2FwdGlvbkxlbmd0aCA9IGNvbG9yc3RyaXAoY2FwdGlvbikubGVuZ3RoXG4gICAgICByZXR1cm4gYCR7d2hpdGUoY2FwdGlvbil9JHtcIiBcIi5yZXBlYXQobWF4V2lkdGggLSBjYXB0aW9uTGVuZ3RoKX1gXG4gICAgfSlcbiAgICBjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2hlYWRsaW5lLmpvaW4oXCIg4pSCIFwiKX0g4pSCYClcbiAgICBoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcChtYXhXaWR0aCA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpXG4gICAgY29uc29sZS5pbmZvKGAke2luZGVudH3ilJzilIAke2hlYWRsaW5lLmpvaW4oXCLilIDilLzilIBcIil94pSA4pSkYClcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgbGluZSA9IFwiXCJcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG51bUNvbHVtbnM7IGorKykge1xuICAgICAgbGV0IGRhdGEgPSB0YWJsZVtqXVtpXVxuICAgICAgbGV0IGNvbG9yXG4gICAgICBpZiAob3B0aW9ucz8uY29sb3JzICYmIG9wdGlvbnMuY29sb3JzW2pdKSB7XG4gICAgICAgIGNvbG9yID0gb3B0aW9ucy5jb2xvcnNbal1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbG9yID0gdHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IGdyZWVuXG4gICAgICAgICAgOiAoTnVtYmVyKGRhdGEpID09PSBkYXRhICYmIGRhdGEgJSAxICE9PSAwIC8vIGlzIGZsb2F0IG51bWJlcj9cbiAgICAgICAgICAgID8geWVsbG93XG4gICAgICAgICAgICA6ICh4KSA9PiB4XG4gICAgICAgICAgKVxuICAgICAgfVxuICAgICAgZGF0YSA9IHN0cmluZ2lmeShkYXRhLCBvcHRpb25zPy5odW1hbml6ZXJzLCBqKVxuICAgICAgaWYgKGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoID4gbWF4Q29sdW1uV2lkdGgpIHtcbiAgICAgICAgd2hpbGUgKGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoID4gbWF4Q29sdW1uV2lkdGggLSAzKSB7XG4gICAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoMCwgLTEpXG4gICAgICAgIH1cbiAgICAgICAgZGF0YSArPSBcIi4uLlwiXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhTGVuZ3RoID0gY29sb3JzdHJpcChkYXRhKS5sZW5ndGhcbiAgICAgIGlmIChvcHRpb25zPy5oZWFkbGluZXMgJiYgb3B0aW9ucy5oZWFkbGluZXNbal1bMF0gPT09IFwiOlwiKSB7XG4gICAgICAgIGRhdGEgPSBgJHtjb2xvcihkYXRhKX0ke1wiIFwiLnJlcGVhdChvcHRpb25zLndpZHRoc1tqXSAtIGRhdGFMZW5ndGgpfWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGEgPSBgJHtcIiBcIi5yZXBlYXQob3B0aW9ucy53aWR0aHNbal0gLSBkYXRhTGVuZ3RoKX0ke2NvbG9yKGRhdGEpfWBcbiAgICAgIH1cbiAgICAgIGxpbmUgKz0gYOKUgiAke2RhdGF9IGBcbiAgICB9XG4gICAgY29uc29sZS5pbmZvKGAke2luZGVudH0ke2xpbmV94pSCYClcbiAgfVxuICBoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcChtYXhXaWR0aCA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpXG4gIGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS04pSAXCIpfeKUgOKUmGApXG59XG5cbmZ1bmN0aW9uIHRyYW5zcG9zZSAocmVjb3JkcywgbnVtQ29sdW1ucykge1xuICBjb25zdCBjb2x1bW5zID0gW11cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG51bUNvbHVtbnM7IGluZGV4KyspIHtcbiAgICBjb2x1bW5zLnB1c2gocmVjb3Jkcy5tYXAocm93ID0+IHJvd1tpbmRleF0pKVxuICB9XG4gIHJldHVybiBjb2x1bW5zXG59XG5cbmZ1bmN0aW9uIHR4SnNvblJlcGxhY2VyIChrZXksIHZhbHVlKSB7XG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSBcImJ5dGVzXCI6XG4gICAgY2FzZSBcImRlclwiOlxuICAgICAgcmV0dXJuIHRvSGV4U3RyaW5nKHZhbHVlLCB0cnVlKVxuICAgIGNhc2UgXCJ0eFwiOlxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlLCB0eEpzb25SZXBsYWNlcilcbiAgICBjYXNlIFwiY2hhbmdlXCI6XG4gICAgY2FzZSBcImZlZXNcIjpcbiAgICBjYXNlIFwidmFsdWVcIjpcbiAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSkgLyAxMCAqKiA5XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB2YWx1ZVxuICB9XG59XG5cbmZ1bmN0aW9uIHR4UmVjZWlwdEpzb25SZXBsYWNlciAoa2V5LCB2YWx1ZSkge1xuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2UgXCJieXRlc1wiOlxuICAgIGNhc2UgXCJkZXJcIjpcbiAgICAgIHJldHVybiB0b0hleFN0cmluZyh2YWx1ZSwgdHJ1ZSlcbiAgICBjYXNlIFwidHhcIjpcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgdHhKc29uUmVwbGFjZXIpXG4gICAgY2FzZSBcImNoYW5nZVwiOlxuICAgIGNhc2UgXCJmZWVzXCI6XG4gICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICByZXR1cm4gcGFyc2VJbnQodmFsdWU/LnBlZHJvcykgLyAxMCAqKiA5XG4gICAgY2FzZSBcInRpbWVzdGFtcFwiOlxuICAgICAgcmV0dXJuIG1vbWVudC51bml4KHZhbHVlKS5mb3JtYXQoXCJNTU1NIERvIFlZWVksIGg6bW06c3MgYVwiKVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFjZVRyYW5zYWN0aW9uT25DaGVja3BvaW50IChyZWNlaXB0KSB7XG4gIGlmIChyZWNlaXB0Py5jb25maXJtYXRpb25zKSB7XG4gICAgY29uc29sZS5pbmZvKGAgPiBDaGVja3BvaW50ICMke2NvbW1hcyhyZWNlaXB0LmNvbmZpcm1hdGlvbnMpfS4uLmApXG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhY2VUcmFuc2FjdGlvbk9uU3RhdHVzQ2hhbmdlIChyZWNlaXB0KSB7XG4gIGNvbnN0IGNhcHRpb25zID0ge1xuICAgIHBlbmRpbmc6IFwiQXdhaXRpbmcgcmVsYXkuLi5cIixcbiAgICAvLyBjb25maXJtZWQ6IFwiVHJhbnNhY3Rpb24gY29uZmlybWVkOlwiLFxuICAgIC8vIGZpbmFsaXplZDogXCJUcmFuc2FjdGlvbiBmaW5hbGl6ZWQ6XCIsXG4gICAgcmVsYXllZDogXCJBd2FpdGluZyBpbmNsdXNpb24uLi5cIixcbiAgICBtaW5lZDogXCJBd2FpdGluZyBjb25maXJtYXRpb25zLi4uXCIsXG4gIH1cbiAgY29uc3QgY2FwdGlvbiA9IGNhcHRpb25zW3JlY2VpcHQuc3RhdHVzXVxuICBpZiAoY2FwdGlvbikgY29uc29sZS5pbmZvKGAgPiAke2NhcHRpb25zW3JlY2VpcHQuc3RhdHVzXX1gKVxuICBpZiAoW1wiZmluYWxpemVkXCIsIFwiY29uZmlybWVkXCJdLmluY2x1ZGVzKHJlY2VpcHQuc3RhdHVzKSkge1xuICAgIGNvbnNvbGUuaW5mbyhgID4gQmxvY2sgaGFzaDogICAke2dyYXkocmVjZWlwdD8uYmxvY2tIYXNoKX1gKVxuICAgIGNvbnNvbGUuaW5mbyhgID4gQmxvY2sgbWluZXI6ICAke2N5YW4ocmVjZWlwdD8uYmxvY2tNaW5lcil9YCk7XG4gICAgY29uc29sZS5pbmZvKGAgPiBCbG9jayBlcG9jaDogICR7d2hpdGUoY29tbWFzKHJlY2VpcHQ/LmJsb2NrRXBvY2gpKX1gKVxuICAgIGNvbnNvbGUuaW5mbyhgID4gSW5jbHVkZWQgYXQ6ICAke2dyZWVuKG1vbWVudC51bml4KHJlY2VpcHQ/LmJsb2NrVGltZXN0YW1wKS5mb3JtYXQoXCJNTU1NIERvIFlZWVksIGg6bW06c3MgYVwiKSl9YClcbiAgICBjb25zb2xlLmluZm8oYCA+ICR7cmVjZWlwdC5zdGF0dXNbMF0udG9VcHBlckNhc2UoKSArIHJlY2VpcHQuc3RhdHVzLnNsaWNlKDEpfSBhdDogJHttZ3JlZW4obW9tZW50LnVuaXgocmVjZWlwdC50aW1lc3RhbXApLmZvcm1hdChcIk1NTU0gRG8gWVlZWSwgaDptbTpzcyBhXCIpKX1gKVxuICB9XG59XG5cbmZ1bmN0aW9uIHRyYWNlVHJhbnNhY3Rpb25SZWNlaXB0IChyZWNlaXB0KSB7XG4gIGNvbnN0IGNhcHRpb25zID0ge1xuICAgIERhdGFSZXF1ZXN0OiBcIiA+IERSVCBoYXNoOiAgICAgXCIsXG4gICAgVmFsdWVUcmFuc2ZlcjogXCIgPiBWVFQgaGFzaDogICAgIFwiLFxuICB9XG4gIGNvbnNvbGUuaW5mbyhgJHtjYXB0aW9uc1tyZWNlaXB0LnR5cGVdIHx8IFwiID4gVFggaGFzaDogICAgICBcIn0ke3doaXRlKHJlY2VpcHQuaGFzaCl9YClcbiAgaWYgKHJlY2VpcHQ/LmRyb0hhc2gpIGNvbnNvbGUuaW5mbyhgID4gRFJPIGhhc2g6ICAgICAke2dyZWVuKHJlY2VpcHQuZHJvSGFzaCl9YClcbiAgaWYgKHJlY2VpcHQ/LnJhZEhhc2gpIGNvbnNvbGUuaW5mbyhgID4gUkFEIGhhc2g6ICAgICAke21ncmVlbihyZWNlaXB0LnJhZEhhc2gpfWApXG4gIGlmIChyZWNlaXB0Py5kcm9TTEEpIGNvbnNvbGUuaW5mbyhgID4gU0xBIHBhcmFtczogICAke0pTT04uc3RyaW5naWZ5KHJlY2VpcHQuZHJvU0xBKX1gKVxuICBpZiAocmVjZWlwdD8ud2l0aGRyYXdlcikge1xuICAgIGlmIChyZWNlaXB0Py52YWxpZGF0b3IpIHtcbiAgICAgIGNvbnNvbGUuaW5mbyhgID4gVmFsaWRhdG9yOiAgICAke21jeWFuKHJlY2VpcHQudmFsaWRhdG9yKX1gKVxuICAgIH1cbiAgICBjb25zb2xlLmluZm8oYCA+IFdpdGhkcmF3ZXI6ICAgJHttbWFnZW50YShyZWNlaXB0LndpdGhkcmF3ZXIpfWApXG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgc2lnbmVycyA9IEFycmF5LmlzQXJyYXkocmVjZWlwdC5mcm9tKSA/IHJlY2VpcHQuZnJvbSA6IFtyZWNlaXB0LmZyb21dXG4gICAgY29uc29sZS5pbmZvKGAgPiBTaWduZXIvczogICAgICR7bW1hZ2VudGEoc2lnbmVyc1swXSl9YClcbiAgICBzaWduZXJzLnNsaWNlKDEpLmZvckVhY2goc2lnbmVyID0+IHtcbiAgICAgIGNvbnNvbGUuaW5mbyhgICAgICAgICAgICAgICAgICAke21tYWdlbnRhKHNpZ25lcil9YClcbiAgICB9KVxuICB9XG4gIGlmIChyZWNlaXB0Py5yZWNpcGllbnRzKSB7XG4gICAgY29uc29sZS5pbmZvKGAgPiBSZWNpcGllbnQvczogICR7XG4gICAgICBtYmx1ZShyZWNlaXB0LnJlY2lwaWVudHMuZmlsdGVyKChwa2gsIGluZGV4LCBhcnJheSkgPT4gaW5kZXggPT09IGFycmF5LmluZGV4T2YocGtoKSkpXG4gICAgfWApXG4gIH1cbiAgaWYgKHJlY2VpcHQ/LmZlZXMpIGNvbnNvbGUuaW5mbyhgID4gRmVlOiAgICAgICAgICAke3llbGxvdyhyZWNlaXB0LmZlZXMudG9TdHJpbmcoMikpfWApXG4gIGlmIChyZWNlaXB0Py52YWx1ZSkgY29uc29sZS5pbmZvKGAgPiBWYWx1ZTogICAgICAgICR7bXllbGxvdyhyZWNlaXB0LnZhbHVlLnRvU3RyaW5nKDIpKX1gKVxuICBpZiAocmVjZWlwdD8ud2VpZ2h0KSBjb25zb2xlLmluZm8oYCA+IFdlaWdodDogICAgICAgJHttZ3JlZW4oY29tbWFzKHJlY2VpcHQud2VpZ2h0KSl9YClcbiAgaWYgKHJlY2VpcHQ/LndpdG5lc3Nlcykge1xuICAgIGNvbnNvbGUuaW5mbyhgID4gV2l0bmVzc2VzOiAgICAke3JlY2VpcHQud2l0bmVzc2VzfWApXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdHJhY2VUcmFuc2FjdGlvbiAodHJhbnNtaXR0ZXIsIG9wdGlvbnMpIHtcbiAgY29uc3QgY29sb3IgPSBvcHRpb25zPy5jb2xvciB8fCAoKHgpID0+IGBcXHgxYlszMDs0NW0ke3h9XFx4MWJbMG1gKVxuICBsZXQgcmVjZWlwdCA9IGF3YWl0IHRyYW5zbWl0dGVyLnNpZ25UcmFuc2FjdGlvbihvcHRpb25zLCBvcHRpb25zPy5yZWxvYWQpXG4gIGlmIChvcHRpb25zPy52ZXJib3NlKSB7XG4gICAgY29uc29sZS5pbmZvKFxuICAgICAgYFxcbiR7Z3JheShKU09OLnN0cmluZ2lmeShyZWNlaXB0LnR4LCB0eEpzb25SZXBsYWNlcikpfWBcbiAgICApXG4gIH1cbiAgaWYgKG9wdGlvbnM/LmhlYWRsaW5lKSB7XG4gICAgY29uc29sZS5pbmZvKGBcXG4gJHtjb2xvcihgICAke29wdGlvbnMuaGVhZGxpbmV9ICBgKX1cXG5gKVxuICB9XG4gIHRyYWNlVHJhbnNhY3Rpb25SZWNlaXB0KHJlY2VpcHQpXG4gIGlmICghb3B0aW9ucz8uZm9yY2UpIHtcbiAgICAvLyBwcm9tcHQgdXNlciBjb25maXJtYXRpb25cbiAgICBjb25zb2xlLmluZm8oKVxuICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHJlcXVpcmUoXCJpbnF1aXJlclwiKS5jcmVhdGVQcm9tcHRNb2R1bGUoKShbe1xuICAgICAgbWVzc2FnZTogXCJTZW5kIHRyYW5zYWN0aW9uP1wiLFxuICAgICAgdHlwZTogXCJjb25maXJtXCIsXG4gICAgICBuYW1lOiBcImNvbnRpbnVlXCIsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9XSlcbiAgICBpZiAoIWFuc3dlci5jb250aW51ZSkge1xuICAgICAgcmV0dXJuIHJlY2VpcHRcbiAgICB9XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zb2xlLmluZm8oKVxuICAgIHJlY2VpcHQgPSBhd2FpdCB0cmFuc21pdHRlci5zZW5kVHJhbnNhY3Rpb24oKVxuICAgIGlmIChvcHRpb25zPy5hd2FpdCB8fCBvcHRpb25zPy5jb25maXJtYXRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlY2VpcHQgPSBhd2FpdCB0cmFuc21pdHRlci5jb25maXJtVHJhbnNhY3Rpb24ocmVjZWlwdC5oYXNoLCB7XG4gICAgICAgIGNvbmZpcm1hdGlvbnM6IG9wdGlvbnM/LmNvbmZpcm1hdGlvbnMgfHwgMCxcbiAgICAgICAgb25DaGVja3BvaW50OiB0cmFjZVRyYW5zYWN0aW9uT25DaGVja3BvaW50LFxuICAgICAgICBvblN0YXR1c0NoYW5nZTogdHJhY2VUcmFuc2FjdGlvbk9uU3RhdHVzQ2hhbmdlLFxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGF0YSA9IHsgc3RhdHVzOiByZWNlaXB0Py5zdGF0dXMsIHRpbWVzdGFtcDogcmVjZWlwdD8udGltZXN0YW1wIHx8IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApIH1cbiAgICAgIGNvbnNvbGUuaW5mbyhkYXRhKVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKGVycj8uaW5GbGlnaHQgJiYgZXJyLmluRmxpZ2h0KSB7XG4gICAgICBjb25zb2xlLmluZm8oYFxcbiR7Z3JheShKU09OLnN0cmluZ2lmeShlcnIuaW5GbGlndD8ubWVzc2FnZSwgdHhSZWNlaXB0SnNvblJlcGxhY2VyKSl9YClcbiAgICB9XG4gICAgdGhyb3cgZXJyXG4gIH1cbiAgcmV0dXJuIHJlY2VpcHRcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGNvbG9yczoge1xuICAgIGJibHVlLFxuICAgIGJjeWFuLFxuICAgIGJncmVlbixcbiAgICBibHVlLFxuICAgIGJyZWQsXG4gICAgYnZpb2xldCxcbiAgICBjeWFuLFxuICAgIGdyYXksXG4gICAgZ3JlZW4sXG4gICAgbWFnZW50YSxcbiAgICByZWQsXG4gICAgd2hpdGUsXG4gICAgeWVsbG93LFxuICAgIG5vcm1hbCxcbiAgICBsY3lhbixcbiAgICBsZ3JheSxcbiAgICBsZ3JlZW4sXG4gICAgbG1hZ2VudGEsXG4gICAgbHllbGxvdyxcbiAgICBtYmx1ZSxcbiAgICBtY3lhbixcbiAgICBtZ3JlZW4sXG4gICAgbW1hZ2VudGEsXG4gICAgbXJlZCxcbiAgICBteWVsbG93LFxuICB9LFxuICBjb2xvcnN0cmlwLFxuICBjb21tYXMsXG4gIHdob2xlX3dpdHMsXG4gIHRvRml4ZWRUcnVuYyxcbiAgY291bnRMZWF2ZXMsXG4gIGV4ZWNSYWRvbkJ5dGVjb2RlLFxuICBkZWxldGVFeHRyYUZsYWdzLFxuICBleHRyYWN0RnJvbUFyZ3MsXG4gIGZyb21IZXhTdHJpbmcsXG4gIGlzSGV4U3RyaW5nLFxuICBpc0hleFN0cmluZ09mTGVuZ3RoLFxuICB0b0hleFN0cmluZyxcbiAgcGFyc2VVUkwsXG4gIGlwSXNQcml2YXRlT3JMb2NhbGhvc3QsXG4gIHNob3dVc2FnZSxcbiAgc2hvd1VzYWdlRXJyb3IsXG4gIHNob3dVc2FnZVN1YmNvbW1hbmQsXG4gIHNob3dWZXJzaW9uLFxuICB0b29sa2l0UnVuLFxuICB0b1VwcGVyQ2FtZWxDYXNlLFxuICB0b1V0ZjE2Qnl0ZXMsXG4gIHRvVXRmOEFycmF5LCAgXG4gIHV0ZjhBcnJheVRvU3RyLFxuICBwcm9tcHQsXG4gIHByb21wdGVyLFxuICB0cmFjZUNoZWNrbGlzdHMsXG4gIHRyYWNlSGVhZGVyLFxuICB0cmFjZVRhYmxlLFxuICB0cmFjZVRyYW5zYWN0aW9uLFxuICB0cmFjZVRyYW5zYWN0aW9uT25TdGF0dXNDaGFuZ2UsXG4gIHRyYWNlVHJhbnNhY3Rpb25PbkNoZWNrcG9pbnQsXG4gIHRyYWNlVHJhbnNhY3Rpb25SZWNlaXB0LFxuICBjaGVja1JwY1dpbGRjYXJkcyxcbiAgaXNXaWxkY2FyZCxcbiAgZ2V0V2lsZGNhcmRzQ291bnRGcm9tU3RyaW5nLFxuICByZXBsYWNlV2lsZGNhcmRzLFxuICBzcGxpY2VXaWxkY2FyZCxcbiAgdHhKc29uUmVwbGFjZXIsXG59XG4iXX0=
|
package/dist/src/index.js
CHANGED
|
@@ -44,4 +44,4 @@ exports.Witnet = Witnet;
|
|
|
44
44
|
const index_js_1 = __importDefault(require("../witnet/assets/index.js"));
|
|
45
45
|
Object.defineProperty(exports, "assets", { enumerable: true, get: function () { return index_js_1.default; } });
|
|
46
46
|
module.exports = { assets: index_js_1.default, utils, Witnet };
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQW9DO0FBSW5CLHNCQUFLO0FBSHRCLG9EQUFxQztBQUdiLHdCQUFNO0FBRjlCLHlFQUE2RDtBQUVwRCx1RkFGVyxrQkFBTSxPQUVYO0FBQ2YsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLE1BQU0sRUFBTixrQkFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWxzIGZyb20gXCIuL2xpYi91dGlsc1wiXG5pbXBvcnQgKiBhcyBXaXRuZXQgZnJvbSBcIi4vbGliL2luZGV4XCJcbmltcG9ydCB7IGRlZmF1bHQgYXMgYXNzZXRzIH0gZnJvbSBcIi4uL3dpdG5ldC9hc3NldHMvaW5kZXguanNcIlxuXG5leHBvcnQgeyBhc3NldHMsIHV0aWxzLCBXaXRuZXQgfVxubW9kdWxlLmV4cG9ydHMgPSB7IGFzc2V0cywgdXRpbHMsIFdpdG5ldCB9XG4iXX0=
|
|
@@ -103,4 +103,4 @@ class Account {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
exports.Account = Account;
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2FjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsbUNBQTJHO0FBQzNHLG1DQUFxQztBQUVyQyxxQ0FBaUM7QUFFakMsTUFBYSxPQUFPO0lBU2hCLFlBQVksSUFBWSxFQUFFLFFBQTBCLEVBQUUsS0FBYSxFQUFFLFFBQWdDO1FBQ2pHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDM0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUUzRixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksNkJBQXFCLENBQUMsVUFBVSxDQUFBO0lBQ2hFLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUE7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUE7UUFDeEMsT0FBTztZQUNILFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lB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QkFDSixPQUFPLE9BQU8sQ0FBQTtZQUNsQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRU0sU0FBUyxDQUFDLEdBQXlCO1FBQ3RDLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQzFCLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUNwRCxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7O1lBQ3BELE9BQU8sU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLO1FBQ2hDLE9BQU87WUFDSCxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3ZDLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7U0FDMUMsQ0FBQTtJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVyxDQUFDLEtBS3hCO1FBQ0csT0FBTyxJQUFJO2FBQ04sUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7YUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBQSxtQkFBVyxFQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDL0csQ0FBQztDQUNKO0FBdEhELDBCQXNIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhbGFuY2UsIE5ldHdvcmssIFF1ZXJ5U3Rha2VzT3JkZXIsIFN0YWtlRW50cnkgfSBmcm9tIFwiLi4vdHlwZXNcIlxyXG5pbXBvcnQgeyBJQWNjb3VudCwgSUJJUDMyLCBJSnNvblJwY1Byb3ZpZGVyLCBJU2lnbmVyIH0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiXHJcbmltcG9ydCB7IENvaW5zLCBQdWJsaWNLZXksIFB1YmxpY0tleUhhc2hTdHJpbmcsIFV0eG8sIFV0eG9DYWNoZUluZm8sIFV0eG9TZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gXCIuL3R5cGVzXCJcclxuaW1wb3J0IHsgc2VsZWN0VXR4b3MgfSBmcm9tIFwiLi91dGlsc1wiXHJcblxyXG5pbXBvcnQgeyBTaWduZXIgfSBmcm9tIFwiLi9zaWduZXJcIlxyXG5cclxuZXhwb3J0IGNsYXNzIEFjY291bnQgaW1wbGVtZW50cyBJQWNjb3VudCB7XHJcbiAgICBcclxuICAgIHB1YmxpYyByZWFkb25seSBpbmRleDogbnVtYmVyXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW50ZXJuYWw6IElTaWduZXJcclxuICAgIHB1YmxpYyByZWFkb25seSBleHRlcm5hbDogSVNpZ25lclxyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlclxyXG4gICAgcHVibGljIHN0cmF0ZWd5OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3lcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihyb290OiBJQklQMzIsIHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyLCBpbmRleDogbnVtYmVyLCBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSkge1xyXG4gICAgICAgIHRoaXMuaW5kZXggPSBpbmRleFxyXG4gICAgICAgIHRoaXMuaW50ZXJuYWwgPSBuZXcgU2lnbmVyKHJvb3QuZGVyaXZlUGF0aChgbS8zJy80OTE5Jy8wJy8xLyR7aW5kZXh9YCksIHByb3ZpZGVyLCBzdHJhdGVneSlcclxuICAgICAgICB0aGlzLmV4dGVybmFsID0gbmV3IFNpZ25lcihyb290LmRlcml2ZVBhdGgoYG0vMycvNDkxOScvMCcvMC8ke2luZGV4fWApLCBwcm92aWRlciwgc3RyYXRlZ3kpXHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKCFwcm92aWRlci5uZXR3b3JrKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQWNjb3VudDogdW5pbml0aWFsaXplZCBwcm92aWRlci5gKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnByb3ZpZGVyID0gcHJvdmlkZXJcclxuICAgICAgICB0aGlzLnN0cmF0ZWd5ID0gc3RyYXRlZ3kgfHwgVXR4b1NlbGVjdGlvblN0cmF0ZWd5LlNtYWxsRmlyc3RcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGNhY2hlSW5mbygpOiBVdHhvQ2FjaGVJbmZvIHtcclxuICAgICAgICBjb25zdCBpbnRlcm5hbCA9IHRoaXMuaW50ZXJuYWwuY2FjaGVJbmZvXHJcbiAgICAgICAgY29uc3QgZXh0ZXJuYWwgPSB0aGlzLmV4dGVybmFsLmNhY2hlSW5mb1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGV4cGVuZGFibGU6IEJpZ0ludChpbnRlcm5hbC5leHBlbmRhYmxlKSArIEJpZ0ludChleHRlcm5hbC5leHBlbmRhYmxlKSxcclxuICAgICAgICAgICAgc2l6ZTogaW50ZXJuYWwuc2l6ZSArIGV4dGVybmFsLnNpemUsXHJcbiAgICAgICAgICAgIHRpbWVsb2NrOiBNYXRoLm1pbihpbnRlcm5hbC50aW1lbG9jayB8fCBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiwgZXh0ZXJuYWwudGltZWxvY2spXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgY2hhbmdlUGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsLnBraFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmV4dGVybmFsLnBraFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcHVibGljS2V5KCk6IFB1YmxpY0tleSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWwucHVibGljS2V5XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcmtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogeyBleGNsdWRlZDogQXJyYXk8VXR4bz4sIGluY2x1ZGVkOiBBcnJheTxVdHhvPiB9IHtcclxuICAgICAgICBjb25zdCBpbnRlcm5hbCA9IHRoaXMuaW50ZXJuYWwuYWRkVXR4b3MoLi4udXR4b3MpXHJcbiAgICAgICAgY29uc3QgZXh0ZXJuYWwgPSB0aGlzLmV4dGVybmFsLmFkZFV0eG9zKC4uLmludGVybmFsLmV4Y2x1ZGVkKVxyXG4gICAgICAgIHJldHVybiB7IFxyXG4gICAgICAgICAgICBleGNsdWRlZDogZXh0ZXJuYWwuZXhjbHVkZWQsIFxyXG4gICAgICAgICAgICBpbmNsdWRlZDogWy4uLmludGVybmFsLmluY2x1ZGVkLCAuLi5leHRlcm5hbC5pbmNsdWRlZCBdLFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IEFycmF5PFV0eG8+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5leHRlcm5hbC5jb25zdW1lVXR4b3MoLi4udGhpcy5pbnRlcm5hbC5jb25zdW1lVXR4b3MoLi4udXR4b3MpKVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKCk6IFByb21pc2U8QmFsYW5jZT4ge1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbXHJcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWwuZ2V0QmFsYW5jZSgpLFxyXG4gICAgICAgICAgICB0aGlzLmV4dGVybmFsLmdldEJhbGFuY2UoKSxcclxuICAgICAgICBdKS50aGVuKChbaW50ZXJuYWwsIGV4dGVybmFsXSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgbG9ja2VkOiBpbnRlcm5hbC5sb2NrZWQgKyBleHRlcm5hbC5sb2NrZWQsXHJcbiAgICAgICAgICAgICAgICBzdGFrZWQ6IGludGVybmFsLnN0YWtlZCArIGV4dGVybmFsLnN0YWtlZCxcclxuICAgICAgICAgICAgICAgIHVubG9ja2VkOiBpbnRlcm5hbC51bmxvY2tlZCArIGV4dGVybmFsLnVubG9ja2VkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnZXREZWxlZ2F0ZWVzKG9yZGVyPzogUXVlcnlTdGFrZXNPcmRlciwgbGVmdEpvaW4gPSB0cnVlKTogUHJvbWlzZTxBcnJheTxTdGFrZUVudHJ5Pj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyXHJcbiAgICAgICAgICAgIC5zdGFrZXMoe1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB7IHdpdGhkcmF3ZXI6IHRoaXMucGtoIH0sXHJcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHsgb3JkZXIgfVxyXG4gICAgICAgICAgICB9KS50aGVuKHJlY29yZHMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZHMubGVuZ3RoICA9PT0gMCAmJiBsZWZ0Sm9pbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbeyBcclxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB7IHZhbGlkYXRvcjogXCJcIiwgd2l0aGRyYXdlcjogdGhpcy5wa2ggfSwgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29pbnM6IDBuLCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmNlOiAwLCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVwb2NoczogeyBtaW5pbmc6IDAsIHdpdG5lc3Npbmc6IDAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgIH1dXHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmRzXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNpZ25lcihwa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogSVNpZ25lciB8IHVuZGVmaW5lZCB7IFxyXG4gICAgICAgIGlmICghcGtoKSByZXR1cm4gdGhpcy5leHRlcm5hbDtcclxuICAgICAgICBlbHNlIGlmIChwa2ggPT09IHRoaXMuZXh0ZXJuYWwucGtoKSByZXR1cm4gdGhpcy5leHRlcm5hbDtcclxuICAgICAgICBlbHNlIGlmIChwa2ggPT09IHRoaXMuaW50ZXJuYWwucGtoKSByZXR1cm4gdGhpcy5pbnRlcm5hbDtcclxuICAgICAgICBlbHNlIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldFV0eG9zKHJlbG9hZCA9IGZhbHNlKTogUHJvbWlzZTxBcnJheTxVdHhvPj4ge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIC4uLmF3YWl0IHRoaXMuaW50ZXJuYWwuZ2V0VXR4b3MocmVsb2FkKSxcclxuICAgICAgICAgICAgLi4uYXdhaXQgdGhpcy5leHRlcm5hbC5nZXRVdHhvcyhyZWxvYWQpLFxyXG4gICAgICAgIF1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc2VsZWN0VXR4b3Moc3BlY3M/OiB7XHJcbiAgICAgICAgdmFsdWU/OiBDb2lucyxcclxuICAgICAgICBjb25zdW1lPzogYm9vbGVhbixcclxuICAgICAgICByZWxvYWQ/OiBib29sZWFuLFxyXG4gICAgICAgIHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5XHJcbiAgICB9KTogUHJvbWlzZTxBcnJheTxVdHhvPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzXHJcbiAgICAgICAgICAgIC5nZXRVdHhvcyhzcGVjcz8ucmVsb2FkKVxyXG4gICAgICAgICAgICAudGhlbih1dHhvcyA9PiBzZWxlY3RVdHhvcyh7IHV0eG9zLCB2YWx1ZTogc3BlY3M/LnZhbHVlLCBzdHJhdGVneTogc3BlY3M/LnN0cmF0ZWd5IHx8IHRoaXMuc3RyYXRlZ3kgfSkpXHJcbiAgICB9XHJcbn1cclxuIl19
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2FjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsbUNBQTJHO0FBQzNHLG1DQUFxQztBQUVyQyxxQ0FBaUM7QUFFakMsTUFBYSxPQUFPO0lBU2hCLFlBQVksSUFBWSxFQUFFLFFBQTBCLEVBQUUsS0FBYSxFQUFFLFFBQWdDO1FBQ2pHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDM0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUUzRixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksNkJBQXFCLENBQUMsVUFBVSxDQUFBO0lBQ2hFLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUE7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUE7UUFDeEMsT0FBTztZQUNILFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lB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QkFDSixPQUFPLE9BQU8sQ0FBQTtZQUNsQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRU0sU0FBUyxDQUFDLEdBQXlCO1FBQ3RDLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQzFCLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUNwRCxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7O1lBQ3BELE9BQU8sU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLO1FBQ2hDLE9BQU87WUFDSCxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3ZDLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7U0FDMUMsQ0FBQTtJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVyxDQUFDLEtBS3hCO1FBQ0csT0FBTyxJQUFJO2FBQ04sUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7YUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBQSxtQkFBVyxFQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDL0csQ0FBQztDQUNKO0FBdEhELDBCQXNIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhbGFuY2UsIE5ldHdvcmssIFF1ZXJ5U3Rha2VzT3JkZXIsIFN0YWtlRW50cnkgfSBmcm9tIFwiLi4vdHlwZXNcIlxuaW1wb3J0IHsgSUFjY291bnQsIElCSVAzMiwgSUpzb25ScGNQcm92aWRlciwgSVNpZ25lciB9IGZyb20gXCIuL2ludGVyZmFjZXNcIlxuaW1wb3J0IHsgQ29pbnMsIFB1YmxpY0tleSwgUHVibGljS2V5SGFzaFN0cmluZywgVXR4bywgVXR4b0NhY2hlSW5mbywgVXR4b1NlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIi4vdHlwZXNcIlxuaW1wb3J0IHsgc2VsZWN0VXR4b3MgfSBmcm9tIFwiLi91dGlsc1wiXG5cbmltcG9ydCB7IFNpZ25lciB9IGZyb20gXCIuL3NpZ25lclwiXG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50IGltcGxlbWVudHMgSUFjY291bnQge1xuICAgIFxuICAgIHB1YmxpYyByZWFkb25seSBpbmRleDogbnVtYmVyXG4gICAgcHVibGljIHJlYWRvbmx5IGludGVybmFsOiBJU2lnbmVyXG4gICAgcHVibGljIHJlYWRvbmx5IGV4dGVybmFsOiBJU2lnbmVyXG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgcHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXJcbiAgICBwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneVxuXG4gICAgY29uc3RydWN0b3Iocm9vdDogSUJJUDMyLCBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlciwgaW5kZXg6IG51bWJlciwgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kpIHtcbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4XG4gICAgICAgIHRoaXMuaW50ZXJuYWwgPSBuZXcgU2lnbmVyKHJvb3QuZGVyaXZlUGF0aChgbS8zJy80OTE5Jy8wJy8xLyR7aW5kZXh9YCksIHByb3ZpZGVyLCBzdHJhdGVneSlcbiAgICAgICAgdGhpcy5leHRlcm5hbCA9IG5ldyBTaWduZXIocm9vdC5kZXJpdmVQYXRoKGBtLzMnLzQ5MTknLzAnLzAvJHtpbmRleH1gKSwgcHJvdmlkZXIsIHN0cmF0ZWd5KVxuICAgICAgICBcbiAgICAgICAgaWYgKCFwcm92aWRlci5uZXR3b3JrKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFjY291bnQ6IHVuaW5pdGlhbGl6ZWQgcHJvdmlkZXIuYClcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb3ZpZGVyID0gcHJvdmlkZXJcbiAgICAgICAgdGhpcy5zdHJhdGVneSA9IHN0cmF0ZWd5IHx8IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjYWNoZUluZm8oKTogVXR4b0NhY2hlSW5mbyB7XG4gICAgICAgIGNvbnN0IGludGVybmFsID0gdGhpcy5pbnRlcm5hbC5jYWNoZUluZm9cbiAgICAgICAgY29uc3QgZXh0ZXJuYWwgPSB0aGlzLmV4dGVybmFsLmNhY2hlSW5mb1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZXhwZW5kYWJsZTogQmlnSW50KGludGVybmFsLmV4cGVuZGFibGUpICsgQmlnSW50KGV4dGVybmFsLmV4cGVuZGFibGUpLFxuICAgICAgICAgICAgc2l6ZTogaW50ZXJuYWwuc2l6ZSArIGV4dGVybmFsLnNpemUsXG4gICAgICAgICAgICB0aW1lbG9jazogTWF0aC5taW4oaW50ZXJuYWwudGltZWxvY2sgfHwgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsIGV4dGVybmFsLnRpbWVsb2NrKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjaGFuZ2VQa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsLnBraFxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGtoKCk6IFB1YmxpY0tleUhhc2hTdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5leHRlcm5hbC5wa2hcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHB1YmxpY0tleSgpOiBQdWJsaWNLZXkge1xuICAgICAgICByZXR1cm4gdGhpcy5leHRlcm5hbC5wdWJsaWNLZXlcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5ldHdvcmsoKTogTmV0d29yayB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcmtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogeyBleGNsdWRlZDogQXJyYXk8VXR4bz4sIGluY2x1ZGVkOiBBcnJheTxVdHhvPiB9IHtcbiAgICAgICAgY29uc3QgaW50ZXJuYWwgPSB0aGlzLmludGVybmFsLmFkZFV0eG9zKC4uLnV0eG9zKVxuICAgICAgICBjb25zdCBleHRlcm5hbCA9IHRoaXMuZXh0ZXJuYWwuYWRkVXR4b3MoLi4uaW50ZXJuYWwuZXhjbHVkZWQpXG4gICAgICAgIHJldHVybiB7IFxuICAgICAgICAgICAgZXhjbHVkZWQ6IGV4dGVybmFsLmV4Y2x1ZGVkLCBcbiAgICAgICAgICAgIGluY2x1ZGVkOiBbLi4uaW50ZXJuYWwuaW5jbHVkZWQsIC4uLmV4dGVybmFsLmluY2x1ZGVkIF0sXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IEFycmF5PFV0eG8+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWwuY29uc3VtZVV0eG9zKC4uLnRoaXMuaW50ZXJuYWwuY29uc3VtZVV0eG9zKC4uLnV0eG9zKSlcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0QmFsYW5jZSgpOiBQcm9taXNlPEJhbGFuY2U+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWwuZ2V0QmFsYW5jZSgpLFxuICAgICAgICAgICAgdGhpcy5leHRlcm5hbC5nZXRCYWxhbmNlKCksXG4gICAgICAgIF0pLnRoZW4oKFtpbnRlcm5hbCwgZXh0ZXJuYWxdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGxvY2tlZDogaW50ZXJuYWwubG9ja2VkICsgZXh0ZXJuYWwubG9ja2VkLFxuICAgICAgICAgICAgICAgIHN0YWtlZDogaW50ZXJuYWwuc3Rha2VkICsgZXh0ZXJuYWwuc3Rha2VkLFxuICAgICAgICAgICAgICAgIHVubG9ja2VkOiBpbnRlcm5hbC51bmxvY2tlZCArIGV4dGVybmFsLnVubG9ja2VkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldERlbGVnYXRlZXMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLCBsZWZ0Sm9pbiA9IHRydWUpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3ZpZGVyXG4gICAgICAgICAgICAuc3Rha2VzKHtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHsgd2l0aGRyYXdlcjogdGhpcy5wa2ggfSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHsgb3JkZXIgfVxuICAgICAgICAgICAgfSkudGhlbihyZWNvcmRzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVjb3Jkcy5sZW5ndGggID09PSAwICYmIGxlZnRKb2luKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbeyBcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogeyB2YWxpZGF0b3I6IFwiXCIsIHdpdGhkcmF3ZXI6IHRoaXMucGtoIH0sIFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29pbnM6IDBuLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25jZTogMCwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXBvY2hzOiB7IG1pbmluZzogMCwgd2l0bmVzc2luZzogMCB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWNvcmRzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2lnbmVyKHBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBJU2lnbmVyIHwgdW5kZWZpbmVkIHsgXG4gICAgICAgIGlmICghcGtoKSByZXR1cm4gdGhpcy5leHRlcm5hbDtcbiAgICAgICAgZWxzZSBpZiAocGtoID09PSB0aGlzLmV4dGVybmFsLnBraCkgcmV0dXJuIHRoaXMuZXh0ZXJuYWw7XG4gICAgICAgIGVsc2UgaWYgKHBraCA9PT0gdGhpcy5pbnRlcm5hbC5wa2gpIHJldHVybiB0aGlzLmludGVybmFsO1xuICAgICAgICBlbHNlIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldFV0eG9zKHJlbG9hZCA9IGZhbHNlKTogUHJvbWlzZTxBcnJheTxVdHhvPj4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4uYXdhaXQgdGhpcy5pbnRlcm5hbC5nZXRVdHhvcyhyZWxvYWQpLFxuICAgICAgICAgICAgLi4uYXdhaXQgdGhpcy5leHRlcm5hbC5nZXRVdHhvcyhyZWxvYWQpLFxuICAgICAgICBdXG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlbGVjdFV0eG9zKHNwZWNzPzoge1xuICAgICAgICB2YWx1ZT86IENvaW5zLFxuICAgICAgICBjb25zdW1lPzogYm9vbGVhbixcbiAgICAgICAgcmVsb2FkPzogYm9vbGVhbixcbiAgICAgICAgc3RyYXRlZ3k/OiBVdHhvU2VsZWN0aW9uU3RyYXRlZ3lcbiAgICB9KTogUHJvbWlzZTxBcnJheTxVdHhvPj4ge1xuICAgICAgICByZXR1cm4gdGhpc1xuICAgICAgICAgICAgLmdldFV0eG9zKHNwZWNzPy5yZWxvYWQpXG4gICAgICAgICAgICAudGhlbih1dHhvcyA9PiBzZWxlY3RVdHhvcyh7IHV0eG9zLCB2YWx1ZTogc3BlY3M/LnZhbHVlLCBzdHJhdGVneTogc3BlY3M/LnN0cmF0ZWd5IHx8IHRoaXMuc3RyYXRlZ3kgfSkpXG4gICAgfVxufVxuIl19
|
|
@@ -25,4 +25,4 @@ class Coinbase extends signer_1.Signer {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
exports.Coinbase = Coinbase;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by9jb2luYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxtQ0FBeUc7QUFFekcscUNBQWlDO0FBRWpDLE1BQWEsUUFBUyxTQUFRLGVBQU07SUFFaEMsWUFBWSxJQUFZLEVBQUUsUUFBMEIsRUFBRSxRQUFnQztRQUNsRixLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUMvQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkIsTUFBTSxLQUFLLENBQUMsdUNBQXVDLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFBO1FBQ3hFLENBQUM7SUFDTCxDQUFDO0lBRU0sY0FBYyxDQUFDLFVBQStCO1FBQ2pELE1BQU0sR0FBRyxHQUFHLHFCQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQzVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDN0IsTUFBTSxTQUFTLEdBQUcsNEJBQW9CLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ2xFLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDMUUsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUF3QjtRQUMxQyxPQUFPLElBQUksQ0FBQyxRQUFRO2FBQ2YsTUFBTSxDQUFDO1lBQ0osTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFO1NBQ3BCLENBQUMsQ0FBQTtJQUNWLENBQUM7Q0FFSjtBQXhCRCw0QkF3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZXhTdHJpbmcsIFF1ZXJ5U3Rha2VzT3JkZXIsIFN0YWtlRW50cnkgfSBmcm9tIFwiLi4vdHlwZXNcIlxuaW1wb3J0IHsgSUJJUDMyLCBJQ29pbmJhc2UsIElKc29uUnBjUHJvdmlkZXIgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCJcbmltcG9ydCB7IFB1YmxpY0tleUhhc2gsIFB1YmxpY0tleUhhc2hTdHJpbmcsIFJlY292ZXJhYmxlU2lnbmF0dXJlLCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiLi90eXBlc1wiXG5cbmltcG9ydCB7IFNpZ25lciB9IGZyb20gXCIuL3NpZ25lclwiXG5cbmV4cG9ydCBjbGFzcyBDb2luYmFzZSBleHRlbmRzIFNpZ25lciBpbXBsZW1lbnRzIElDb2luYmFzZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihub2RlOiBJQklQMzIsIHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyLCBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSkge1xuICAgICAgICBzdXBlcihub2RlLCBwcm92aWRlciwgc3RyYXRlZ3kpXG4gICAgICAgIGlmIChub2RlLmRlcHRoICE9PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgQ29pbmJhc2U6IGludmFsaWQgQklQMzIgbm9kZSBkZXB0aDogJHtub2RlLmRlcHRofSA+IDBgKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGF1dGhvcml6ZVN0YWtlKHdpdGhkcmF3ZXI6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBIZXhTdHJpbmcge1xuICAgICAgICBjb25zdCBtc2cgPSBQdWJsaWNLZXlIYXNoLmZyb21CZWNoMzIod2l0aGRyYXdlcikudG9CeXRlczMyKClcbiAgICAgICAgY29uc3Qga3MgPSB0aGlzLnNpZ25IYXNoKG1zZylcbiAgICAgICAgY29uc3Qgc2lnbmF0dXJlID0gUmVjb3ZlcmFibGVTaWduYXR1cmUuZnJvbUtleWVkU2lnbmF0dXJlKGtzLCBtc2cpXG4gICAgICAgIHJldHVybiBzaWduYXR1cmUucHViS2V5Lmhhc2goKS50b0hleFN0cmluZygpICsgc2lnbmF0dXJlLnRvSGV4U3RyaW5nKClcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0V2l0aGRyYXdlcnMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyKTogUHJvbWlzZTxBcnJheTxTdGFrZUVudHJ5Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlclxuICAgICAgICAgICAgLnN0YWtlcyh7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiB7IHZhbGlkYXRvcjogdGhpcy5wa2ggfSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHsgb3JkZXIgfVxuICAgICAgICAgICAgfSlcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -27,4 +27,4 @@ __exportStar(require("./transmitters/ValueTransfers"), exports);
|
|
|
27
27
|
__exportStar(require("./transmitters/StakeDeposits"), exports);
|
|
28
28
|
__exportStar(require("./transmitters/StakeWithdrawals"), exports);
|
|
29
29
|
__exportStar(require("./wallet"), exports);
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLGlDQVVnQjtBQVRkLDhGQUFBLEtBQUssT0FBQTtBQUNMLGtHQUFBLFNBQVMsT0FBQTtBQUNULHNHQUFBLGFBQWEsT0FBQTtBQUliLDBHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDRHQUFBLG1CQUFtQixPQUFBO0FBQ25CLDhHQUFBLHFCQUFxQixPQUFBO0FBR3ZCLDhEQUEyQztBQUMzQyxnRUFBNkM7QUFDN0MsK0RBQTRDO0FBQzVDLGtFQUErQztBQUUvQywyQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBJQ29pbmJhc2UgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCJcblxuZXhwb3J0IHtcbiAgQ29pbnMsXG4gIFB1YmxpY0tleSxcbiAgUHVibGljS2V5SGFzaCxcbiAgVHJhbnNhY3Rpb25DYWxsYmFjayxcbiAgVHJhbnNhY3Rpb25SZWNlaXB0LFxuICBUcmFuc2FjdGlvblN0YXR1cyxcbiAgVHJhbnNtaXNzaW9uRXJyb3IsXG4gIFRyYW5zYWN0aW9uUHJpb3JpdHksXG4gIFV0eG9TZWxlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSBcIi4vdHlwZXNcIlxuXG5leHBvcnQgKiBmcm9tIFwiLi90cmFuc21pdHRlcnMvRGF0YVJlcXVlc3RzXCJcbmV4cG9ydCAqIGZyb20gXCIuL3RyYW5zbWl0dGVycy9WYWx1ZVRyYW5zZmVyc1wiXG5leHBvcnQgKiBmcm9tIFwiLi90cmFuc21pdHRlcnMvU3Rha2VEZXBvc2l0c1wiXG5leHBvcnQgKiBmcm9tIFwiLi90cmFuc21pdHRlcnMvU3Rha2VXaXRoZHJhd2Fsc1wiXG5cbmV4cG9ydCAqIGZyb20gXCIuL3dhbGxldFwiXG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFxuICAgIElKc29uUnBjUHJvdmlkZXIsIFxuICAgIEJhbGFuY2UsIFxuICAgIEhhc2gsIFxuICAgIEhleFN0cmluZywgXG4gICAgUXVlcnlTdGFrZXNPcmRlcixcbiAgICBOZXR3b3JrLCBcbiAgICBTdGFrZUVudHJ5LCBcbiAgICBWYWx1ZVRyYW5zZmVyT3V0cHV0LCBcbn0gZnJvbSBcIi4uL3R5cGVzXCJcblxuaW1wb3J0IHsgXG4gICAgQ29pbnMsXG4gICAgS2V5ZWRTaWduYXR1cmUsXG4gICAgUHVibGljS2V5LCBcbiAgICBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuICAgIFRyYW5zYWN0aW9uUmVjZWlwdCxcbiAgICBVdHhvLCBVdHhvQ2FjaGVJbmZvLCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gXCIuL3R5cGVzXCJcblxuZXhwb3J0IHsgQklQMzJJbnRlcmZhY2UgYXMgSUJJUDMyIH0gZnJvbSAnYmlwMzInXG5leHBvcnQgeyBJSnNvblJwY1Byb3ZpZGVyIH0gZnJvbSBcIi4uL3JwY1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFjY291bnQgZXh0ZW5kcyBJTGVkZ2VyIHtcbiAgICBpbmRleDogbnVtYmVyXG4gICAgaW50ZXJuYWw6IElTaWduZXJcbiAgICBleHRlcm5hbDogSVNpZ25lclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMZWRnZXIge1xuICAgIFxuICAgIGNhY2hlSW5mbzogVXR4b0NhY2hlSW5mb1xuICAgIGNoYW5nZVBraDogUHVibGljS2V5SGFzaFN0cmluZyxcbiAgICBuZXR3b3JrPzogTmV0d29ya1xuICAgIHBraDogUHVibGljS2V5SGFzaFN0cmluZ1xuICAgIHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyXG4gICAgcHVibGljS2V5OiBQdWJsaWNLZXlcbiAgICBzdHJhdGVneTogVXR4b1NlbGVjdGlvblN0cmF0ZWd5XG4gICAgXG4gICAgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KTogeyBleGNsdWRlZDogQXJyYXk8VXR4bz4sIGluY2x1ZGVkOiBBcnJheTxVdHhvPiB9XG4gICAgY29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IGFueVxuICAgIHNlbGVjdFV0eG9zKHNwZWNzPzogeyBcbiAgICAgICAgdmFsdWU/OiBDb2lucywgXG4gICAgICAgIHJlbG9hZD86IGJvb2xlYW4sIFxuICAgICAgICBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSxcbiAgICB9KTogUHJvbWlzZTxBcnJheTxVdHhvPj5cblxuICAgIGdldEJhbGFuY2UoKTogUHJvbWlzZTxCYWxhbmNlPlxuICAgIGdldERlbGVnYXRlZXMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLCBsZWZ0Sm9pbj86IGJvb2xlYW4pOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PlxuICAgIGdldFNpZ25lcihwa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogSVNpZ25lciB8IHVuZGVmaW5lZFxuICAgIGdldFV0eG9zKHNwZWNzPzogYW55KTogUHJvbWlzZTxBcnJheTxVdHhvPj5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29pbmJhc2UgZXh0ZW5kcyBJU2lnbmVyIHtcbiAgICBhdXRob3JpemVTdGFrZSh3aXRoZHJhd2VyOiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogSGV4U3RyaW5nXG4gICAgZ2V0V2l0aGRyYXdlcnMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyKTogUHJvbWlzZTxBcnJheTxTdGFrZUVudHJ5Pj5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2lnbmVyIGV4dGVuZHMgSUxlZGdlciB7XG4gICAgYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzOiBIZXhTdHJpbmcpOiBhbnk7XG4gICAgZ2V0U3Rha2VFbnRyeU5vbmNlKHZhbGlkYXRvcjogUHVibGljS2V5SGFzaFN0cmluZyk6IFByb21pc2U8bnVtYmVyPlxuICAgIHNpZ25IYXNoKGhhc2g6IGFueSk6IEtleWVkU2lnbmF0dXJlXG4gICAgc2lnbk1lc3NhZ2UodGV4dDogc3RyaW5nKTogeyBcbiAgICAgICAgYWRkcmVzczogc3RyaW5nLCBcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLCBcbiAgICAgICAgcHVibGljS2V5OiBIZXhTdHJpbmcsIFxuICAgICAgICBzaWduYXR1cmU6IEhleFN0cmluZyBcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVdhbGxldCBleHRlbmRzIElMZWRnZXIge1xuICAgIGFjY291bnRzPzogQXJyYXk8SUFjY291bnQ+XG4gICAgY29pbmJhc2U6IElDb2luYmFzZVxuICAgIGRlcml2ZUFjY291bnRzKGluZGV4OiBudW1iZXIpOiBBcnJheTxJQWNjb3VudD5cbiAgICBleHBsb3JlQWNjb3VudHMocGFyYW1zPzogYW55KTogUHJvbWlzZTxBcnJheTxJQWNjb3VudD4+XG4gICAgZ2V0QWNjb3VudChwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcsIGdhcD86IG51bWJlcik6IElBY2NvdW50IHwgdW5kZWZpbmVkXG4gICAgZ2V0U2lnbmVyKHBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcsIGdhcD86IG51bWJlcik6IElTaWduZXIgfCB1bmRlZmluZWRcbn1cblxuaW50ZXJmYWNlIElIYXNoYWJsZSB7XG4gICAgYnl0ZWNvZGU/OiBVaW50OEFycmF5XG4gICAgaGFzaD86IEhhc2hcbiAgICB0b0pTT04oaHVtYW5pemU/OiBib29sZWFuLCBwYXJhbXM/OiBhbnkpOiBhbnlcbiAgICB0b1Byb3RvYnVmKCk6IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc21pdHRlciB7XG4gICAgbmV0d29yazogTmV0d29ya1xuICAgIHBheWxvYWQ/OiBhbnlcbiAgICBwcm92aWRlcjogSUpzb25ScGNQcm92aWRlclxuICAgIHRyYW5zYWN0aW9uczogQXJyYXk8SGFzaD4sXG4gICAgdHlwZTogc3RyaW5nXG4gICAgY29uZmlybVRyYW5zYWN0aW9uKHBhcmFtcz86IGFueSk6IFByb21pc2U8VHJhbnNhY3Rpb25SZWNlaXB0PlxuICAgIHNlbmRUcmFuc2FjdGlvbihwYXJhbXM/OiBhbnkpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD5cbiAgICBzaWduVHJhbnNhY3Rpb24ocGFyYW1zPzogYW55LCByZWxvYWQ/OiBib29sZWFuKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlY2VpcHQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zYWN0aW9uUGF5bG9hZDxTcGVjcz4gZXh0ZW5kcyBJSGFzaGFibGUge1xuICAgIGNoYW5nZT86IENvaW5zXG4gICAgY292ZXJlZDogYm9vbGVhblxuICAgIGZlZXM/OiBDb2luc1xuICAgIG1heFdlaWdodDogbnVtYmVyXG4gICAgcHJlcGFyZWQ6IGJvb2xlYW5cbiAgICBvdXRwdXRzOiBBcnJheTxWYWx1ZVRyYW5zZmVyT3V0cHV0PlxuICAgIHRhcmdldD86IFNwZWNzXG4gICAgdmFsdWU/OiBDb2luc1xuICAgIHdlaWdodDogbnVtYmVyXG4gICAgY29uc3VtZVV0eG9zKGxlZGdlcjogSUxlZGdlciwgcGFyYW1zPzogYW55KTogYW55XG4gICAgaW50b1JlY2VpcHQodGFyZ2V0OiBTcGVjcywgbmV0d29yaz86IE5ldHdvcmspOiBhbnlcbiAgICBwcmVwYXJlT3V0cHV0cyhwYXJhbXM/OiBhbnkpOiBhbnlcbiAgICByZXNldFRhcmdldCh0YXJnZXQ6IFNwZWNzKTogYW55XG4gICAgdG9KU09OKGh1bWFuaXplPzogYm9vbGVhbiwgbmV0d29yaz86IE5ldHdvcmspOiBhbnlcbiAgICB2YWxpZGF0ZVRhcmdldCh0YXJnZXQ/OiBTcGVjcyk6IFNwZWNzIHwgdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zYWN0aW9uUGF5bG9hZE11bHRpU2lnPFNwZWNzPiBleHRlbmRzIElUcmFuc2FjdGlvblBheWxvYWQ8U3BlY3M+IHtcbiAgICBpbnB1dHM6IEFycmF5PFV0eG8+XG59XG4iXX0=
|
|
@@ -17,10 +17,10 @@ type DataRequestOutputSLA = {
|
|
|
17
17
|
witnessReward?: number;
|
|
18
18
|
};
|
|
19
19
|
export declare class DataRequestPayload extends TransactionPayloadMultiSig<DataRequestParams> {
|
|
20
|
-
static COLLATERAL_RATIO: number;
|
|
21
20
|
static DEFAULT_WITNESSES: number;
|
|
22
21
|
static MAX_WEIGHT: number;
|
|
23
22
|
static MIN_COLLATERAL: bigint;
|
|
23
|
+
static MIN_CONSENSUS_PERCENTAGE: number;
|
|
24
24
|
protected _request?: RadonRequest;
|
|
25
25
|
readonly template?: RadonTemplate;
|
|
26
26
|
constructor(protoTypeName: string, radon: RadonRequest | RadonTemplate, initialTarget?: DataRequestParams);
|
|
@@ -47,7 +47,7 @@ export declare class DataRequestPayload extends TransactionPayloadMultiSig<DataR
|
|
|
47
47
|
protected _cleanTargetExtras(target?: any): any;
|
|
48
48
|
protected _estimateNetworkFees(provider: IJsonRpcProvider, priority?: TransactionPriority): Promise<bigint>;
|
|
49
49
|
protected _fees2UnitaryCommitRevealReward(fees: bigint, witnesses: number): bigint;
|
|
50
|
-
protected _fees2UnitaryReward(fees: bigint): bigint;
|
|
50
|
+
protected _fees2UnitaryReward(fees: bigint, witnesses: number): bigint;
|
|
51
51
|
protected _fees2Value(fees: bigint, witnesses: number): bigint;
|
|
52
52
|
protected _toDrOutputProtobuf(): any;
|
|
53
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataRequestPayload.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/payloads/DataRequestPayload.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,KAAK,EAAiB,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAGvF,MAAM,MAAM,uBAAuB,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAA;AAE1E,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG;IAChD,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAA;AAYD,qBAAa,kBAAmB,SAAQ,0BAA0B,CAAC,iBAAiB,CAAC;IAEjF,OAAc,
|
|
1
|
+
{"version":3,"file":"DataRequestPayload.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/payloads/DataRequestPayload.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,KAAK,EAAiB,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAGvF,MAAM,MAAM,uBAAuB,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAA;AAE1E,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG;IAChD,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAA;AAYD,qBAAa,kBAAmB,SAAQ,0BAA0B,CAAC,iBAAiB,CAAC;IAEjF,OAAc,iBAAiB,SAAK;IACpC,OAAc,UAAU,SAAS;IACjC,OAAc,cAAc,SAAkB;IAC9C,OAAc,wBAAwB,SAAM;IAE5C,SAAS,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACjC,SAAgB,QAAQ,CAAC,EAAE,aAAa,CAAA;gBAE3B,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,aAAa,EAAE,aAAa,CAAC,EAAE,iBAAiB;IAW1G,IAAW,OAAO,IAAI,IAAI,GAAG,SAAS,CAkBrC;IAED,IAAW,MAAM,IAAI,oBAAoB,GAAG,SAAS,CA4BpD;IAED,IAAW,IAAI,IAAI,IAAI,GAAG,SAAS,CAUlC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,IAAW,QAAQ,IAAI,OAAO,CAO7B;IAED,IAAW,OAAO,IAAI,uBAAuB,GAAG,SAAS,CAExD;IAED,IAAW,OAAO,IAAI,SAAS,GAAG,SAAS,CAE1C;IAED,IAAW,OAAO,IAAI,YAAY,GAAG,SAAS,CAE7C;IAED,IAAW,KAAK,IAAI,KAAK,CAMxB;IAED,IAAW,MAAM,IAAI,MAAM,CAiB1B;IAEY,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAyDtE,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,GAAG;IAS3C,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,GAAG;IAU/C,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,GAAG;IA6B3C,MAAM,CAAC,QAAQ,UAAQ,GAAG,GAAG;IAqB7B,UAAU,IAAI,GAAG;IAwBjB,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,iBAAiB,GAAG,SAAS;IA4BlE,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG;cAa/B,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,sBAA6B,GAAG,OAAO,CAAC,MAAM,CAAC;IAexH,SAAS,CAAC,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAIlF,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAMtE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAS9D,SAAS,CAAC,mBAAmB,IAAI,GAAG;CAQvC"}
|