@witnet/solidity 3.0.7 → 3.0.8
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/build/contracts/Bech32.json +1 -1
- package/build/contracts/Clonable.json +1 -1
- package/build/contracts/Context.json +1 -1
- package/build/contracts/Create3.json +1 -1
- package/build/contracts/ERC165.json +1 -1
- package/build/contracts/Escrowable.json +1 -1
- package/build/contracts/IChainlinkAggregatorV3.json +1 -1
- package/build/contracts/IERC165.json +1 -1
- package/build/contracts/IERC20.json +1 -1
- package/build/contracts/IERC2362.json +1 -1
- package/build/contracts/IPythChainlinkAggregatorV3.json +1 -1
- package/build/contracts/IWitAppliance.json +1 -1
- package/build/contracts/IWitOracle.json +1 -1
- package/build/contracts/IWitOracleAppliance.json +1 -1
- package/build/contracts/IWitOracleConsumer.json +1 -1
- package/build/contracts/IWitOracleConsumerLegacy.json +1 -1
- package/build/contracts/IWitOracleLegacy.json +1 -1
- package/build/contracts/IWitOracleQueriable.json +1 -1
- package/build/contracts/IWitOracleQueriableConsumer.json +1 -1
- package/build/contracts/IWitOracleQueriableEvents.json +1 -1
- package/build/contracts/IWitOracleQueriableExperimental.json +1 -1
- package/build/contracts/IWitOracleQueriableTrustableReporter.json +1 -1
- package/build/contracts/IWitOracleQueriableTrustlessReporter.json +1 -1
- package/build/contracts/IWitOracleRadonRegistry.json +1 -1
- package/build/contracts/IWitOracleRadonRegistryEvents.json +1 -1
- package/build/contracts/IWitOracleRadonRegistryLegacy.json +1 -1
- package/build/contracts/IWitOracleRadonRequestFactory.json +1 -1
- package/build/contracts/IWitOracleRadonRequestModal.json +1 -1
- package/build/contracts/IWitOracleRadonRequestTemplate.json +1 -1
- package/build/contracts/IWitOracleRequest.json +1 -1
- package/build/contracts/IWitOracleRequestFactory.json +1 -1
- package/build/contracts/IWitOracleRequestFactoryEvents.json +1 -1
- package/build/contracts/IWitOracleRequestTemplate.json +1 -1
- package/build/contracts/IWitOracleTrustableAdmin.json +1 -1
- package/build/contracts/IWitOracleTrustless.json +1 -1
- package/build/contracts/IWitPriceFeeds.json +1 -1
- package/build/contracts/IWitPriceFeedsAdmin.json +1 -1
- package/build/contracts/IWitPriceFeedsConsumer.json +1 -1
- package/build/contracts/IWitPriceFeedsEvents.json +1 -1
- package/build/contracts/IWitPriceFeedsLegacy.json +1 -1
- package/build/contracts/IWitPriceFeedsLegacyAdmin.json +1 -1
- package/build/contracts/IWitPriceFeedsLegacySolver.json +1 -1
- package/build/contracts/IWitPriceFeedsLegacySolverFactory.json +1 -1
- package/build/contracts/IWitPriceFeedsTypes.json +1 -1
- package/build/contracts/IWitPyth.json +1 -1
- package/build/contracts/IWitPythChainlinkAggregator.json +1 -1
- package/build/contracts/IWitPythErrors.json +1 -1
- package/build/contracts/IWitPythEvents.json +1 -1
- package/build/contracts/IWitPythReporter.json +1 -1
- package/build/contracts/IWitRandomness.json +1 -1
- package/build/contracts/IWitRandomnessAdmin.json +1 -1
- package/build/contracts/IWitRandomnessAdminV2.json +1 -1
- package/build/contracts/IWitRandomnessConsumer.json +1 -1
- package/build/contracts/IWitRandomnessEvents.json +1 -1
- package/build/contracts/IWitRandomnessLegacy.json +1 -1
- package/build/contracts/IWitRandomnessTypes.json +1 -1
- package/build/contracts/Initializable.json +1 -1
- package/build/contracts/OVM_GasPriceOracle.json +1 -1
- package/build/contracts/Ownable.json +1 -1
- package/build/contracts/Ownable2Step.json +1 -1
- package/build/contracts/Payable.json +1 -1
- package/build/contracts/Proxiable.json +1 -1
- package/build/contracts/ReentrancyGuard.json +1 -1
- package/build/contracts/Secp256k1.json +1 -1
- package/build/contracts/Slices.json +1 -1
- package/build/contracts/TestBech32.json +1 -1
- package/build/contracts/TestSecp256k1.json +1 -1
- package/build/contracts/Upgradeable.json +1 -1
- package/build/contracts/UsingWitOracle.json +1 -1
- package/build/contracts/UsingWitPriceFeeds.json +1 -1
- package/build/contracts/UsingWitRandomness.json +1 -1
- package/build/contracts/WitOracle.json +1 -1
- package/build/contracts/WitOracleBasePushOnly.json +1 -1
- package/build/contracts/WitOracleBasePushOnlyTrustable.json +1 -1
- package/build/contracts/WitOracleBasePushOnlyTrustless.json +1 -1
- package/build/contracts/WitOracleBasePushOnlyUpgradable.json +1 -1
- package/build/contracts/WitOracleBaseQueriable.json +1 -1
- package/build/contracts/WitOracleBaseQueriableTrustable.json +1 -1
- package/build/contracts/WitOracleBaseQueriableTrustless.json +1 -1
- package/build/contracts/WitOracleBaseQueriableUpgradable.json +1 -1
- package/build/contracts/WitOracleDataLib.json +1 -1
- package/build/contracts/WitOraclePushOnly.json +1 -1
- package/build/contracts/WitOracleRadonEncodingLib.json +1 -1
- package/build/contracts/WitOracleRadonRegistry.json +1 -1
- package/build/contracts/WitOracleRadonRegistryBase.json +1 -1
- package/build/contracts/WitOracleRadonRegistryBaseUpgradable.json +1 -1
- package/build/contracts/WitOracleRadonRegistryData.json +1 -1
- package/build/contracts/WitOracleRadonRegistryDefaultV21.json +1 -1
- package/build/contracts/WitOracleRadonRegistryUpgradableDefault.json +1 -1
- package/build/contracts/WitOracleRadonRegistryUpgradableNoSha256.json +1 -1
- package/build/contracts/WitOracleRadonRegistryUpgradableZkSync.json +1 -1
- package/build/contracts/WitOracleRadonRequestFactory.json +1 -1
- package/build/contracts/WitOracleRadonRequestFactoryBase.json +1 -1
- package/build/contracts/WitOracleRadonRequestFactoryBaseUpgradable.json +1 -1
- package/build/contracts/WitOracleRadonRequestFactoryModals.json +1 -1
- package/build/contracts/WitOracleRadonRequestFactoryModalsDefault.json +1 -1
- package/build/contracts/WitOracleRadonRequestFactoryTemplates.json +1 -1
- package/build/contracts/WitOracleRadonRequestFactoryTemplatesDefault.json +1 -1
- package/build/contracts/WitOracleRadonRequestFactoryUpgradableConfluxCore.json +1 -1
- package/build/contracts/WitOracleRadonRequestFactoryUpgradableDefault.json +1 -1
- package/build/contracts/WitOracleResultStatusLib.json +1 -1
- package/build/contracts/WitOracleTrustableDefault.json +1 -1
- package/build/contracts/WitOracleTrustableExperimental.json +1 -1
- package/build/contracts/WitOracleTrustableObscuro.json +1 -1
- package/build/contracts/WitOracleTrustableOvm2.json +1 -1
- package/build/contracts/WitOracleTrustablePushOnly.json +1 -1
- package/build/contracts/WitOracleTrustableReef.json +1 -1
- package/build/contracts/WitOracleTrustableZkSync.json +1 -1
- package/build/contracts/WitOracleTrustlessDataLib.json +1 -1
- package/build/contracts/WitOracleTrustlessDefaultV22.json +1 -1
- package/build/contracts/WitOracleTrustlessUpgradableDefault.json +1 -1
- package/build/contracts/WitPriceFeeds.json +1 -1
- package/build/contracts/WitPriceFeedsDataLib.json +1 -1
- package/build/contracts/WitPriceFeedsLegacy.json +1 -1
- package/build/contracts/WitPriceFeedsLegacyDataLib.json +1 -1
- package/build/contracts/WitPriceFeedsLegacyUpgradable.json +1 -1
- package/build/contracts/WitPriceFeedsLegacyUpgradableBypass.json +1 -1
- package/build/contracts/WitPriceFeedsSolverBase.json +1 -1
- package/build/contracts/WitPriceFeedsV3.json +1 -1
- package/build/contracts/WitPriceFeedsV3Upgradable.json +1 -1
- package/build/contracts/WitPythChainlinkAggregator.json +1 -1
- package/build/contracts/WitRandomness.json +1 -1
- package/build/contracts/WitRandomnessLegacy.json +1 -1
- package/build/contracts/WitRandomnessV3.json +1 -1
- package/build/contracts/WitRngConsumer.json +1 -1
- package/build/contracts/Witnet.json +1 -1
- package/build/contracts/WitnetBuffer.json +1 -1
- package/build/contracts/WitnetCBOR.json +1 -1
- package/build/contracts/WitnetDeployer.json +1 -1
- package/build/contracts/WitnetDeployerConfluxCore.json +1 -1
- package/build/contracts/WitnetDeployerDeferred.json +1 -1
- package/build/contracts/WitnetDeployerMeter.json +1 -1
- package/build/contracts/WitnetProxy.json +1 -1
- package/build/contracts/WitnetUpgradableBase.json +1 -1
- package/dist/migrations/addresses.json +16 -1
- package/dist/migrations/constructorArgs.json +7 -0
- package/dist/src/bin/helpers.cjs +4 -4
- package/{dist/dist/migrations → migrations}/addresses.json +17 -2
- package/{dist/dist/migrations → migrations}/constructorArgs.json +8 -1
- package/migrations/settings/artifacts.js +84 -0
- package/package.json +3 -1
- package/src/bin/helpers.cjs +3 -3
|
@@ -10935,7 +10935,7 @@
|
|
|
10935
10935
|
},
|
|
10936
10936
|
"networks": {},
|
|
10937
10937
|
"schemaVersion": "3.4.16",
|
|
10938
|
-
"updatedAt": "2025-11-11T11:
|
|
10938
|
+
"updatedAt": "2025-11-11T11:57:37.720Z",
|
|
10939
10939
|
"devdoc": {
|
|
10940
10940
|
"kind": "dev",
|
|
10941
10941
|
"methods": {},
|
|
@@ -55407,7 +55407,7 @@
|
|
|
55407
55407
|
}
|
|
55408
55408
|
},
|
|
55409
55409
|
"schemaVersion": "3.4.16",
|
|
55410
|
-
"updatedAt": "2025-11-11T11:
|
|
55410
|
+
"updatedAt": "2025-11-11T11:57:37.109Z",
|
|
55411
55411
|
"devdoc": {
|
|
55412
55412
|
"author": "The Witnet Foundation.",
|
|
55413
55413
|
"details": "Protection against race-condition and malleability attacks requires randomness queried to this contract to be solved is an asynchronous way, meaning that after some randomness is requested, the result provided from the Wit/Oracle sidechain won't be ready until a certain amount of EVM blocks have elapsed. This protection also implies that eventually failing randomness requests on the Wit/Oracle sidechain cannot be retried but from this very same contract. Failing randomness requests will get all automatically and unbiasedly solved as soon as some new randomness request gets solved, even if paid by a different requester. Querying for new randomness requires paying a fee in native EVM gas currency, as to cover the implicit cost of solving unmalleable randomness on the Wit/Oracle sidechain and report it back to the EVM storage. The actual randomize fee depends on the expected gas price to pay for the EVM transaction that would eventually include a call to any of the `randomize(..)` methods of this contract. The randomize fee can be computed by passing the expected gas price value to the `estimateRandomizeFee(uint256)` method. > Note [1]: On highly volatile gas price markets, especially on some Layer-2 EVM chains, is highly recommended to estimate the randomize fee before a `randomize()` call, and pass a fresh EVM gas price value. Otherwise the call to `randomize()` could potentially revert with either \"insufficient reward\" or \"too much reward\". > Note [2]: Contracts requiring some external entity to report Witnet-certified randomness only when required, would need to implement the `IWitRandomnessConsumer`. The external entity would then have to clone the public-domain address, attach it to the consumer contract address, and get the `randomize()` function called on the cloned instance as many times as required.",
|
|
@@ -45754,7 +45754,7 @@
|
|
|
45754
45754
|
},
|
|
45755
45755
|
"networks": {},
|
|
45756
45756
|
"schemaVersion": "3.4.16",
|
|
45757
|
-
"updatedAt": "2025-11-11T11:
|
|
45757
|
+
"updatedAt": "2025-11-11T11:57:37.687Z",
|
|
45758
45758
|
"devdoc": {
|
|
45759
45759
|
"kind": "dev",
|
|
45760
45760
|
"methods": {},
|
|
@@ -27294,7 +27294,7 @@
|
|
|
27294
27294
|
},
|
|
27295
27295
|
"networks": {},
|
|
27296
27296
|
"schemaVersion": "3.4.16",
|
|
27297
|
-
"updatedAt": "2025-11-11T11:
|
|
27297
|
+
"updatedAt": "2025-11-11T11:57:37.702Z",
|
|
27298
27298
|
"devdoc": {
|
|
27299
27299
|
"author": "The Witnet Foundation.",
|
|
27300
27300
|
"details": "`uint32` is used here for `cursor` because `uint16` would only enable seeking up to 8KB, which could in some theoretical use cases be exceeded. Conversely, `uint32` supports up to 512MB, which cannot credibly be exceeded.",
|
|
@@ -19387,7 +19387,7 @@
|
|
|
19387
19387
|
},
|
|
19388
19388
|
"networks": {},
|
|
19389
19389
|
"schemaVersion": "3.4.16",
|
|
19390
|
-
"updatedAt": "2025-11-11T11:
|
|
19390
|
+
"updatedAt": "2025-11-11T11:57:37.713Z",
|
|
19391
19391
|
"devdoc": {
|
|
19392
19392
|
"author": "The Witnet Foundation.",
|
|
19393
19393
|
"details": "Most of the logic has been borrowed from Patrick Gansterer’s cbor.js library: https://github.com/paroga/cbor-js",
|
|
@@ -6367,7 +6367,7 @@
|
|
|
6367
6367
|
},
|
|
6368
6368
|
"networks": {},
|
|
6369
6369
|
"schemaVersion": "3.4.16",
|
|
6370
|
-
"updatedAt": "2025-11-11T11:
|
|
6370
|
+
"updatedAt": "2025-11-11T11:57:37.125Z",
|
|
6371
6371
|
"devdoc": {
|
|
6372
6372
|
"author": "Guillermo Díaz <guillermo@witnet.io>",
|
|
6373
6373
|
"kind": "dev",
|
|
@@ -7803,7 +7803,7 @@
|
|
|
7803
7803
|
},
|
|
7804
7804
|
"networks": {},
|
|
7805
7805
|
"schemaVersion": "3.4.16",
|
|
7806
|
-
"updatedAt": "2025-11-11T11:
|
|
7806
|
+
"updatedAt": "2025-11-11T11:57:37.128Z",
|
|
7807
7807
|
"devdoc": {
|
|
7808
7808
|
"author": "Guillermo Díaz <guillermo@witnet.io>",
|
|
7809
7809
|
"details": "To be used on EVM chains where contract deployment takes place in a deferred way: - after the deployment tx gets mined, and not while it gets executed.",
|
|
@@ -5637,7 +5637,7 @@
|
|
|
5637
5637
|
},
|
|
5638
5638
|
"networks": {},
|
|
5639
5639
|
"schemaVersion": "3.4.16",
|
|
5640
|
-
"updatedAt": "2025-11-11T11:
|
|
5640
|
+
"updatedAt": "2025-11-11T11:57:37.131Z",
|
|
5641
5641
|
"devdoc": {
|
|
5642
5642
|
"author": "Guillermo Díaz <guillermo@witnet.io>",
|
|
5643
5643
|
"kind": "dev",
|
|
@@ -433,7 +433,22 @@
|
|
|
433
433
|
}
|
|
434
434
|
},
|
|
435
435
|
"scroll:mainnet": {},
|
|
436
|
-
"scroll:sepolia": {
|
|
436
|
+
"scroll:sepolia": {
|
|
437
|
+
"libs": {
|
|
438
|
+
"WitOracleDataLib": "0xA1276094aB5450Cd14bC5a7ed7901Ff2020d0740",
|
|
439
|
+
"WitOracleRadonEncodingLib": "0x8fbBf7445E8bC8d7400107613d59163476d1f2e2",
|
|
440
|
+
"WitOracleResultStatusLib": "0x59526A531c29c6DEb7C008e45A111e2cEd7BE815",
|
|
441
|
+
"WitPriceFeedsDataLib": "0x1c19cc594887B3423f24601cA618Fe545eCD1D95",
|
|
442
|
+
"WitPriceFeedsLegacyDataLib": "0xca7e9D37088e5438AE4C221f3639F480681f5A14"
|
|
443
|
+
},
|
|
444
|
+
"core": {
|
|
445
|
+
"WitOracleRadonRegistryUpgradableNoSha256": "0xdCf6e46133805Fcea966ED48470A3C67D88e79A3",
|
|
446
|
+
"WitOracleTrustableDefault": "0x1a4d67C29a56f0b08a9e987E45F2750EE44d3322"
|
|
447
|
+
},
|
|
448
|
+
"apps": {
|
|
449
|
+
"WitPriceFeedsLegacyUpgradable": "0x9D37FF6CF956F1E66143517CC6619474A54CfB95"
|
|
450
|
+
}
|
|
451
|
+
},
|
|
437
452
|
"ultron:mainnet": {},
|
|
438
453
|
"ultron:testnet": {},
|
|
439
454
|
"unichain:sepolia": {
|
|
@@ -306,5 +306,12 @@
|
|
|
306
306
|
"WitOracleRadonRegistryUpgradableDefault": "{\"types\":[\"bytes32\",\"bool\"],\"values\":[\"0x322e322e382d666462376631652d333964323732380000000000000000000000\",true]}",
|
|
307
307
|
"WitOracleTrustableDefault": "{\"types\":[\"(uint32, uint32, uint32, uint32)\",\"address\",\"bytes32\"],\"values\":[[58282,65273,69546,20000],\"0x000B61Fe075F545fd37767f40391658275900000\",\"0x322e322e392d346262313232312d643566363836340000000000000000000000\"]}",
|
|
308
308
|
"WitPriceFeedsLegacyUpgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x322e322e382d666462376631652d623239643930350000000000000000000000\",true]}"
|
|
309
|
+
},
|
|
310
|
+
"scroll:sepolia": {
|
|
311
|
+
"WitOracleRadonRequestFactoryUpgradableDefault": "{\"types\":[\"address\",\"address\",\"bytes32\",\"bool\"],\"values\":[\"0xffC4147d7b973B1766FB335bC847C7288c4365ff\",\"0xFF5ad05D038fcc04354B2fca1fb657eA345594FF\",\"0x332e302e362d346364356138302d326665396137610000000000000000000000\",true]}",
|
|
312
|
+
"WitOracleRadonRegistryUpgradableNoSha256": "{\"types\":[\"bytes32\",\"bool\"],\"values\":[\"0x332e302e362d346364356138302d366231383331330000000000000000000000\",true]}",
|
|
313
|
+
"WitOracleTrustableDefault": "{\"types\":[\"(uint32, uint32, uint32, uint32)\",\"address\",\"bytes32\"],\"values\":[[58282,65273,69546,20000],\"0x000B61Fe075F545fd37767f40391658275900000\",\"0x332e302e362d346364356138302d613335646266370000000000000000000000\"]}",
|
|
314
|
+
"WitPriceFeedsLegacyUpgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x332e302e362d346364356138302d386361376362620000000000000000000000\",true]}",
|
|
315
|
+
"WitPriceFeedsV3Upgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x332e302e362d346364356138302d666337656138620000000000000000000000\",true]}"
|
|
309
316
|
}
|
|
310
317
|
}
|
package/dist/src/bin/helpers.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const fs = require("node:fs");
|
|
3
3
|
const merge = require("lodash.merge");
|
|
4
|
-
const addresses = require("../../
|
|
5
|
-
const artifacts = require("../../
|
|
6
|
-
const constructorArgs = require("../../
|
|
4
|
+
const addresses = require("../../migrations/addresses.json");
|
|
5
|
+
const artifacts = require("../../migrations/settings/artifacts.js").default;
|
|
6
|
+
const constructorArgs = require("../../migrations/constructorArgs.json");
|
|
7
7
|
const DEFAULT_BATCH_SIZE = 64;
|
|
8
8
|
const DEFAULT_LIMIT = 64;
|
|
9
9
|
const DEFAULT_SINCE = -5000;
|
|
@@ -347,4 +347,4 @@ module.exports = {
|
|
|
347
347
|
colorstrip,
|
|
348
348
|
prompter,
|
|
349
349
|
};
|
|
350
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5janMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmluL2hlbHBlcnMuY2pzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDN0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRXJDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0FBQ2pFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUNoRixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsNENBQTRDLENBQUMsQ0FBQTtBQUU3RSxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtBQUM3QixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUE7QUFDeEIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUE7QUFDM0IsTUFBTSw0QkFBNEIsR0FDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsSUFBSSwyQkFBMkIsQ0FBQTtBQUV4RSxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUV0RSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUc7SUFDZCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTO0lBQ3RDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsV0FBVyxHQUFHLFNBQVM7SUFDdEMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUztJQUN0QyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTO0lBQ3ZDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsYUFBYSxHQUFHLFNBQVM7SUFDM0MsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUztJQUNyQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTO0lBQ3hDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsYUFBYSxHQUFHLFNBQVM7SUFDekMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUztJQUN6QyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsR0FBRyxTQUFTO0lBQ3pDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsYUFBYSxHQUFHLFNBQVM7SUFDMUMsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUztJQUM1QyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGVBQWUsR0FBRyxTQUFTO0lBQzVDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsYUFBYSxHQUFHLFNBQVM7SUFDM0MsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsU0FBUztJQUN2QyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTO0lBQ3ZDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsV0FBVyxHQUFHLFNBQVM7SUFDeEMsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLEdBQUcsU0FBUztJQUM1QyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTO0lBQ3RDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsV0FBVyxHQUFHLFNBQVM7Q0FDekMsQ0FBQTtBQUVELE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDMUIsR0FBRyxDQUFDLE9BQU8sQ0FDViw2RUFBNkUsRUFDN0UsRUFBRSxDQUNGLENBQUE7QUFFRixNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFO0lBQ3pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNuRCxNQUFNLE1BQU0sR0FDWCxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNyRCxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ25FLE9BQU8sTUFBTSxDQUFBO0FBQ2QsQ0FBQyxDQUFBO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFJO0lBQzdCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNsQixPQUFPO1FBQ04sSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3BCLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDMUIsT0FBTyxLQUFLLENBQUE7WUFDYixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsT0FBTyxJQUFJLENBQUE7WUFDWixDQUFDO1FBQ0YsQ0FBQyxDQUFDO1FBQ0YsT0FBTztLQUNQLENBQUE7QUFDRixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsS0FBSztJQUN4QyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7SUFDbEIsSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMxQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUE7WUFDdkMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUE7Z0JBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3RCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQTtJQUNILENBQUM7SUFDRCxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUM3QixDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsT0FBTztJQUM1QyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7SUFDbEIsSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDekMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzFELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO29CQUNyQixPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFBO2dCQUM1QixDQUFDO3FCQUFNLENBQUM7b0JBQ1AsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUE7b0JBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO2dCQUN0QixDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQzdCLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxFQUFFO0lBQ3hCLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQTtJQUNuQixLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFBRSxTQUFRO1FBQ25DLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNqRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdkMsS0FBSyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFBRSxTQUFRO2dCQUMzQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdEMsQ0FBQztRQUNGLENBQUM7YUFBTSxDQUFDO1lBQ1AsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNwQixDQUFDO0lBQ0YsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFBO0FBQ2hCLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLE9BQU87SUFDbkMsSUFBSSxHQUFHLEdBQUcsU0FBUyxFQUFFLE9BQU8sQ0FBQTtJQUM1Qix3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNqRCxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDLENBQUMsQ0FBQTtJQUNGLE9BQU8sS0FBSyxDQUNYLEdBQUcsRUFDSCxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsNEJBQTRCLG9CQUFvQixDQUFDO1FBQ2pFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyw0QkFBNEIsb0JBQW9CLENBQUMsQ0FDNUQsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUNyQjtRQUNGLENBQUMsQ0FBQyxFQUFFLENBQ0wsQ0FBQTtBQUNGLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLE9BQU87SUFDbkMsSUFBSSxHQUFHLEdBQUcsU0FBUyxFQUFFLE9BQU8sQ0FBQTtJQUM1Qix3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNqRCxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNqQyxDQUFDLENBQUMsQ0FBQTtJQUNGLE9BQU8sR0FBRyxDQUFBO0FBQ1gsQ0FBQztBQUVELFNBQVMseUJBQXlCLENBQUMsT0FBTztJQUN6QyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7SUFDWix3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNqRCxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUN2QyxDQUFDLENBQUMsQ0FBQTtJQUNGLE9BQU8sR0FBRyxDQUFBO0FBQ1gsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsT0FBTztJQUN4QyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQTtJQUN6RCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUE7SUFDZixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ1osQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsT0FBTztJQUNqQyxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ25FLE9BQU8sbUJBQW1CO1FBQ3pCLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyw0QkFBNEIsWUFBWSxDQUFDO1FBQzFELENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLDRCQUE0QixZQUFZLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ1YsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLEdBQUc7SUFDckIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDMUQsSUFBSSxFQUFFLEdBQUcsRUFBRTtZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7YUFDakIsSUFBSSxFQUFFLEdBQUcsRUFBRTtZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7O1lBQ3RCLE9BQU8sQ0FBQyxDQUFBO0lBQ2QsQ0FBQyxDQUFDLENBQUE7SUFDRixJQUFJLENBQUMsQ0FBQTtJQUNMLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQTtJQUNoQixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3BCLENBQUM7SUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNsQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQTtBQUNYLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxPQUFPO0lBQ3hCLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ1QsT0FBTyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNqQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDcEMsQ0FBQyxFQUFFLENBQUE7UUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDUCxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ0osT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDOUIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3RCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzVCLE9BQU8sTUFBTSxDQUFBO0lBQ2QsQ0FBQyxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxHQUFHLFNBQVM7SUFDeEMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN4QixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDckIsTUFBTSxRQUFRLEdBQUcsWUFBWSxHQUFHLE9BQU8sQ0FBQTtRQUN2QyxPQUFPO1lBQ04sR0FBRztZQUNILEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3BFLENBQUE7SUFDRixDQUFDLENBQUMsQ0FDRixDQUFBO0FBQ0YsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBSTtJQUNoQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDM0MsTUFBTSxRQUFRLEdBQUcsWUFBWSxHQUFHLE9BQU8sQ0FBQTtRQUN2QyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUM5RCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDOUQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDMUUsQ0FBQyxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxTQUFTO0lBQ25DLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtJQUN6RSxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQzFCLElBQUksRUFBRTtTQUNOLE1BQU0sQ0FDTixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ1gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUM1RDtTQUNBLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2hCLE9BQU87WUFDTixPQUFPO1lBQ1A7Z0JBQ0MsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLElBQUksS0FBSztnQkFDNUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVO2dCQUN4QyxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUk7Z0JBQzVCLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxJQUFJLEtBQUs7Z0JBQzFDLFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVc7YUFDaEQ7U0FDRCxDQUFBO0lBQ0YsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtBQUNGLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxPQUFPO0lBQy9CLE9BQU8sT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO0FBQy9FLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEVBQUU7SUFDN0QsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekQsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzdDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQzFELENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTztJQUNuQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDN0MsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQ3BDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUM1QixNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzdCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN4RCxJQUFJLENBQUMsT0FBTztRQUFFLE9BQU8sR0FBRyxFQUFFLENBQUE7SUFDMUIsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUE7SUFDcEMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMxRSxNQUFNLGNBQWMsR0FBRyxPQUFPLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQTtJQUNwRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQzVDLE9BQU8sQ0FBQyxNQUFNO1FBQ2IsT0FBTyxFQUFFLE1BQU07WUFDZixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUMzQixJQUFJLFFBQVEsR0FBRyxTQUFTLENBQ3ZCLE1BQU0sQ0FBQyxHQUFHLENBQ1QsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNULFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQ2hFLENBQ0QsQ0FBQTtnQkFDRCxJQUFJLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNqQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsUUFBUSxFQUNSLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQy9ELENBQUE7Z0JBQ0YsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFBO1lBQzFDLENBQUMsQ0FBQyxDQUFBO0lBQ0gsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNyRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3BELElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDNUQsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQTtZQUNoRCxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFBO1FBQ3pFLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwRCxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUNqRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQTtRQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdEIsSUFBSSxLQUFLLENBQUE7WUFDVCxJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxQixLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUMxQixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsS0FBSztvQkFDSixPQUFPLElBQUksS0FBSyxRQUFRO3dCQUN2QixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7d0JBQ2QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsbUJBQW1COzRCQUM1RCxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU07NEJBQ2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDZCxDQUFDO1lBQ0QsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM5QyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3JELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN6QixDQUFDO2dCQUNELElBQUksSUFBSSxLQUFLLENBQUE7WUFDZCxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQTtZQUMxQyxJQUFJLE9BQU8sRUFBRSxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDM0QsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFBO1lBQ3JFLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUE7WUFDckUsQ0FBQztZQUNELElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxDQUFBO1FBQ3JCLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUNELFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ2pFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDckQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNsQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLO0lBQzVDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzVCLElBQUksS0FBSztRQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RDLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2pELElBQUksRUFBRSxHQUFHLENBQUM7WUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQzNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzlELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNoQixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGFBQWE7SUFDYixNQUFNO0lBQ04sTUFBTTtJQUNOLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLGFBQWE7SUFDYixTQUFTO0lBQ1QsU0FBUztJQUNULFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsTUFBTTtJQUNOLFVBQVU7SUFDVixRQUFRO0NBQ1IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGZzID0gcmVxdWlyZShcIm5vZGU6ZnNcIilcbmNvbnN0IG1lcmdlID0gcmVxdWlyZShcImxvZGFzaC5tZXJnZVwiKVxuXG5jb25zdCBhZGRyZXNzZXMgPSByZXF1aXJlKFwiLi4vLi4vZGlzdC9taWdyYXRpb25zL2FkZHJlc3Nlcy5qc29uXCIpXG5jb25zdCBhcnRpZmFjdHMgPSByZXF1aXJlKFwiLi4vLi4vZGlzdC9taWdyYXRpb25zL3NldHRpbmdzL2FydGlmYWN0cy5qc1wiKS5kZWZhdWx0XG5jb25zdCBjb25zdHJ1Y3RvckFyZ3MgPSByZXF1aXJlKFwiLi4vLi4vZGlzdC9taWdyYXRpb25zL2NvbnN0cnVjdG9yQXJncy5qc29uXCIpXG5cbmNvbnN0IERFRkFVTFRfQkFUQ0hfU0laRSA9IDY0XG5jb25zdCBERUZBVUxUX0xJTUlUID0gNjRcbmNvbnN0IERFRkFVTFRfU0lOQ0UgPSAtNTAwMFxuY29uc3QgV0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSCA9XG5cdHByb2Nlc3MuZW52LldJVE5FVF9TREtfUkFET05fQVNTRVRTX1BBVEggfHwgXCIuLi8uLi8uLi8uLi93aXRuZXQvYXNzZXRzXCJcblxuY29uc3QgaXNNb2R1bGVJbml0aWFsaXplZCA9IGZzLmV4aXN0c1N5bmMoXCIuL3dpdG5ldC9hc3NldHMvaW5kZXguY2pzXCIpXG5cbmZ1bmN0aW9uKiBjaHVua3MoYXJyLCBuKSB7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBuKSB7XG5cdFx0eWllbGQgYXJyLnNsaWNlKGksIGkgKyBuKVxuXHR9XG59XG5cbmNvbnN0IGNvbG9ycyA9IHtcblx0Ymx1ZTogKHN0cikgPT4gYFxceDFiWzM0bSR7c3RyfVxceDFiWzBtYCxcblx0Y3lhbjogKHN0cikgPT4gYFxceDFiWzM2bSR7c3RyfVxceDFiWzBtYCxcblx0Z3JheTogKHN0cikgPT4gYFxceDFiWzkwbSR7c3RyfVxceDFiWzBtYCxcblx0Z3JlZW46IChzdHIpID0+IGBcXHgxYlszMm0ke3N0cn1cXHgxYlswbWAsXG5cdG1hZ2VudGE6IChzdHIpID0+IGBcXHgxYlswOzM1bSR7c3RyfVxceDFiWzBtYCxcblx0cmVkOiAoc3RyKSA9PiBgXFx4MWJbMzFtJHtzdHJ9XFx4MWJbMG1gLFxuXHR5ZWxsb3c6IChzdHIpID0+IGBcXHgxYlszM20ke3N0cn1cXHgxYlswbWAsXG5cdHdoaXRlOiAoc3RyKSA9PiBgXFx4MWJbMDszOG0ke3N0cn1cXHgxYlswbWAsXG5cdGxibHVlOiAoc3RyKSA9PiBgXFx4MWJbMTs5NG0ke3N0cn1cXHgxYlswbWAsXG5cdGxjeWFuOiAoc3RyKSA9PiBgXFx4MWJbMTs5Nm0ke3N0cn1cXHgxYlswbWAsXG5cdGxncmVlbjogKHN0cikgPT4gYFxceDFiWzE7OTJtJHtzdHJ9XFx4MWJbMG1gLFxuXHRsbWFnZW50YTogKHN0cikgPT4gYFxceDFiWzE7OTVtJHtzdHJ9XFx4MWJbMG1gLFxuXHRsd2hpdGU6IChzdHIpID0+IGBcXHgxYlswOzE7OThtJHtzdHJ9XFx4MWJbMG1gLFxuXHRseWVsbG93OiAoc3RyKSA9PiBgXFx4MWJbMTs5M20ke3N0cn1cXHgxYlswbWAsXG5cdG1ibHVlOiAoc3RyKSA9PiBgXFx4MWJbOTRtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtY3lhbjogKHN0cikgPT4gYFxceDFiWzk2bSR7c3RyfVxceDFiWzBtYCxcblx0bWdyZWVuOiAoc3RyKSA9PiBgXFx4MWJbOTJtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtbWFnZW50YTogKHN0cikgPT4gYFxceDFiWzA7OTVtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtcmVkOiAoc3RyKSA9PiBgXFx4MWJbOTFtJHtzdHJ9XFx4MWJbMG1gLFxuXHRteWVsbG93OiAoc3RyKSA9PiBgXFx4MWJbOTNtJHtzdHJ9XFx4MWJbMG1gLFxufVxuXG5jb25zdCBjb2xvcnN0cmlwID0gKHN0cikgPT5cblx0c3RyLnJlcGxhY2UoXG5cdFx0L1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZyxcblx0XHRcIlwiLFxuXHQpXG5cbmNvbnN0IGNvbW1hcyA9IChudW1iZXIpID0+IHtcblx0Y29uc3QgcGFydHMgPSBudW1iZXI/LnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpIHx8IFtcIlwiXVxuXHRjb25zdCByZXN1bHQgPVxuXHRcdHBhcnRzLmxlbmd0aCA8PSAxXG5cdFx0XHQ/IGAke3BhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKX1gXG5cdFx0XHQ6IGAke3BhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKX0uJHtwYXJ0c1sxXX1gXG5cdHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gZGVsZXRlRXh0cmFGbGFncyhhcmdzKSB7XG5cdGNvbnN0IGRlbGV0ZWQgPSBbXVxuXHRyZXR1cm4gW1xuXHRcdGFyZ3M/LmZpbHRlcigoYXJnKSA9PiB7XG5cdFx0XHRpZiAoYXJnLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuXHRcdFx0XHRkZWxldGVkLnB1c2goYXJnLnNsaWNlKDIpKVxuXHRcdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0cnVlXG5cdFx0XHR9XG5cdFx0fSksXG5cdFx0ZGVsZXRlZCxcblx0XVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RmxhZ3NGcm9tQXJncyhhcmdzLCBmbGFncykge1xuXHRjb25zdCBjdXJhdGVkID0ge31cblx0aWYgKGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSAmJiBmbGFncykge1xuXHRcdGZsYWdzLmZvckVhY2goKGZsYWcpID0+IHtcblx0XHRcdGNvbnN0IGluZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7ZmxhZ31gKVxuXHRcdFx0aWYgKGluZGV4ID49IDApIHtcblx0XHRcdFx0Y3VyYXRlZFtmbGFnXSA9IHRydWVcblx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXHRyZXR1cm4gW2FyZ3MgfHwgW10sIGN1cmF0ZWRdXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RPcHRpb25zRnJvbUFyZ3MoYXJncywgb3B0aW9ucykge1xuXHRjb25zdCBjdXJhdGVkID0ge31cblx0aWYgKGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSAmJiBvcHRpb25zKSB7XG5cdFx0b3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcblx0XHRcdGNvbnN0IGluZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7b3B0aW9ufWApXG5cdFx0XHRpZiAoaW5kZXggPj0gMCkge1xuXHRcdFx0XHRjdXJhdGVkW29wdGlvbl0gPSBhcmdzW2luZGV4XVxuXHRcdFx0XHRpZiAoIWFyZ3NbaW5kZXggKyAxXSB8fCBhcmdzW2luZGV4ICsgMV0uc3RhcnRzV2l0aChcIi0tXCIpKSB7XG5cdFx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHRcdFx0Y3VyYXRlZFtvcHRpb25dID0gdW5kZWZpbmVkXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y3VyYXRlZFtvcHRpb25dID0gYXJnc1tpbmRleCArIDFdXG5cdFx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDIpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHJldHVybiBbYXJncyB8fCBbXSwgY3VyYXRlZF1cbn1cblxuZnVuY3Rpb24gZmxhdHRlbk9iamVjdChvYikge1xuXHRjb25zdCB0b1JldHVybiA9IHt9XG5cdGZvciAoY29uc3QgaSBpbiBvYikge1xuXHRcdGlmICghT2JqZWN0Lmhhc093bihvYiwgaSkpIGNvbnRpbnVlXG5cdFx0aWYgKHR5cGVvZiBvYltpXSA9PT0gXCJvYmplY3RcIiAmJiBvYltpXSAhPT0gbnVsbCkge1xuXHRcdFx0Y29uc3QgZmxhdE9iamVjdCA9IGZsYXR0ZW5PYmplY3Qob2JbaV0pXG5cdFx0XHRmb3IgKGNvbnN0IHggaW4gZmxhdE9iamVjdCkge1xuXHRcdFx0XHRpZiAoIU9iamVjdC5oYXNPd24oZmxhdE9iamVjdCwgeCkpIGNvbnRpbnVlXG5cdFx0XHRcdHRvUmV0dXJuW2Ake2l9LiR7eH1gXSA9IGZsYXRPYmplY3RbeF1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dG9SZXR1cm5baV0gPSBvYltpXVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gdG9SZXR1cm5cbn1cblxuZnVuY3Rpb24gZ2V0TmV0d29ya0FkZHJlc3NlcyhuZXR3b3JrKSB7XG5cdGxldCByZXMgPSBhZGRyZXNzZXM/LmRlZmF1bHRcblx0Z2V0TmV0d29ya1RhZ3NGcm9tU3RyaW5nKG5ldHdvcmspLmZvckVhY2goKG5ldCkgPT4ge1xuXHRcdHJlcyA9IG1lcmdlKHJlcywgYWRkcmVzc2VzW25ldF0pXG5cdH0pXG5cdHJldHVybiBtZXJnZShcblx0XHRyZXMsXG5cdFx0ZnMuZXhpc3RzU3luYyhgJHtXSVRORVRfU0RLX1JBRE9OX0FTU0VUU19QQVRIfS8uLi9hZGRyZXNzZXMuanNvbmApXG5cdFx0XHQ/IHJlcXVpcmUoYCR7V0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSH0vLi4vYWRkcmVzc2VzLmpzb25gKVtcblx0XHRcdFx0XHRuZXR3b3JrLnRvTG93ZXJDYXNlKClcblx0XHRcdFx0XVxuXHRcdFx0OiB7fSxcblx0KVxufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrQXJ0aWZhY3RzKG5ldHdvcmspIHtcblx0bGV0IHJlcyA9IGFydGlmYWN0cz8uZGVmYXVsdFxuXHRnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcobmV0d29yaykuZm9yRWFjaCgobmV0KSA9PiB7XG5cdFx0cmVzID0gbWVyZ2UocmVzLCBhcnRpZmFjdHNbbmV0XSlcblx0fSlcblx0cmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrQ29uc3RydWN0b3JBcmdzKG5ldHdvcmspIHtcblx0bGV0IHJlcyA9IHt9XG5cdGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKS5mb3JFYWNoKChuZXQpID0+IHtcblx0XHRyZXMgPSBtZXJnZShyZXMsIGNvbnN0cnVjdG9yQXJnc1tuZXRdKVxuXHR9KVxuXHRyZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKSB7XG5cdG5ldHdvcmsgPSBuZXR3b3JrID8gbmV0d29yay50b0xvd2VyQ2FzZSgpIDogXCJkZXZlbG9wbWVudFwiXG5cdGNvbnN0IHRhZ3MgPSBbXVxuXHRjb25zdCBwYXJ0cyA9IG5ldHdvcmsuc3BsaXQoXCI6XCIpXG5cdGZvciAobGV0IGl4ID0gMDsgaXggPCBwYXJ0cy5sZW5ndGg7IGl4KyspIHtcblx0XHR0YWdzLnB1c2gocGFydHMuc2xpY2UoMCwgaXggKyAxKS5qb2luKFwiOlwiKSlcblx0fVxuXHRyZXR1cm4gdGFnc1xufVxuXG5mdW5jdGlvbiBpbXBvcnRSYWRvbkFzc2V0cyhvcHRpb25zKSB7XG5cdGNvbnN0IGFzc2V0cyA9IG9wdGlvbnM/LmxlZ2FjeSA/IHt9IDogcmVxdWlyZShcIkB3aXRuZXQvc2RrL2Fzc2V0c1wiKVxuXHRyZXR1cm4gaXNNb2R1bGVJbml0aWFsaXplZCAmJlxuXHRcdGZzLmV4aXN0c1N5bmMoYCR7V0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSH0vaW5kZXguY2pzYClcblx0XHQ/IG1lcmdlKGFzc2V0cywgcmVxdWlyZShgJHtXSVRORVRfU0RLX1JBRE9OX0FTU0VUU19QQVRIfS9pbmRleC5janNgKSlcblx0XHQ6IGFzc2V0c1xufVxuXG5mdW5jdGlvbiBvcmRlcktleXMob2JqKSB7XG5cdGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopLnNvcnQoZnVuY3Rpb24ga2V5T3JkZXIoazEsIGsyKSB7XG5cdFx0aWYgKGsxIDwgazIpIHJldHVybiAtMVxuXHRcdGVsc2UgaWYgKGsxID4gazIpIHJldHVybiArMVxuXHRcdGVsc2UgcmV0dXJuIDBcblx0fSlcblx0bGV0IGlcblx0Y29uc3QgYWZ0ZXIgPSB7fVxuXHRmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuXHRcdGFmdGVyW2tleXNbaV1dID0gb2JqW2tleXNbaV1dXG5cdFx0ZGVsZXRlIG9ialtrZXlzW2ldXVxuXHR9XG5cdGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG5cdFx0b2JqW2tleXNbaV1dID0gYWZ0ZXJba2V5c1tpXV1cblx0fVxuXHRyZXR1cm4gb2JqXG59XG5cbmZ1bmN0aW9uIHByb21wdGVyKHByb21pc2UpIHtcblx0Y29uc3QgbG9hZGluZyA9ICgoKSA9PiB7XG5cdFx0Y29uc3QgaCA9IFtcInxcIiwgXCIvXCIsIFwiLVwiLCBcIlxcXFxcIl1cblx0XHRsZXQgaSA9IDBcblx0XHRyZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aSA9IGkgPiAzID8gMCA6IGlcblx0XHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBcXGJcXGIke2hbaV19IGApXG5cdFx0XHRpKytcblx0XHR9LCA1MClcblx0fSkoKVxuXHRyZXR1cm4gcHJvbWlzZS50aGVuKChyZXN1bHQpID0+IHtcblx0XHRjbGVhckludGVydmFsKGxvYWRpbmcpXG5cdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoXCJcXGJcXGJcIilcblx0XHRyZXR1cm4gcmVzdWx0XG5cdH0pXG59XG5cbmZ1bmN0aW9uIHJlYWRXaXRuZXRKc29uRmlsZXMoLi4uZmlsZW5hbWVzKSB7XG5cdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0ZmlsZW5hbWVzLm1hcCgoa2V5KSA9PiB7XG5cdFx0XHRjb25zdCBmaWxlcGF0aCA9IGAuL3dpdG5ldC8ke2tleX0uanNvbmBcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdGtleSxcblx0XHRcdFx0ZnMuZXhpc3RzU3luYyhmaWxlcGF0aCkgPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlcGF0aCkpIDoge30sXG5cdFx0XHRdXG5cdFx0fSksXG5cdClcbn1cblxuZnVuY3Rpb24gc2F2ZVdpdG5ldEpzb25GaWxlcyhkYXRhKSB7XG5cdE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIG9ial0pID0+IHtcblx0XHRjb25zdCBmaWxlcGF0aCA9IGAuL3dpdG5ldC8ke2tleX0uanNvbmBcblx0XHRpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZXBhdGgpKSBmcy53cml0ZUZpbGVTeW5jKGZpbGVwYXRoLCBcInt9XCIpXG5cdFx0Y29uc3QganNvbiA9IG1lcmdlKEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVwYXRoKSksIG9iailcblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVwYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCA0KSwgeyBmbGFnOiBcIncrXCIgfSlcblx0fSlcbn1cblxuZnVuY3Rpb24gc3VwcG9ydGVkTmV0d29ya3MoZWNvc3lzdGVtKSB7XG5cdGNvbnN0IG5ldHdvcmtzID0gcmVxdWlyZShcIi4uLy4uL21pZ3JhdGlvbnMvc2V0dGluZ3MvbmV0d29ya3MuanNcIikuZGVmYXVsdFxuXHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdE9iamVjdC5rZXlzKGNvbnN0cnVjdG9yQXJncylcblx0XHRcdC5zb3J0KClcblx0XHRcdC5maWx0ZXIoXG5cdFx0XHRcdChuZXR3b3JrKSA9PlxuXHRcdFx0XHRcdG5ldHdvcmsuaW5kZXhPZihcIjpcIikgPj0gMCAmJlxuXHRcdFx0XHRcdCghZWNvc3lzdGVtIHx8IG5ldHdvcmsuc3RhcnRzV2l0aChlY29zeXN0ZW0udG9Mb3dlckNhc2UoKSkpLFxuXHRcdFx0KVxuXHRcdFx0Lm1hcCgobmV0d29yaykgPT4ge1xuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdG5ldHdvcmssXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bWFpbm5ldDogbmV0d29ya3NbbmV0d29ya10/Lm1haW5uZXQgfHwgZmFsc2UsXG5cdFx0XHRcdFx0XHRuZXR3b3JrX2lkOiBuZXR3b3Jrc1tuZXR3b3JrXS5uZXR3b3JrX2lkLFxuXHRcdFx0XHRcdFx0cG9ydDogbmV0d29ya3NbbmV0d29ya10ucG9ydCxcblx0XHRcdFx0XHRcdHN5bWJvbDogbmV0d29ya3NbbmV0d29ya10/LnN5bWJvbCB8fCBcIkVUSFwiLFxuXHRcdFx0XHRcdFx0dmVyaWZpZWQ6IG5ldHdvcmtzW25ldHdvcmtdPy52ZXJpZnk/LmV4cGxvcmVyVXJsLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdF1cblx0XHRcdH0pLFxuXHQpXG59XG5cbmZ1bmN0aW9uIHN1cHBvcnRzTmV0d29yayhuZXR3b3JrKSB7XG5cdHJldHVybiBuZXR3b3JrICYmIE9iamVjdC5rZXlzKGNvbnN0cnVjdG9yQXJncykuaW5jbHVkZXMobmV0d29yay50b0xvd2VyQ2FzZSgpKVxufVxuXG5mdW5jdGlvbiB0cmFjZUhlYWRlcihoZWFkZXIsIGNvbG9yID0gY29sb3JzLndoaXRlLCBpbmRlbnQgPSBcIlwiKSB7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSM4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKX3ilIDilJBgKVxuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2NvbG9yKGhlYWRlcil9IOKUgmApXG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKX3ilIDilJhgKVxufVxuXG5mdW5jdGlvbiB0cmFjZVRhYmxlKHJlY29yZHMsIG9wdGlvbnMpIHtcblx0Y29uc3Qgc3RyaW5naWZ5ID0gKGRhdGEsIGh1bWFuaXplcnMsIGluZGV4KSA9PlxuXHRcdGh1bWFuaXplcnM/LltpbmRleF1cblx0XHRcdD8gaHVtYW5pemVyc1tpbmRleF0oZGF0YSkudG9TdHJpbmcoKVxuXHRcdFx0OiAoZGF0YT8udG9TdHJpbmcoKSA/PyBcIlwiKVxuXHRjb25zdCByZWR1Y2VNYXggPSAobnVtYmVycykgPT5cblx0XHRudW1iZXJzLnJlZHVjZSgoY3VyciwgcHJldikgPT4gTWF0aC5tYXgoY3VyciwgcHJldiksIDApXG5cdGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9XG5cdGNvbnN0IGluZGVudCA9IG9wdGlvbnM/LmluZGVudCB8fCBcIlwiXG5cdGNvbnN0IG51bUNvbHVtbnMgPSByZWR1Y2VNYXgocmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5sZW5ndGggfHwgMSkpXG5cdGNvbnN0IG1heENvbHVtbldpZHRoID0gb3B0aW9ucz8ubWF4Q29sdW1uV2lkdGggfHwgODBcblx0Y29uc3QgdGFibGUgPSB0cmFuc3Bvc2UocmVjb3JkcywgbnVtQ29sdW1ucylcblx0b3B0aW9ucy53aWR0aHMgPVxuXHRcdG9wdGlvbnM/LndpZHRocyB8fFxuXHRcdHRhYmxlLm1hcCgoY29sdW1uLCBpbmRleCkgPT4ge1xuXHRcdFx0bGV0IG1heFdpZHRoID0gcmVkdWNlTWF4KFxuXHRcdFx0XHRjb2x1bW4ubWFwKFxuXHRcdFx0XHRcdChmaWVsZCkgPT5cblx0XHRcdFx0XHRcdGNvbG9yc3RyaXAoc3RyaW5naWZ5KGZpZWxkLCBvcHRpb25zPy5odW1hbml6ZXJzLCBpbmRleCkpLmxlbmd0aCxcblx0XHRcdFx0KSxcblx0XHRcdClcblx0XHRcdGlmIChvcHRpb25zPy5oZWFkbGluZXM/LltpbmRleF0pIHtcblx0XHRcdFx0bWF4V2lkdGggPSBNYXRoLm1heChcblx0XHRcdFx0XHRtYXhXaWR0aCxcblx0XHRcdFx0XHRjb2xvcnN0cmlwKG9wdGlvbnMuaGVhZGxpbmVzW2luZGV4XS5yZXBsYWNlQWxsKFwiOlwiLCBcIlwiKSkubGVuZ3RoLFxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gTWF0aC5taW4obWF4V2lkdGgsIG1heENvbHVtbldpZHRoKVxuXHRcdH0pXG5cdGxldCBoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcCgobWF4V2lkdGgpID0+IFwi4pSAXCIucmVwZWF0KG1heFdpZHRoKSlcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilIzilIAke2hlYWRsaW5lLmpvaW4oXCLilIDilKzilIBcIil94pSA4pSQYClcblx0aWYgKG9wdGlvbnM/LmhlYWRsaW5lcykge1xuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCwgaW5kZXgpID0+IHtcblx0XHRcdGNvbnN0IGNhcHRpb24gPSBvcHRpb25zLmhlYWRsaW5lc1tpbmRleF0ucmVwbGFjZUFsbChcIjpcIiwgXCJcIilcblx0XHRcdGNvbnN0IGNhcHRpb25MZW5ndGggPSBjb2xvcnN0cmlwKGNhcHRpb24pLmxlbmd0aFxuXHRcdFx0cmV0dXJuIGAke2NvbG9ycy53aGl0ZShjYXB0aW9uKX0ke1wiIFwiLnJlcGVhdChtYXhXaWR0aCAtIGNhcHRpb25MZW5ndGgpfWBcblx0XHR9KVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSCICR7aGVhZGxpbmUuam9pbihcIiDilIIgXCIpfSDilIJgKVxuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCkgPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSc4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS84pSAXCIpfeKUgOKUpGApXG5cdH1cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IGxpbmUgPSBcIlwiXG5cdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBudW1Db2x1bW5zOyBqKyspIHtcblx0XHRcdGxldCBkYXRhID0gdGFibGVbal1baV1cblx0XHRcdGxldCBjb2xvclxuXHRcdFx0aWYgKG9wdGlvbnM/LmNvbG9ycz8uW2pdKSB7XG5cdFx0XHRcdGNvbG9yID0gb3B0aW9ucy5jb2xvcnNbal1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbG9yID1cblx0XHRcdFx0XHR0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIlxuXHRcdFx0XHRcdFx0PyBjb2xvcnMuZ3JlZW5cblx0XHRcdFx0XHRcdDogTnVtYmVyKGRhdGEpID09PSBkYXRhICYmIGRhdGEgJSAxICE9PSAwIC8vIGlzIGZsb2F0IG51bWJlcj9cblx0XHRcdFx0XHRcdFx0PyBjb2xvcnMueWVsbG93XG5cdFx0XHRcdFx0XHRcdDogKHgpID0+IHhcblx0XHRcdH1cblx0XHRcdGRhdGEgPSBzdHJpbmdpZnkoZGF0YSwgb3B0aW9ucz8uaHVtYW5pemVycywgailcblx0XHRcdGlmIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoKSB7XG5cdFx0XHRcdHdoaWxlIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoIC0gMykge1xuXHRcdFx0XHRcdGRhdGEgPSBkYXRhLnNsaWNlKDAsIC0xKVxuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGEgKz0gXCIuLi5cIlxuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZGF0YUxlbmd0aCA9IGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoXG5cdFx0XHRpZiAob3B0aW9ucz8uaGVhZGxpbmVzICYmIG9wdGlvbnMuaGVhZGxpbmVzW2pdWzBdID09PSBcIjpcIikge1xuXHRcdFx0XHRkYXRhID0gYCR7Y29sb3IoZGF0YSl9JHtcIiBcIi5yZXBlYXQob3B0aW9ucy53aWR0aHNbal0gLSBkYXRhTGVuZ3RoKX1gXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhID0gYCR7XCIgXCIucmVwZWF0KG9wdGlvbnMud2lkdGhzW2pdIC0gZGF0YUxlbmd0aCl9JHtjb2xvcihkYXRhKX1gXG5cdFx0XHR9XG5cdFx0XHRsaW5lICs9IGDilIIgJHtkYXRhfSBgXG5cdFx0fVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR9JHtsaW5lfeKUgmApXG5cdH1cblx0aGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoKSA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpXG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS04pSAXCIpfeKUgOKUmGApXG59XG5cbmZ1bmN0aW9uIHRyYW5zcG9zZShyZWNvcmRzLCBudW1Db2x1bW5zKSB7XG5cdGNvbnN0IGNvbHVtbnMgPSBbXVxuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbnVtQ29sdW1uczsgaW5kZXgrKykge1xuXHRcdGNvbHVtbnMucHVzaChyZWNvcmRzLm1hcCgocm93KSA9PiByb3dbaW5kZXhdKSlcblx0fVxuXHRyZXR1cm4gY29sdW1uc1xufVxuXG5mdW5jdGlvbiB0cmFjZURhdGEoaGVhZGVyLCBkYXRhLCB3aWR0aCwgY29sb3IpIHtcblx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoaGVhZGVyKVxuXHRpZiAoY29sb3IpIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGNvbG9yKVxuXHRmb3IgKGxldCBpeCA9IDA7IGl4IDwgZGF0YS5sZW5ndGggLyB3aWR0aDsgaXgrKykge1xuXHRcdGlmIChpeCA+IDApIHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiIFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKSlcblx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShkYXRhLnNsaWNlKHdpZHRoICogaXgsIHdpZHRoICogKGl4ICsgMSkpKVxuXHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiXFxuXCIpXG5cdH1cblx0aWYgKGNvbG9yKSBwcm9jZXNzLnN0ZG91dC53cml0ZShcIlxceDFiWzBtXCIpXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRERUZBVUxUX0JBVENIX1NJWkUsXG5cdERFRkFVTFRfTElNSVQsXG5cdERFRkFVTFRfU0lOQ0UsXG5cdGNvbG9ycyxcblx0Y2h1bmtzLFxuXHRkZWxldGVFeHRyYUZsYWdzLFxuXHRleHRyYWN0RmxhZ3NGcm9tQXJncyxcblx0ZXh0cmFjdE9wdGlvbnNGcm9tQXJncyxcblx0ZmxhdHRlbk9iamVjdCxcblx0b3JkZXJLZXlzLFxuXHR0cmFjZURhdGEsXG5cdHRyYWNlSGVhZGVyLFxuXHRnZXROZXR3b3JrQWRkcmVzc2VzLFxuXHRnZXROZXR3b3JrQXJ0aWZhY3RzLFxuXHRnZXROZXR3b3JrQ29uc3RydWN0b3JBcmdzLFxuXHRnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcsXG5cdHN1cHBvcnRlZE5ldHdvcmtzLFxuXHRzdXBwb3J0c05ldHdvcmssXG5cdGltcG9ydFJhZG9uQXNzZXRzLFxuXHRyZWFkV2l0bmV0SnNvbkZpbGVzLFxuXHRzYXZlV2l0bmV0SnNvbkZpbGVzLFxuXHR0cmFjZVRhYmxlLFxuXHRjb21tYXMsXG5cdGNvbG9yc3RyaXAsXG5cdHByb21wdGVyLFxufVxuIl19
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5janMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmluL2hlbHBlcnMuY2pzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDN0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRXJDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQzVELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUMzRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQUV4RSxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtBQUM3QixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUE7QUFDeEIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUE7QUFDM0IsTUFBTSw0QkFBNEIsR0FDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsSUFBSSwyQkFBMkIsQ0FBQTtBQUV4RSxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUV0RSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUc7SUFDZCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxTQUFTO0lBQ3RDLElBQUks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Q0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ2pFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDckQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVO0lBQ3JDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNsQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLO0lBQzVDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzVCLElBQUksS0FBSztRQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RDLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2pELElBQUksRUFBRSxHQUFHLENBQUM7WUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQzNELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzlELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNoQixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGFBQWE7SUFDYixNQUFNO0lBQ04sTUFBTTtJQUNOLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLGFBQWE7SUFDYixTQUFTO0lBQ1QsU0FBUztJQUNULFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsTUFBTTtJQUNOLFVBQVU7SUFDVixRQUFRO0NBQ1IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGZzID0gcmVxdWlyZShcIm5vZGU6ZnNcIilcbmNvbnN0IG1lcmdlID0gcmVxdWlyZShcImxvZGFzaC5tZXJnZVwiKVxuXG5jb25zdCBhZGRyZXNzZXMgPSByZXF1aXJlKFwiLi4vLi4vbWlncmF0aW9ucy9hZGRyZXNzZXMuanNvblwiKVxuY29uc3QgYXJ0aWZhY3RzID0gcmVxdWlyZShcIi4uLy4uL21pZ3JhdGlvbnMvc2V0dGluZ3MvYXJ0aWZhY3RzLmpzXCIpLmRlZmF1bHRcbmNvbnN0IGNvbnN0cnVjdG9yQXJncyA9IHJlcXVpcmUoXCIuLi8uLi9taWdyYXRpb25zL2NvbnN0cnVjdG9yQXJncy5qc29uXCIpXG5cbmNvbnN0IERFRkFVTFRfQkFUQ0hfU0laRSA9IDY0XG5jb25zdCBERUZBVUxUX0xJTUlUID0gNjRcbmNvbnN0IERFRkFVTFRfU0lOQ0UgPSAtNTAwMFxuY29uc3QgV0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSCA9XG5cdHByb2Nlc3MuZW52LldJVE5FVF9TREtfUkFET05fQVNTRVRTX1BBVEggfHwgXCIuLi8uLi8uLi8uLi93aXRuZXQvYXNzZXRzXCJcblxuY29uc3QgaXNNb2R1bGVJbml0aWFsaXplZCA9IGZzLmV4aXN0c1N5bmMoXCIuL3dpdG5ldC9hc3NldHMvaW5kZXguY2pzXCIpXG5cbmZ1bmN0aW9uKiBjaHVua3MoYXJyLCBuKSB7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBuKSB7XG5cdFx0eWllbGQgYXJyLnNsaWNlKGksIGkgKyBuKVxuXHR9XG59XG5cbmNvbnN0IGNvbG9ycyA9IHtcblx0Ymx1ZTogKHN0cikgPT4gYFxceDFiWzM0bSR7c3RyfVxceDFiWzBtYCxcblx0Y3lhbjogKHN0cikgPT4gYFxceDFiWzM2bSR7c3RyfVxceDFiWzBtYCxcblx0Z3JheTogKHN0cikgPT4gYFxceDFiWzkwbSR7c3RyfVxceDFiWzBtYCxcblx0Z3JlZW46IChzdHIpID0+IGBcXHgxYlszMm0ke3N0cn1cXHgxYlswbWAsXG5cdG1hZ2VudGE6IChzdHIpID0+IGBcXHgxYlswOzM1bSR7c3RyfVxceDFiWzBtYCxcblx0cmVkOiAoc3RyKSA9PiBgXFx4MWJbMzFtJHtzdHJ9XFx4MWJbMG1gLFxuXHR5ZWxsb3c6IChzdHIpID0+IGBcXHgxYlszM20ke3N0cn1cXHgxYlswbWAsXG5cdHdoaXRlOiAoc3RyKSA9PiBgXFx4MWJbMDszOG0ke3N0cn1cXHgxYlswbWAsXG5cdGxibHVlOiAoc3RyKSA9PiBgXFx4MWJbMTs5NG0ke3N0cn1cXHgxYlswbWAsXG5cdGxjeWFuOiAoc3RyKSA9PiBgXFx4MWJbMTs5Nm0ke3N0cn1cXHgxYlswbWAsXG5cdGxncmVlbjogKHN0cikgPT4gYFxceDFiWzE7OTJtJHtzdHJ9XFx4MWJbMG1gLFxuXHRsbWFnZW50YTogKHN0cikgPT4gYFxceDFiWzE7OTVtJHtzdHJ9XFx4MWJbMG1gLFxuXHRsd2hpdGU6IChzdHIpID0+IGBcXHgxYlswOzE7OThtJHtzdHJ9XFx4MWJbMG1gLFxuXHRseWVsbG93OiAoc3RyKSA9PiBgXFx4MWJbMTs5M20ke3N0cn1cXHgxYlswbWAsXG5cdG1ibHVlOiAoc3RyKSA9PiBgXFx4MWJbOTRtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtY3lhbjogKHN0cikgPT4gYFxceDFiWzk2bSR7c3RyfVxceDFiWzBtYCxcblx0bWdyZWVuOiAoc3RyKSA9PiBgXFx4MWJbOTJtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtbWFnZW50YTogKHN0cikgPT4gYFxceDFiWzA7OTVtJHtzdHJ9XFx4MWJbMG1gLFxuXHRtcmVkOiAoc3RyKSA9PiBgXFx4MWJbOTFtJHtzdHJ9XFx4MWJbMG1gLFxuXHRteWVsbG93OiAoc3RyKSA9PiBgXFx4MWJbOTNtJHtzdHJ9XFx4MWJbMG1gLFxufVxuXG5jb25zdCBjb2xvcnN0cmlwID0gKHN0cikgPT5cblx0c3RyLnJlcGxhY2UoXG5cdFx0L1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZyxcblx0XHRcIlwiLFxuXHQpXG5cbmNvbnN0IGNvbW1hcyA9IChudW1iZXIpID0+IHtcblx0Y29uc3QgcGFydHMgPSBudW1iZXI/LnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpIHx8IFtcIlwiXVxuXHRjb25zdCByZXN1bHQgPVxuXHRcdHBhcnRzLmxlbmd0aCA8PSAxXG5cdFx0XHQ/IGAke3BhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKX1gXG5cdFx0XHQ6IGAke3BhcnRzWzBdLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKX0uJHtwYXJ0c1sxXX1gXG5cdHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gZGVsZXRlRXh0cmFGbGFncyhhcmdzKSB7XG5cdGNvbnN0IGRlbGV0ZWQgPSBbXVxuXHRyZXR1cm4gW1xuXHRcdGFyZ3M/LmZpbHRlcigoYXJnKSA9PiB7XG5cdFx0XHRpZiAoYXJnLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuXHRcdFx0XHRkZWxldGVkLnB1c2goYXJnLnNsaWNlKDIpKVxuXHRcdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0cnVlXG5cdFx0XHR9XG5cdFx0fSksXG5cdFx0ZGVsZXRlZCxcblx0XVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RmxhZ3NGcm9tQXJncyhhcmdzLCBmbGFncykge1xuXHRjb25zdCBjdXJhdGVkID0ge31cblx0aWYgKGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSAmJiBmbGFncykge1xuXHRcdGZsYWdzLmZvckVhY2goKGZsYWcpID0+IHtcblx0XHRcdGNvbnN0IGluZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7ZmxhZ31gKVxuXHRcdFx0aWYgKGluZGV4ID49IDApIHtcblx0XHRcdFx0Y3VyYXRlZFtmbGFnXSA9IHRydWVcblx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXHRyZXR1cm4gW2FyZ3MgfHwgW10sIGN1cmF0ZWRdXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RPcHRpb25zRnJvbUFyZ3MoYXJncywgb3B0aW9ucykge1xuXHRjb25zdCBjdXJhdGVkID0ge31cblx0aWYgKGFyZ3MgJiYgQXJyYXkuaXNBcnJheShhcmdzKSAmJiBvcHRpb25zKSB7XG5cdFx0b3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcblx0XHRcdGNvbnN0IGluZGV4ID0gYXJncy5pbmRleE9mKGAtLSR7b3B0aW9ufWApXG5cdFx0XHRpZiAoaW5kZXggPj0gMCkge1xuXHRcdFx0XHRjdXJhdGVkW29wdGlvbl0gPSBhcmdzW2luZGV4XVxuXHRcdFx0XHRpZiAoIWFyZ3NbaW5kZXggKyAxXSB8fCBhcmdzW2luZGV4ICsgMV0uc3RhcnRzV2l0aChcIi0tXCIpKSB7XG5cdFx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDEpXG5cdFx0XHRcdFx0Y3VyYXRlZFtvcHRpb25dID0gdW5kZWZpbmVkXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y3VyYXRlZFtvcHRpb25dID0gYXJnc1tpbmRleCArIDFdXG5cdFx0XHRcdFx0YXJncy5zcGxpY2UoaW5kZXgsIDIpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHJldHVybiBbYXJncyB8fCBbXSwgY3VyYXRlZF1cbn1cblxuZnVuY3Rpb24gZmxhdHRlbk9iamVjdChvYikge1xuXHRjb25zdCB0b1JldHVybiA9IHt9XG5cdGZvciAoY29uc3QgaSBpbiBvYikge1xuXHRcdGlmICghT2JqZWN0Lmhhc093bihvYiwgaSkpIGNvbnRpbnVlXG5cdFx0aWYgKHR5cGVvZiBvYltpXSA9PT0gXCJvYmplY3RcIiAmJiBvYltpXSAhPT0gbnVsbCkge1xuXHRcdFx0Y29uc3QgZmxhdE9iamVjdCA9IGZsYXR0ZW5PYmplY3Qob2JbaV0pXG5cdFx0XHRmb3IgKGNvbnN0IHggaW4gZmxhdE9iamVjdCkge1xuXHRcdFx0XHRpZiAoIU9iamVjdC5oYXNPd24oZmxhdE9iamVjdCwgeCkpIGNvbnRpbnVlXG5cdFx0XHRcdHRvUmV0dXJuW2Ake2l9LiR7eH1gXSA9IGZsYXRPYmplY3RbeF1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dG9SZXR1cm5baV0gPSBvYltpXVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gdG9SZXR1cm5cbn1cblxuZnVuY3Rpb24gZ2V0TmV0d29ya0FkZHJlc3NlcyhuZXR3b3JrKSB7XG5cdGxldCByZXMgPSBhZGRyZXNzZXM/LmRlZmF1bHRcblx0Z2V0TmV0d29ya1RhZ3NGcm9tU3RyaW5nKG5ldHdvcmspLmZvckVhY2goKG5ldCkgPT4ge1xuXHRcdHJlcyA9IG1lcmdlKHJlcywgYWRkcmVzc2VzW25ldF0pXG5cdH0pXG5cdHJldHVybiBtZXJnZShcblx0XHRyZXMsXG5cdFx0ZnMuZXhpc3RzU3luYyhgJHtXSVRORVRfU0RLX1JBRE9OX0FTU0VUU19QQVRIfS8uLi9hZGRyZXNzZXMuanNvbmApXG5cdFx0XHQ/IHJlcXVpcmUoYCR7V0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSH0vLi4vYWRkcmVzc2VzLmpzb25gKVtcblx0XHRcdFx0XHRuZXR3b3JrLnRvTG93ZXJDYXNlKClcblx0XHRcdFx0XVxuXHRcdFx0OiB7fSxcblx0KVxufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrQXJ0aWZhY3RzKG5ldHdvcmspIHtcblx0bGV0IHJlcyA9IGFydGlmYWN0cz8uZGVmYXVsdFxuXHRnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcobmV0d29yaykuZm9yRWFjaCgobmV0KSA9PiB7XG5cdFx0cmVzID0gbWVyZ2UocmVzLCBhcnRpZmFjdHNbbmV0XSlcblx0fSlcblx0cmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrQ29uc3RydWN0b3JBcmdzKG5ldHdvcmspIHtcblx0bGV0IHJlcyA9IHt9XG5cdGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKS5mb3JFYWNoKChuZXQpID0+IHtcblx0XHRyZXMgPSBtZXJnZShyZXMsIGNvbnN0cnVjdG9yQXJnc1tuZXRdKVxuXHR9KVxuXHRyZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmtUYWdzRnJvbVN0cmluZyhuZXR3b3JrKSB7XG5cdG5ldHdvcmsgPSBuZXR3b3JrID8gbmV0d29yay50b0xvd2VyQ2FzZSgpIDogXCJkZXZlbG9wbWVudFwiXG5cdGNvbnN0IHRhZ3MgPSBbXVxuXHRjb25zdCBwYXJ0cyA9IG5ldHdvcmsuc3BsaXQoXCI6XCIpXG5cdGZvciAobGV0IGl4ID0gMDsgaXggPCBwYXJ0cy5sZW5ndGg7IGl4KyspIHtcblx0XHR0YWdzLnB1c2gocGFydHMuc2xpY2UoMCwgaXggKyAxKS5qb2luKFwiOlwiKSlcblx0fVxuXHRyZXR1cm4gdGFnc1xufVxuXG5mdW5jdGlvbiBpbXBvcnRSYWRvbkFzc2V0cyhvcHRpb25zKSB7XG5cdGNvbnN0IGFzc2V0cyA9IG9wdGlvbnM/LmxlZ2FjeSA/IHt9IDogcmVxdWlyZShcIkB3aXRuZXQvc2RrL2Fzc2V0c1wiKVxuXHRyZXR1cm4gaXNNb2R1bGVJbml0aWFsaXplZCAmJlxuXHRcdGZzLmV4aXN0c1N5bmMoYCR7V0lUTkVUX1NES19SQURPTl9BU1NFVFNfUEFUSH0vaW5kZXguY2pzYClcblx0XHQ/IG1lcmdlKGFzc2V0cywgcmVxdWlyZShgJHtXSVRORVRfU0RLX1JBRE9OX0FTU0VUU19QQVRIfS9pbmRleC5janNgKSlcblx0XHQ6IGFzc2V0c1xufVxuXG5mdW5jdGlvbiBvcmRlcktleXMob2JqKSB7XG5cdGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopLnNvcnQoZnVuY3Rpb24ga2V5T3JkZXIoazEsIGsyKSB7XG5cdFx0aWYgKGsxIDwgazIpIHJldHVybiAtMVxuXHRcdGVsc2UgaWYgKGsxID4gazIpIHJldHVybiArMVxuXHRcdGVsc2UgcmV0dXJuIDBcblx0fSlcblx0bGV0IGlcblx0Y29uc3QgYWZ0ZXIgPSB7fVxuXHRmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuXHRcdGFmdGVyW2tleXNbaV1dID0gb2JqW2tleXNbaV1dXG5cdFx0ZGVsZXRlIG9ialtrZXlzW2ldXVxuXHR9XG5cdGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG5cdFx0b2JqW2tleXNbaV1dID0gYWZ0ZXJba2V5c1tpXV1cblx0fVxuXHRyZXR1cm4gb2JqXG59XG5cbmZ1bmN0aW9uIHByb21wdGVyKHByb21pc2UpIHtcblx0Y29uc3QgbG9hZGluZyA9ICgoKSA9PiB7XG5cdFx0Y29uc3QgaCA9IFtcInxcIiwgXCIvXCIsIFwiLVwiLCBcIlxcXFxcIl1cblx0XHRsZXQgaSA9IDBcblx0XHRyZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0aSA9IGkgPiAzID8gMCA6IGlcblx0XHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBcXGJcXGIke2hbaV19IGApXG5cdFx0XHRpKytcblx0XHR9LCA1MClcblx0fSkoKVxuXHRyZXR1cm4gcHJvbWlzZS50aGVuKChyZXN1bHQpID0+IHtcblx0XHRjbGVhckludGVydmFsKGxvYWRpbmcpXG5cdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoXCJcXGJcXGJcIilcblx0XHRyZXR1cm4gcmVzdWx0XG5cdH0pXG59XG5cbmZ1bmN0aW9uIHJlYWRXaXRuZXRKc29uRmlsZXMoLi4uZmlsZW5hbWVzKSB7XG5cdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0ZmlsZW5hbWVzLm1hcCgoa2V5KSA9PiB7XG5cdFx0XHRjb25zdCBmaWxlcGF0aCA9IGAuL3dpdG5ldC8ke2tleX0uanNvbmBcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdGtleSxcblx0XHRcdFx0ZnMuZXhpc3RzU3luYyhmaWxlcGF0aCkgPyBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlcGF0aCkpIDoge30sXG5cdFx0XHRdXG5cdFx0fSksXG5cdClcbn1cblxuZnVuY3Rpb24gc2F2ZVdpdG5ldEpzb25GaWxlcyhkYXRhKSB7XG5cdE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIG9ial0pID0+IHtcblx0XHRjb25zdCBmaWxlcGF0aCA9IGAuL3dpdG5ldC8ke2tleX0uanNvbmBcblx0XHRpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZXBhdGgpKSBmcy53cml0ZUZpbGVTeW5jKGZpbGVwYXRoLCBcInt9XCIpXG5cdFx0Y29uc3QganNvbiA9IG1lcmdlKEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVwYXRoKSksIG9iailcblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVwYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCA0KSwgeyBmbGFnOiBcIncrXCIgfSlcblx0fSlcbn1cblxuZnVuY3Rpb24gc3VwcG9ydGVkTmV0d29ya3MoZWNvc3lzdGVtKSB7XG5cdGNvbnN0IG5ldHdvcmtzID0gcmVxdWlyZShcIi4uLy4uL21pZ3JhdGlvbnMvc2V0dGluZ3MvbmV0d29ya3MuanNcIikuZGVmYXVsdFxuXHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdE9iamVjdC5rZXlzKGNvbnN0cnVjdG9yQXJncylcblx0XHRcdC5zb3J0KClcblx0XHRcdC5maWx0ZXIoXG5cdFx0XHRcdChuZXR3b3JrKSA9PlxuXHRcdFx0XHRcdG5ldHdvcmsuaW5kZXhPZihcIjpcIikgPj0gMCAmJlxuXHRcdFx0XHRcdCghZWNvc3lzdGVtIHx8IG5ldHdvcmsuc3RhcnRzV2l0aChlY29zeXN0ZW0udG9Mb3dlckNhc2UoKSkpLFxuXHRcdFx0KVxuXHRcdFx0Lm1hcCgobmV0d29yaykgPT4ge1xuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdG5ldHdvcmssXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bWFpbm5ldDogbmV0d29ya3NbbmV0d29ya10/Lm1haW5uZXQgfHwgZmFsc2UsXG5cdFx0XHRcdFx0XHRuZXR3b3JrX2lkOiBuZXR3b3Jrc1tuZXR3b3JrXS5uZXR3b3JrX2lkLFxuXHRcdFx0XHRcdFx0cG9ydDogbmV0d29ya3NbbmV0d29ya10ucG9ydCxcblx0XHRcdFx0XHRcdHN5bWJvbDogbmV0d29ya3NbbmV0d29ya10/LnN5bWJvbCB8fCBcIkVUSFwiLFxuXHRcdFx0XHRcdFx0dmVyaWZpZWQ6IG5ldHdvcmtzW25ldHdvcmtdPy52ZXJpZnk/LmV4cGxvcmVyVXJsLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdF1cblx0XHRcdH0pLFxuXHQpXG59XG5cbmZ1bmN0aW9uIHN1cHBvcnRzTmV0d29yayhuZXR3b3JrKSB7XG5cdHJldHVybiBuZXR3b3JrICYmIE9iamVjdC5rZXlzKGNvbnN0cnVjdG9yQXJncykuaW5jbHVkZXMobmV0d29yay50b0xvd2VyQ2FzZSgpKVxufVxuXG5mdW5jdGlvbiB0cmFjZUhlYWRlcihoZWFkZXIsIGNvbG9yID0gY29sb3JzLndoaXRlLCBpbmRlbnQgPSBcIlwiKSB7XG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSM4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKX3ilIDilJBgKVxuXHRjb25zb2xlLmluZm8oYCR7aW5kZW50feKUgiAke2NvbG9yKGhlYWRlcil9IOKUgmApXG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtcIuKUgFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKX3ilIDilJhgKVxufVxuXG5mdW5jdGlvbiB0cmFjZVRhYmxlKHJlY29yZHMsIG9wdGlvbnMpIHtcblx0Y29uc3Qgc3RyaW5naWZ5ID0gKGRhdGEsIGh1bWFuaXplcnMsIGluZGV4KSA9PlxuXHRcdGh1bWFuaXplcnM/LltpbmRleF1cblx0XHRcdD8gaHVtYW5pemVyc1tpbmRleF0oZGF0YSkudG9TdHJpbmcoKVxuXHRcdFx0OiAoZGF0YT8udG9TdHJpbmcoKSA/PyBcIlwiKVxuXHRjb25zdCByZWR1Y2VNYXggPSAobnVtYmVycykgPT5cblx0XHRudW1iZXJzLnJlZHVjZSgoY3VyciwgcHJldikgPT4gTWF0aC5tYXgoY3VyciwgcHJldiksIDApXG5cdGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9XG5cdGNvbnN0IGluZGVudCA9IG9wdGlvbnM/LmluZGVudCB8fCBcIlwiXG5cdGNvbnN0IG51bUNvbHVtbnMgPSByZWR1Y2VNYXgocmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4gcmVjb3JkPy5sZW5ndGggfHwgMSkpXG5cdGNvbnN0IG1heENvbHVtbldpZHRoID0gb3B0aW9ucz8ubWF4Q29sdW1uV2lkdGggfHwgODBcblx0Y29uc3QgdGFibGUgPSB0cmFuc3Bvc2UocmVjb3JkcywgbnVtQ29sdW1ucylcblx0b3B0aW9ucy53aWR0aHMgPVxuXHRcdG9wdGlvbnM/LndpZHRocyB8fFxuXHRcdHRhYmxlLm1hcCgoY29sdW1uLCBpbmRleCkgPT4ge1xuXHRcdFx0bGV0IG1heFdpZHRoID0gcmVkdWNlTWF4KFxuXHRcdFx0XHRjb2x1bW4ubWFwKFxuXHRcdFx0XHRcdChmaWVsZCkgPT5cblx0XHRcdFx0XHRcdGNvbG9yc3RyaXAoc3RyaW5naWZ5KGZpZWxkLCBvcHRpb25zPy5odW1hbml6ZXJzLCBpbmRleCkpLmxlbmd0aCxcblx0XHRcdFx0KSxcblx0XHRcdClcblx0XHRcdGlmIChvcHRpb25zPy5oZWFkbGluZXM/LltpbmRleF0pIHtcblx0XHRcdFx0bWF4V2lkdGggPSBNYXRoLm1heChcblx0XHRcdFx0XHRtYXhXaWR0aCxcblx0XHRcdFx0XHRjb2xvcnN0cmlwKG9wdGlvbnMuaGVhZGxpbmVzW2luZGV4XS5yZXBsYWNlQWxsKFwiOlwiLCBcIlwiKSkubGVuZ3RoLFxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gTWF0aC5taW4obWF4V2lkdGgsIG1heENvbHVtbldpZHRoKVxuXHRcdH0pXG5cdGxldCBoZWFkbGluZSA9IG9wdGlvbnMud2lkdGhzLm1hcCgobWF4V2lkdGgpID0+IFwi4pSAXCIucmVwZWF0KG1heFdpZHRoKSlcblx0Y29uc29sZS5pbmZvKGAke2luZGVudH3ilIzilIAke2hlYWRsaW5lLmpvaW4oXCLilIDilKzilIBcIil94pSA4pSQYClcblx0aWYgKG9wdGlvbnM/LmhlYWRsaW5lcykge1xuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCwgaW5kZXgpID0+IHtcblx0XHRcdGNvbnN0IGNhcHRpb24gPSBvcHRpb25zLmhlYWRsaW5lc1tpbmRleF0ucmVwbGFjZUFsbChcIjpcIiwgXCJcIilcblx0XHRcdGNvbnN0IGNhcHRpb25MZW5ndGggPSBjb2xvcnN0cmlwKGNhcHRpb24pLmxlbmd0aFxuXHRcdFx0cmV0dXJuIGAke2NvbG9ycy53aGl0ZShjYXB0aW9uKX0ke1wiIFwiLnJlcGVhdChtYXhXaWR0aCAtIGNhcHRpb25MZW5ndGgpfWBcblx0XHR9KVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSCICR7aGVhZGxpbmUuam9pbihcIiDilIIgXCIpfSDilIJgKVxuXHRcdGhlYWRsaW5lID0gb3B0aW9ucy53aWR0aHMubWFwKChtYXhXaWR0aCkgPT4gXCLilIBcIi5yZXBlYXQobWF4V2lkdGgpKVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSc4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS84pSAXCIpfeKUgOKUpGApXG5cdH1cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IGxpbmUgPSBcIlwiXG5cdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBudW1Db2x1bW5zOyBqKyspIHtcblx0XHRcdGxldCBkYXRhID0gdGFibGVbal1baV1cblx0XHRcdGxldCBjb2xvclxuXHRcdFx0aWYgKG9wdGlvbnM/LmNvbG9ycz8uW2pdKSB7XG5cdFx0XHRcdGNvbG9yID0gb3B0aW9ucy5jb2xvcnNbal1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbG9yID1cblx0XHRcdFx0XHR0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIlxuXHRcdFx0XHRcdFx0PyBjb2xvcnMuZ3JlZW5cblx0XHRcdFx0XHRcdDogTnVtYmVyKGRhdGEpID09PSBkYXRhICYmIGRhdGEgJSAxICE9PSAwIC8vIGlzIGZsb2F0IG51bWJlcj9cblx0XHRcdFx0XHRcdFx0PyBjb2xvcnMueWVsbG93XG5cdFx0XHRcdFx0XHRcdDogKHgpID0+IHhcblx0XHRcdH1cblx0XHRcdGRhdGEgPSBzdHJpbmdpZnkoZGF0YSwgb3B0aW9ucz8uaHVtYW5pemVycywgailcblx0XHRcdGlmIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoKSB7XG5cdFx0XHRcdHdoaWxlIChjb2xvcnN0cmlwKGRhdGEpLmxlbmd0aCA+IG1heENvbHVtbldpZHRoIC0gMykge1xuXHRcdFx0XHRcdGRhdGEgPSBkYXRhLnNsaWNlKDAsIC0xKVxuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGEgKz0gXCIuLi5cIlxuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZGF0YUxlbmd0aCA9IGNvbG9yc3RyaXAoZGF0YSkubGVuZ3RoXG5cdFx0XHRpZiAob3B0aW9ucz8uaGVhZGxpbmVzICYmIG9wdGlvbnMuaGVhZGxpbmVzW2pdWzBdID09PSBcIjpcIikge1xuXHRcdFx0XHRkYXRhID0gYCR7Y29sb3IoZGF0YSl9JHtcIiBcIi5yZXBlYXQob3B0aW9ucy53aWR0aHNbal0gLSBkYXRhTGVuZ3RoKX1gXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhID0gYCR7XCIgXCIucmVwZWF0KG9wdGlvbnMud2lkdGhzW2pdIC0gZGF0YUxlbmd0aCl9JHtjb2xvcihkYXRhKX1gXG5cdFx0XHR9XG5cdFx0XHRsaW5lICs9IGDilIIgJHtkYXRhfSBgXG5cdFx0fVxuXHRcdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR9JHtsaW5lfeKUgmApXG5cdH1cblx0aGVhZGxpbmUgPSBvcHRpb25zLndpZHRocy5tYXAoKG1heFdpZHRoKSA9PiBcIuKUgFwiLnJlcGVhdChtYXhXaWR0aCkpXG5cdGNvbnNvbGUuaW5mbyhgJHtpbmRlbnR94pSU4pSAJHtoZWFkbGluZS5qb2luKFwi4pSA4pS04pSAXCIpfeKUgOKUmGApXG59XG5cbmZ1bmN0aW9uIHRyYW5zcG9zZShyZWNvcmRzLCBudW1Db2x1bW5zKSB7XG5cdGNvbnN0IGNvbHVtbnMgPSBbXVxuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbnVtQ29sdW1uczsgaW5kZXgrKykge1xuXHRcdGNvbHVtbnMucHVzaChyZWNvcmRzLm1hcCgocm93KSA9PiByb3dbaW5kZXhdKSlcblx0fVxuXHRyZXR1cm4gY29sdW1uc1xufVxuXG5mdW5jdGlvbiB0cmFjZURhdGEoaGVhZGVyLCBkYXRhLCB3aWR0aCwgY29sb3IpIHtcblx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoaGVhZGVyKVxuXHRpZiAoY29sb3IpIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGNvbG9yKVxuXHRmb3IgKGxldCBpeCA9IDA7IGl4IDwgZGF0YS5sZW5ndGggLyB3aWR0aDsgaXgrKykge1xuXHRcdGlmIChpeCA+IDApIHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiIFwiLnJlcGVhdChoZWFkZXIubGVuZ3RoKSlcblx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShkYXRhLnNsaWNlKHdpZHRoICogaXgsIHdpZHRoICogKGl4ICsgMSkpKVxuXHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiXFxuXCIpXG5cdH1cblx0aWYgKGNvbG9yKSBwcm9jZXNzLnN0ZG91dC53cml0ZShcIlxceDFiWzBtXCIpXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRERUZBVUxUX0JBVENIX1NJWkUsXG5cdERFRkFVTFRfTElNSVQsXG5cdERFRkFVTFRfU0lOQ0UsXG5cdGNvbG9ycyxcblx0Y2h1bmtzLFxuXHRkZWxldGVFeHRyYUZsYWdzLFxuXHRleHRyYWN0RmxhZ3NGcm9tQXJncyxcblx0ZXh0cmFjdE9wdGlvbnNGcm9tQXJncyxcblx0ZmxhdHRlbk9iamVjdCxcblx0b3JkZXJLZXlzLFxuXHR0cmFjZURhdGEsXG5cdHRyYWNlSGVhZGVyLFxuXHRnZXROZXR3b3JrQWRkcmVzc2VzLFxuXHRnZXROZXR3b3JrQXJ0aWZhY3RzLFxuXHRnZXROZXR3b3JrQ29uc3RydWN0b3JBcmdzLFxuXHRnZXROZXR3b3JrVGFnc0Zyb21TdHJpbmcsXG5cdHN1cHBvcnRlZE5ldHdvcmtzLFxuXHRzdXBwb3J0c05ldHdvcmssXG5cdGltcG9ydFJhZG9uQXNzZXRzLFxuXHRyZWFkV2l0bmV0SnNvbkZpbGVzLFxuXHRzYXZlV2l0bmV0SnNvbkZpbGVzLFxuXHR0cmFjZVRhYmxlLFxuXHRjb21tYXMsXG5cdGNvbG9yc3RyaXAsXG5cdHByb21wdGVyLFxufVxuIl19
|
|
@@ -433,7 +433,22 @@
|
|
|
433
433
|
}
|
|
434
434
|
},
|
|
435
435
|
"scroll:mainnet": {},
|
|
436
|
-
"scroll:sepolia": {
|
|
436
|
+
"scroll:sepolia": {
|
|
437
|
+
"libs": {
|
|
438
|
+
"WitOracleDataLib": "0xA1276094aB5450Cd14bC5a7ed7901Ff2020d0740",
|
|
439
|
+
"WitOracleRadonEncodingLib": "0x8fbBf7445E8bC8d7400107613d59163476d1f2e2",
|
|
440
|
+
"WitOracleResultStatusLib": "0x59526A531c29c6DEb7C008e45A111e2cEd7BE815",
|
|
441
|
+
"WitPriceFeedsDataLib": "0x1c19cc594887B3423f24601cA618Fe545eCD1D95",
|
|
442
|
+
"WitPriceFeedsLegacyDataLib": "0xca7e9D37088e5438AE4C221f3639F480681f5A14"
|
|
443
|
+
},
|
|
444
|
+
"core": {
|
|
445
|
+
"WitOracleRadonRegistryUpgradableNoSha256": "0xdCf6e46133805Fcea966ED48470A3C67D88e79A3",
|
|
446
|
+
"WitOracleTrustableDefault": "0x1a4d67C29a56f0b08a9e987E45F2750EE44d3322"
|
|
447
|
+
},
|
|
448
|
+
"apps": {
|
|
449
|
+
"WitPriceFeedsLegacyUpgradable": "0x9D37FF6CF956F1E66143517CC6619474A54CfB95"
|
|
450
|
+
}
|
|
451
|
+
},
|
|
437
452
|
"ultron:mainnet": {},
|
|
438
453
|
"ultron:testnet": {},
|
|
439
454
|
"unichain:sepolia": {
|
|
@@ -491,4 +506,4 @@
|
|
|
491
506
|
"WitPriceFeedsLegacyDataLib": "0xBfFA2ec6225390C517A1bEB83b27a171C6734294"
|
|
492
507
|
}
|
|
493
508
|
}
|
|
494
|
-
}
|
|
509
|
+
}
|
|
@@ -306,5 +306,12 @@
|
|
|
306
306
|
"WitOracleRadonRegistryUpgradableDefault": "{\"types\":[\"bytes32\",\"bool\"],\"values\":[\"0x322e322e382d666462376631652d333964323732380000000000000000000000\",true]}",
|
|
307
307
|
"WitOracleTrustableDefault": "{\"types\":[\"(uint32, uint32, uint32, uint32)\",\"address\",\"bytes32\"],\"values\":[[58282,65273,69546,20000],\"0x000B61Fe075F545fd37767f40391658275900000\",\"0x322e322e392d346262313232312d643566363836340000000000000000000000\"]}",
|
|
308
308
|
"WitPriceFeedsLegacyUpgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x322e322e382d666462376631652d623239643930350000000000000000000000\",true]}"
|
|
309
|
+
},
|
|
310
|
+
"scroll:sepolia": {
|
|
311
|
+
"WitOracleRadonRequestFactoryUpgradableDefault": "{\"types\":[\"address\",\"address\",\"bytes32\",\"bool\"],\"values\":[\"0xffC4147d7b973B1766FB335bC847C7288c4365ff\",\"0xFF5ad05D038fcc04354B2fca1fb657eA345594FF\",\"0x332e302e362d346364356138302d326665396137610000000000000000000000\",true]}",
|
|
312
|
+
"WitOracleRadonRegistryUpgradableNoSha256": "{\"types\":[\"bytes32\",\"bool\"],\"values\":[\"0x332e302e362d346364356138302d366231383331330000000000000000000000\",true]}",
|
|
313
|
+
"WitOracleTrustableDefault": "{\"types\":[\"(uint32, uint32, uint32, uint32)\",\"address\",\"bytes32\"],\"values\":[[58282,65273,69546,20000],\"0x000B61Fe075F545fd37767f40391658275900000\",\"0x332e302e362d346364356138302d613335646266370000000000000000000000\"]}",
|
|
314
|
+
"WitPriceFeedsLegacyUpgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x332e302e362d346364356138302d386361376362620000000000000000000000\",true]}",
|
|
315
|
+
"WitPriceFeedsV3Upgradable": "{\"types\":[\"address\",\"bytes32\",\"bool\"],\"values\":[\"0x77703aE126B971c9946d562F41Dd47071dA00777\",\"0x332e302e362d346364356138302d666337656138620000000000000000000000\",true]}"
|
|
309
316
|
}
|
|
310
|
-
}
|
|
317
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
default: {
|
|
3
|
+
WitnetDeployer: "WitnetDeployer",
|
|
4
|
+
apps: {
|
|
5
|
+
WitPriceFeeds: "WitPriceFeedsV3Upgradable",
|
|
6
|
+
WitPriceFeedsLegacy: "WitPriceFeedsLegacyUpgradable",
|
|
7
|
+
WitRandomness: "WitRandomnessV3",
|
|
8
|
+
},
|
|
9
|
+
core: {
|
|
10
|
+
WitOracle: "WitOracleTrustableDefault",
|
|
11
|
+
WitOracleRadonRegistry: "WitOracleRadonRegistryUpgradableDefault",
|
|
12
|
+
WitOracleRadonRequestFactory:
|
|
13
|
+
"WitOracleRadonRequestFactoryUpgradableDefault",
|
|
14
|
+
WitOracleRadonRequestFactoryModals:
|
|
15
|
+
"WitOracleRadonRequestFactoryModalsDefault",
|
|
16
|
+
WitOracleRadonRequestFactoryTemplates:
|
|
17
|
+
"WitOracleRadonRequestFactoryTemplatesDefault",
|
|
18
|
+
},
|
|
19
|
+
libs: {
|
|
20
|
+
WitOracleDataLib: "WitOracleDataLib",
|
|
21
|
+
WitOracleRadonEncodingLib: "WitOracleRadonEncodingLib",
|
|
22
|
+
WitOracleResultStatusLib: "WitOracleResultStatusLib",
|
|
23
|
+
WitPriceFeedsDataLib: "WitPriceFeedsDataLib",
|
|
24
|
+
WitPriceFeedsLegacyDataLib: "WitPriceFeedsLegacyDataLib",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
base: {
|
|
28
|
+
core: { WitOracle: "WitOracleTrustableOvm2" },
|
|
29
|
+
},
|
|
30
|
+
boba: {
|
|
31
|
+
core: { WitOracle: "WitOracleTrustableOvm2" },
|
|
32
|
+
},
|
|
33
|
+
"conflux:core": {
|
|
34
|
+
WitnetDeployer: "WitnetDeployerConfluxCore",
|
|
35
|
+
core: {
|
|
36
|
+
WitOracleRadonRequestFactory:
|
|
37
|
+
"WitOracleRadonRequestFactoryUpgradableConfluxCore",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
"ethereum:sepolia": {
|
|
41
|
+
apps: {
|
|
42
|
+
WitPriceFeedsLegacy: "WitPriceFeedsLegacyUpgradableBypass",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
mantle: {
|
|
46
|
+
core: { WitOracle: "WitOracleTrustableOvm2" },
|
|
47
|
+
},
|
|
48
|
+
meter: {
|
|
49
|
+
WitnetDeployer: "WitnetDeployerMeter",
|
|
50
|
+
core: {
|
|
51
|
+
WitOracleRadonRequestFactory:
|
|
52
|
+
"WitOracleRadonRequestFactoryUpgradableConfluxCore",
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
optimism: {
|
|
56
|
+
core: { WitOracle: "WitOracleTrustableOvm2" },
|
|
57
|
+
},
|
|
58
|
+
"okx:x1": {
|
|
59
|
+
core: {
|
|
60
|
+
WitOracleRadonRegistry: "WitOracleRadonRegistryUpgradableNoSha256",
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
"polygon:zkevm": {
|
|
64
|
+
core: {
|
|
65
|
+
WitOracleRadonRegistry: "WitOracleRadonRegistryUpgradableNoSha256",
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
reef: {
|
|
69
|
+
WitnetDeployer: "WitnetDeployerDeferred",
|
|
70
|
+
core: { WitOracle: "WitOracleTrustableReef" },
|
|
71
|
+
},
|
|
72
|
+
scroll: {
|
|
73
|
+
core: {
|
|
74
|
+
WitOracleRadonRegistry: "WitOracleRadonRegistryUpgradableNoSha256",
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
"syscoin:rollux": {
|
|
78
|
+
core: { WitOracle: "WitOracleTrustableOvm2" },
|
|
79
|
+
},
|
|
80
|
+
ten: {
|
|
81
|
+
WitnetDeployer: "WitnetDeployerDeferred",
|
|
82
|
+
core: { WitOracle: "WitOracleTrustableObscuro" },
|
|
83
|
+
},
|
|
84
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@witnet/solidity",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.8",
|
|
4
4
|
"description": "Wit/Oracle Solidity Framework for EVM-compatible chains",
|
|
5
5
|
"author": "Witnet Foundation <info@witnet.foundation>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -60,6 +60,8 @@
|
|
|
60
60
|
"build/contracts",
|
|
61
61
|
"dist",
|
|
62
62
|
"contracts",
|
|
63
|
+
"migrations/*.json",
|
|
64
|
+
"migrations/settings/artifacts.js",
|
|
63
65
|
"scripts",
|
|
64
66
|
"src/bin"
|
|
65
67
|
],
|
package/src/bin/helpers.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const fs = require("node:fs")
|
|
2
2
|
const merge = require("lodash.merge")
|
|
3
3
|
|
|
4
|
-
const addresses = require("../../
|
|
5
|
-
const artifacts = require("../../
|
|
6
|
-
const constructorArgs = require("../../
|
|
4
|
+
const addresses = require("../../migrations/addresses.json")
|
|
5
|
+
const artifacts = require("../../migrations/settings/artifacts.js").default
|
|
6
|
+
const constructorArgs = require("../../migrations/constructorArgs.json")
|
|
7
7
|
|
|
8
8
|
const DEFAULT_BATCH_SIZE = 64
|
|
9
9
|
const DEFAULT_LIMIT = 64
|