@keep-network/tbtc-v2 1.3.0 → 1.3.1

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.
Files changed (75) hide show
  1. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  2. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  3. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
  4. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  5. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  6. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
  7. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
  8. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
  9. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
  10. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
  11. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
  12. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
  13. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
  14. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
  15. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
  16. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
  17. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  18. package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
  19. package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
  20. package/build/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.dbg.json +1 -1
  21. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
  22. package/build/contracts/l2/L2TBTC.sol/L2TBTC.dbg.json +1 -1
  23. package/build/contracts/l2/L2WormholeGateway.sol/IWormholeTokenBridge.dbg.json +1 -1
  24. package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
  25. package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.json +2 -2
  26. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
  27. package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
  28. package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
  29. package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
  30. package/build/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.dbg.json +1 -1
  31. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  32. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
  33. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  34. package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
  35. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  36. package/contracts/l2/L2WormholeGateway.sol +22 -4
  37. package/export/artifacts/@keep-network/bitcoin-spv-sol/contracts/BTCUtils.sol/BTCUtils.json +20 -20
  38. package/export/artifacts/@keep-network/ecdsa/contracts/EcdsaDkgValidator.sol/EcdsaDkgValidator.json +2010 -2010
  39. package/export/artifacts/@keep-network/ecdsa/contracts/WalletRegistry.sol/WalletRegistry.json +245 -245
  40. package/export/artifacts/@keep-network/ecdsa/contracts/libraries/EcdsaDkg.sol/EcdsaDkg.json +22 -22
  41. package/export/artifacts/@keep-network/ecdsa/contracts/libraries/EcdsaInactivity.sol/EcdsaInactivity.json +1859 -1859
  42. package/export/artifacts/@keep-network/random-beacon/contracts/ReimbursementPool.sol/ReimbursementPool.json +598 -598
  43. package/export/artifacts/@keep-network/sortition-pools/contracts/Chaosnet.sol/Chaosnet.json +527 -527
  44. package/export/artifacts/@keep-network/sortition-pools/contracts/Rewards.sol/Rewards.json +39 -39
  45. package/export/artifacts/@keep-network/sortition-pools/contracts/SortitionPool.sol/SortitionPool.json +2662 -2662
  46. package/export/artifacts/@keep-network/sortition-pools/contracts/SortitionTree.sol/SortitionTree.json +491 -491
  47. package/export/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +614 -614
  48. package/export/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +639 -639
  49. package/export/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +1079 -1079
  50. package/export/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +1945 -1945
  51. package/export/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +697 -697
  52. package/export/artifacts/@thesis/solidity-contracts/contracts/token/ERC20WithPermit.sol/ERC20WithPermit.json +2613 -2613
  53. package/export/artifacts/@thesis/solidity-contracts/contracts/token/MisfundRecovery.sol/MisfundRecovery.json +778 -778
  54. package/export/artifacts/contracts/bank/Bank.sol/Bank.json +1949 -1949
  55. package/export/artifacts/contracts/bridge/Bridge.sol/Bridge.json +7381 -7381
  56. package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +1359 -1359
  57. package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +1029 -1029
  58. package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +1181 -1181
  59. package/export/artifacts/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.json +4422 -4422
  60. package/export/artifacts/contracts/l2/L2TBTC.sol/L2TBTC.json +3156 -3156
  61. package/export/artifacts/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.json +3143 -2595
  62. package/export/artifacts/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +2454 -2454
  63. package/export/artifacts/contracts/relay/LightRelay.sol/LightRelay.json +1941 -1941
  64. package/export/artifacts/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.json +1044 -1044
  65. package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2949 -2949
  66. package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +866 -866
  67. package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +3525 -3525
  68. package/export/deploy/37_transfer_light_relay_maintainer_proxy_ownership.js +60 -0
  69. package/export/deploy/38_authorize_light_relay_maintainer_proxy_in_reimbursement_pool.js +70 -0
  70. package/export/deploy/39_authorize_light_relay_maintainer_proxy_in_light_relay.js +63 -0
  71. package/export/typechain/factories/L2WormholeGateway__factory.js +1 -1
  72. package/export/typechain/factories/WalletCoordinator__factory.js +1 -21
  73. package/export/typechain/factories/WalletRegistry__factory.js +1 -1
  74. package/export/typechain/factories/WormholeBridgeStub__factory.js +1 -1
  75. package/package.json +2 -2
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var func = function (hre) {
40
+ return __awaiter(this, void 0, void 0, function () {
41
+ var getNamedAccounts, helpers, _a, deployer, governance;
42
+ return __generator(this, function (_b) {
43
+ switch (_b.label) {
44
+ case 0:
45
+ getNamedAccounts = hre.getNamedAccounts, helpers = hre.helpers;
46
+ return [4 /*yield*/, getNamedAccounts()];
47
+ case 1:
48
+ _a = _b.sent(), deployer = _a.deployer, governance = _a.governance;
49
+ return [4 /*yield*/, helpers.ownable.transferOwnership("LightRelayMaintainerProxy", governance, deployer)];
50
+ case 2:
51
+ _b.sent();
52
+ return [2 /*return*/];
53
+ }
54
+ });
55
+ });
56
+ };
57
+ exports.default = func;
58
+ func.tags = ["TransferLightRelayMaintainerProxyOwnership"];
59
+ func.dependencies = ["LightRelayMaintainerProxy"];
60
+ func.runAtTheEnd = true;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var func = function (hre) {
40
+ return __awaiter(this, void 0, void 0, function () {
41
+ var getNamedAccounts, deployments, execute, governance, LightRelayMaintainerProxy;
42
+ return __generator(this, function (_a) {
43
+ switch (_a.label) {
44
+ case 0:
45
+ getNamedAccounts = hre.getNamedAccounts, deployments = hre.deployments;
46
+ execute = deployments.execute;
47
+ return [4 /*yield*/, getNamedAccounts()];
48
+ case 1:
49
+ governance = (_a.sent()).governance;
50
+ return [4 /*yield*/, deployments.get("LightRelayMaintainerProxy")];
51
+ case 2:
52
+ LightRelayMaintainerProxy = _a.sent();
53
+ return [4 /*yield*/, execute("ReimbursementPool", { from: governance, log: true, waitConfirmations: 1 }, "authorize", LightRelayMaintainerProxy.address)];
54
+ case 3:
55
+ _a.sent();
56
+ return [2 /*return*/];
57
+ }
58
+ });
59
+ });
60
+ };
61
+ exports.default = func;
62
+ func.tags = ["AuthorizeLightRelayMaintainerProxyInReimbursementPool"];
63
+ func.dependencies = ["ReimbursementPool", "LightRelayMaintainerProxy"];
64
+ // On mainnet, the ReimbursementPool ownership is passed to the Threshold
65
+ // Council / DAO and that address is not controlled by the dev team.
66
+ // Hence, this step can be executed only for non-mainnet networks such as
67
+ // Hardhat (unit tests) and Goerli (testnet).
68
+ func.skip = function (hre) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
69
+ return [2 /*return*/, hre.network.name === "mainnet"];
70
+ }); }); };
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var func = function (hre) {
40
+ return __awaiter(this, void 0, void 0, function () {
41
+ var getNamedAccounts, deployments, execute, deployer, LightRelayMaintainerProxy;
42
+ return __generator(this, function (_a) {
43
+ switch (_a.label) {
44
+ case 0:
45
+ getNamedAccounts = hre.getNamedAccounts, deployments = hre.deployments;
46
+ execute = deployments.execute;
47
+ return [4 /*yield*/, getNamedAccounts()];
48
+ case 1:
49
+ deployer = (_a.sent()).deployer;
50
+ return [4 /*yield*/, deployments.get("LightRelayMaintainerProxy")];
51
+ case 2:
52
+ LightRelayMaintainerProxy = _a.sent();
53
+ return [4 /*yield*/, execute("LightRelay", { from: deployer, log: true, waitConfirmations: 1 }, "authorize", LightRelayMaintainerProxy.address)];
54
+ case 3:
55
+ _a.sent();
56
+ return [2 /*return*/];
57
+ }
58
+ });
59
+ });
60
+ };
61
+ exports.default = func;
62
+ func.tags = ["AuthorizeLightRelayMaintainerProxyInLightRelay"];
63
+ func.dependencies = ["LightRelay", "LightRelayMaintainerProxy"];
@@ -466,7 +466,7 @@ var _abi = [
466
466
  type: "function",
467
467
  },
468
468
  ];
469
- var _bytecode = "0x608060405234801561001057600080fd5b50611db7806100206000396000f3fe60806040526004361061010e5760003560e01c80638da5cb5b116100a5578063e1308b3311610074578063f2fde38b11610059578063f2fde38b146102f1578063f4734b0c14610311578063f69785f31461033157600080fd5b8063e1308b33146102b1578063e78cea92146102d157600080fd5b80638da5cb5b1461021f578063b4ccd8681461023d578063c0c53b8b1461026a578063ca05f9851461028a57600080fd5b806349072f12116100e157806349072f12146101b45780635d21a596146101ca578063715018a6146101ea57806375b1beaa146101ff57600080fd5b80630b575fe6146101135780632d3802421461014e578063363da98e1461017257806344949c9214610194575b600080fd5b34801561011f57600080fd5b5061013161012e366004611807565b90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561015a57600080fd5b50610164609c5481565b604051908152602001610145565b34801561017e57600080fd5b5061019261018d366004611807565b61035d565b005b3480156101a057600080fd5b506101926101af366004611807565b6103a0565b3480156101c057600080fd5b50610164609b5481565b3480156101d657600080fd5b506101926101e5366004611820565b6104d3565b3480156101f657600080fd5b506101926108a0565b34801561020b57600080fd5b5061019261021a3660046118a2565b6108b4565b34801561022b57600080fd5b506033546001600160a01b0316610131565b34801561024957600080fd5b506101646102583660046118ce565b609a6020526000908152604090205481565b34801561027657600080fd5b50610192610285366004611907565b61090f565b34801561029657600080fd5b506101646102a5366004611952565b6001600160a01b031690565b3480156102bd57600080fd5b50609954610131906001600160a01b031681565b3480156102dd57600080fd5b50609754610131906001600160a01b031681565b3480156102fd57600080fd5b5061019261030c366004611952565b610bca565b34801561031d57600080fd5b50609854610131906001600160a01b031681565b61034461033f36600461196f565b610c5a565b60405167ffffffffffffffff9091168152602001610145565b610365611050565b609b8190556040518181527f876c61ade8d7fbb62356eefa0f1cb0d6d95fc5269dbe8d0d636051daa88d73999060200160405180910390a150565b609b5481609c546103b191906119e4565b11156104045760405162461bcd60e51b815260206004820152601660248201527f4d696e74696e67206c696d69742065786365656465640000000000000000000060448201526064015b60405180910390fd5b60408051338152602081018390527ff7f6725b273ddbe730c152e645cb3a946dd37dbc34344ba45f20975ff85aeb92910160405180910390a180609c600082825461044f91906119e4565b909155505060985461046c906001600160a01b03163330846110aa565b6099546040516340c10f1960e01b8152336004820152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b1580156104b857600080fd5b505af11580156104cc573d6000803e3d6000fd5b5050505050565b6098546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561051c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054091906119fd565b6097546040517fc3f511c10000000000000000000000000000000000000000000000000000000081529192506000916001600160a01b039091169063c3f511c1906105919087908790600401611a16565b6000604051808303816000875af11580156105b0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105d89190810190611b31565b6098546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064a91906119fd565b905060006106588483611b66565b9050600081116106aa5760405162461bcd60e51b815260206004820152601360248201527f4e6f2074425443207472616e736665727265640000000000000000000000000060448201526064016103fb565b6097546040517fea63738d00000000000000000000000000000000000000000000000000000000815260009161074c916001600160a01b039091169063ea63738d906106fa908890600401611ba5565b600060405180830381865afa158015610717573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261073f9190810190611bd9565b60e0015161012e90611ca2565b90506001600160a01b0381166107a45760405162461bcd60e51b815260206004820152601860248201527f307830207265636569766572206e6f7420616c6c6f776564000000000000000060448201526064016103fb565b609b5482609c546107b591906119e4565b11156107d7576098546107d2906001600160a01b0316828461115b565b610855565b81609c60008282546107e991906119e4565b90915550506099546040516340c10f1960e01b81526001600160a01b03838116600483015260248201859052909116906340c10f1990604401600060405180830381600087803b15801561083c57600080fd5b505af1158015610850573d6000803e3d6000fd5b505050505b604080516001600160a01b0383168152602081018490527fc7f080a0d33152d54d5972f0bac2d7984089c4849e2af42bca1a572728d339d7910160405180910390a150505050505050565b6108a8611050565b6108b260006111a9565b565b6108bc611050565b61ffff82166000818152609a6020908152604091829020849055815192835282018390527f1b29e2aa7a790fb04e7d6d73bf7ca63e2b4b1ffe0354fe94b4739c91f1a15359910160405180910390a15050565b600054610100900460ff161580801561092f5750600054600160ff909116105b806109495750303b158015610949575060005460ff166001145b6109bb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103fb565b6000805460ff1916600117905580156109de576000805461ff0019166101001790555b6109e6611208565b6109ee61127b565b6001600160a01b038416610a6a5760405162461bcd60e51b815260206004820152602760248201527f576f726d686f6c65206272696467652061646472657373206d757374206e6f7460448201527f206265203078300000000000000000000000000000000000000000000000000060648201526084016103fb565b6001600160a01b038316610acc5760405162461bcd60e51b8152602060048201526024808201527f42726964676520746f6b656e2061646472657373206d757374206e6f742062656044820152630203078360e41b60648201526084016103fb565b6001600160a01b038216610b2e5760405162461bcd60e51b8152602060048201526024808201527f4c325442544320746f6b656e2061646472657373206d757374206e6f742062656044820152630203078360e41b60648201526084016103fb565b609780546001600160a01b0380871673ffffffffffffffffffffffffffffffffffffffff1992831617909255609880548684169083161790556099805492851692909116919091179055600019609b558015610bc4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610bd2611050565b6001600160a01b038116610c4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103fb565b610c57816111a9565b50565b6000610c646112ee565b6098546040516370a0823160e01b815230600482015287916001600160a01b0316906370a0823190602401602060405180830381865afa158015610cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd091906119fd565b1015610d445760405162461bcd60e51b815260206004820152603160248201527f4e6f7420656e6f75676820776f726d686f6c65207442544320696e207468652060448201527f6761746577617920746f2062726964676500000000000000000000000000000060648201526084016103fb565b83610d915760405162461bcd60e51b815260206004820152601960248201527f30783020726563697069656e74206e6f7420616c6c6f7765640000000000000060448201526064016103fb565b85600003610de15760405162461bcd60e51b815260206004820152601460248201527f416d6f756e74206d757374206e6f74206265203000000000000000000000000060448201526064016103fb565b61ffff85166000818152609a60209081526040918290205482518a815291820193909352908101829052606081018690526080810185905263ffffffff841660a08201527ffcdb8efef11d13bb0ebc515477ece314fdac305aeba3d6d9d371838bbe2435cf9060c00160405180910390a186609c6000828254610e649190611b66565b90915550506099546040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018990526001600160a01b03909116906379cc679090604401600060405180830381600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b5050609754609854610f0393506001600160a01b0390811692501689611347565b80610fc9576097546098546040517f0f5287b00000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018a905261ffff89166044820152606481018890526084810187905263ffffffff861660a4820152911690630f5287b090349060c4015b60206040518083038185885af1158015610f9c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fc19190611cc9565b91505061103d565b6097546098546040805160208082018a905282518083039091018152818301928390527fc5a5ebda000000000000000000000000000000000000000000000000000000009092526001600160a01b039384169363c5a5ebda933493610f7e9392909116918d918d9189918c91604401611cf3565b6110476001606555565b95945050505050565b6033546001600160a01b031633146108b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103fb565b6040516001600160a01b0380851660248301528316604482015260648101829052610bc49085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261149c565b6040516001600160a01b0383166024820152604481018290526111a49084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064016110f7565b505050565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166112735760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103fb565b6108b2611581565b600054610100900460ff166112e65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103fb565b6108b26115f5565b6002606554036113405760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103fb565b6002606555565b8015806113da57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156113b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d891906119fd565b155b61144c5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016103fb565b6040516001600160a01b0383166024820152604481018290526111a49084907f095ea7b300000000000000000000000000000000000000000000000000000000906064016110f7565b6001606555565b60006114f1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166116609092919063ffffffff16565b8051909150156111a4578080602001905181019061150f9190611d43565b6111a45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103fb565b600054610100900460ff166115ec5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103fb565b6108b2336111a9565b600054610100900460ff166114955760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103fb565b606061166f8484600085611677565b949350505050565b6060824710156116ef5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016103fb565b600080866001600160a01b0316858760405161170b9190611d65565b60006040518083038185875af1925050503d8060008114611748576040519150601f19603f3d011682016040523d82523d6000602084013e61174d565b606091505b509150915061175e87838387611769565b979650505050505050565b606083156117d85782516000036117d1576001600160a01b0385163b6117d15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103fb565b508161166f565b61166f83838151156117ed5781518083602001fd5b8060405162461bcd60e51b81526004016103fb9190611ba5565b60006020828403121561181957600080fd5b5035919050565b6000806020838503121561183357600080fd5b823567ffffffffffffffff8082111561184b57600080fd5b818501915085601f83011261185f57600080fd5b81358181111561186e57600080fd5b86602082850101111561188057600080fd5b60209290920196919550909350505050565b61ffff81168114610c5757600080fd5b600080604083850312156118b557600080fd5b82356118c081611892565b946020939093013593505050565b6000602082840312156118e057600080fd5b81356118eb81611892565b9392505050565b6001600160a01b0381168114610c5757600080fd5b60008060006060848603121561191c57600080fd5b8335611927816118f2565b92506020840135611937816118f2565b91506040840135611947816118f2565b809150509250925092565b60006020828403121561196457600080fd5b81356118eb816118f2565b600080600080600060a0868803121561198757600080fd5b85359450602086013561199981611892565b93506040860135925060608601359150608086013563ffffffff811681146119c057600080fd5b809150509295509295909350565b634e487b7160e01b600052601160045260246000fd5b808201808211156119f7576119f76119ce565b92915050565b600060208284031215611a0f57600080fd5b5051919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715611a7f57611a7f611a45565b60405290565b60005b83811015611aa0578181015183820152602001611a88565b50506000910152565b600082601f830112611aba57600080fd5b815167ffffffffffffffff80821115611ad557611ad5611a45565b604051601f8301601f19908116603f01168101908282118183101715611afd57611afd611a45565b81604052838152866020858801011115611b1657600080fd5b611b27846020830160208901611a85565b9695505050505050565b600060208284031215611b4357600080fd5b815167ffffffffffffffff811115611b5a57600080fd5b61166f84828501611aa9565b818103818111156119f7576119f76119ce565b60008151808452611b91816020860160208601611a85565b601f01601f19169290920160200192915050565b6020815260006118eb6020830184611b79565b805160ff81168114611bc957600080fd5b919050565b8051611bc981611892565b600060208284031215611beb57600080fd5b815167ffffffffffffffff80821115611c0357600080fd5b908301906101008286031215611c1857600080fd5b611c20611a5b565b611c2983611bb8565b81526020830151602082015260408301516040820152611c4b60608401611bce565b606082015260808301516080820152611c6660a08401611bce565b60a082015260c083015160c082015260e083015182811115611c8757600080fd5b611c9387828601611aa9565b60e08301525095945050505050565b80516020808301519190811015611cc3576000198160200360031b1b821691505b50919050565b600060208284031215611cdb57600080fd5b815167ffffffffffffffff811681146118eb57600080fd5b6001600160a01b038716815285602082015261ffff8516604082015283606082015263ffffffff8316608082015260c060a08201526000611d3760c0830184611b79565b98975050505050505050565b600060208284031215611d5557600080fd5b815180151581146118eb57600080fd5b60008251611d77818460208701611a85565b919091019291505056fea26469706673582212202cd4d2b50073315070b38ba165fde50c94297c2b2d1ad8f4fb7c3abaf842b3f664736f6c63430008110033";
469
+ var _bytecode = "0x608060405234801561001057600080fd5b50611e6d806100206000396000f3fe60806040526004361061010e5760003560e01c80638da5cb5b116100a5578063e1308b3311610074578063f2fde38b11610059578063f2fde38b146102f1578063f4734b0c14610311578063f69785f31461033157600080fd5b8063e1308b33146102b1578063e78cea92146102d157600080fd5b80638da5cb5b1461021f578063b4ccd8681461023d578063c0c53b8b1461026a578063ca05f9851461028a57600080fd5b806349072f12116100e157806349072f12146101b45780635d21a596146101ca578063715018a6146101ea57806375b1beaa146101ff57600080fd5b80630b575fe6146101135780632d3802421461014e578063363da98e1461017257806344949c9214610194575b600080fd5b34801561011f57600080fd5b5061013161012e36600461188a565b90565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561015a57600080fd5b50610164609c5481565b604051908152602001610145565b34801561017e57600080fd5b5061019261018d36600461188a565b61035d565b005b3480156101a057600080fd5b506101926101af36600461188a565b6103a0565b3480156101c057600080fd5b50610164609b5481565b3480156101d657600080fd5b506101926101e53660046118a3565b6104d3565b3480156101f657600080fd5b506101926108a0565b34801561020b57600080fd5b5061019261021a366004611925565b6108b4565b34801561022b57600080fd5b506033546001600160a01b0316610131565b34801561024957600080fd5b50610164610258366004611951565b609a6020526000908152604090205481565b34801561027657600080fd5b5061019261028536600461198a565b61090f565b34801561029657600080fd5b506101646102a53660046119d5565b6001600160a01b031690565b3480156102bd57600080fd5b50609954610131906001600160a01b031681565b3480156102dd57600080fd5b50609754610131906001600160a01b031681565b3480156102fd57600080fd5b5061019261030c3660046119d5565b610bca565b34801561031d57600080fd5b50609854610131906001600160a01b031681565b61034461033f3660046119f2565b610c5a565b60405167ffffffffffffffff9091168152602001610145565b6103656110ab565b609b8190556040518181527f876c61ade8d7fbb62356eefa0f1cb0d6d95fc5269dbe8d0d636051daa88d73999060200160405180910390a150565b609b5481609c546103b19190611a67565b11156104045760405162461bcd60e51b815260206004820152601660248201527f4d696e74696e67206c696d69742065786365656465640000000000000000000060448201526064015b60405180910390fd5b60408051338152602081018390527ff7f6725b273ddbe730c152e645cb3a946dd37dbc34344ba45f20975ff85aeb92910160405180910390a180609c600082825461044f9190611a67565b909155505060985461046c906001600160a01b0316333084611105565b6099546040516340c10f1960e01b8152336004820152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b1580156104b857600080fd5b505af11580156104cc573d6000803e3d6000fd5b5050505050565b6098546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561051c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105409190611a7a565b6097546040517fc3f511c10000000000000000000000000000000000000000000000000000000081529192506000916001600160a01b039091169063c3f511c1906105919087908790600401611a93565b6000604051808303816000875af11580156105b0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105d89190810190611bae565b6098546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064a9190611a7a565b905060006106588483611be3565b9050600081116106aa5760405162461bcd60e51b815260206004820152601360248201527f4e6f2074425443207472616e736665727265640000000000000000000000000060448201526064016103fb565b6097546040517fea63738d00000000000000000000000000000000000000000000000000000000815260009161074c916001600160a01b039091169063ea63738d906106fa908890600401611c22565b600060405180830381865afa158015610717573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261073f9190810190611c56565b60e0015161012e90611d1f565b90506001600160a01b0381166107a45760405162461bcd60e51b815260206004820152601860248201527f307830207265636569766572206e6f7420616c6c6f776564000000000000000060448201526064016103fb565b609b5482609c546107b59190611a67565b11156107d7576098546107d2906001600160a01b031682846111b6565b610855565b81609c60008282546107e99190611a67565b90915550506099546040516340c10f1960e01b81526001600160a01b03838116600483015260248201859052909116906340c10f1990604401600060405180830381600087803b15801561083c57600080fd5b505af1158015610850573d6000803e3d6000fd5b505050505b604080516001600160a01b0383168152602081018490527fc7f080a0d33152d54d5972f0bac2d7984089c4849e2af42bca1a572728d339d7910160405180910390a150505050505050565b6108a86110ab565b6108b26000611204565b565b6108bc6110ab565b61ffff82166000818152609a6020908152604091829020849055815192835282018390527f1b29e2aa7a790fb04e7d6d73bf7ca63e2b4b1ffe0354fe94b4739c91f1a15359910160405180910390a15050565b600054610100900460ff161580801561092f5750600054600160ff909116105b806109495750303b158015610949575060005460ff166001145b6109bb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103fb565b6000805460ff1916600117905580156109de576000805461ff0019166101001790555b6109e6611263565b6109ee6112d6565b6001600160a01b038416610a6a5760405162461bcd60e51b815260206004820152602760248201527f576f726d686f6c65206272696467652061646472657373206d757374206e6f7460448201527f206265203078300000000000000000000000000000000000000000000000000060648201526084016103fb565b6001600160a01b038316610acc5760405162461bcd60e51b8152602060048201526024808201527f42726964676520746f6b656e2061646472657373206d757374206e6f742062656044820152630203078360e41b60648201526084016103fb565b6001600160a01b038216610b2e5760405162461bcd60e51b8152602060048201526024808201527f4c325442544320746f6b656e2061646472657373206d757374206e6f742062656044820152630203078360e41b60648201526084016103fb565b609780546001600160a01b0380871673ffffffffffffffffffffffffffffffffffffffff1992831617909255609880548684169083161790556099805492851692909116919091179055600019609b558015610bc4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610bd26110ab565b6001600160a01b038116610c4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103fb565b610c5781611204565b50565b6000610c64611349565b83610cb15760405162461bcd60e51b815260206004820152601960248201527f30783020726563697069656e74206e6f7420616c6c6f7765640000000000000060448201526064016103fb565b85600003610d015760405162461bcd60e51b815260206004820152601460248201527f416d6f756e74206d757374206e6f74206265203000000000000000000000000060448201526064016103fb565b610d0a866113a2565b955085600003610d5c5760405162461bcd60e51b815260206004820152601860248201527f416d6f756e7420746f6f206c6f7720746f20627269646765000000000000000060448201526064016103fb565b6098546040516370a0823160e01b815230600482015287916001600160a01b0316906370a0823190602401602060405180830381865afa158015610da4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc89190611a7a565b1015610e3c5760405162461bcd60e51b815260206004820152603160248201527f4e6f7420656e6f75676820776f726d686f6c65207442544320696e207468652060448201527f6761746577617920746f2062726964676500000000000000000000000000000060648201526084016103fb565b61ffff85166000818152609a60209081526040918290205482518a815291820193909352908101829052606081018690526080810185905263ffffffff841660a08201527ffcdb8efef11d13bb0ebc515477ece314fdac305aeba3d6d9d371838bbe2435cf9060c00160405180910390a186609c6000828254610ebf9190611be3565b90915550506099546040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018990526001600160a01b03909116906379cc679090604401600060405180830381600087803b158015610f2957600080fd5b505af1158015610f3d573d6000803e3d6000fd5b5050609754609854610f5e93506001600160a01b03908116925016896113ca565b80611024576097546098546040517f0f5287b00000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018a905261ffff89166044820152606481018890526084810187905263ffffffff861660a4820152911690630f5287b090349060c4015b60206040518083038185885af1158015610ff7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061101c9190611d46565b915050611098565b6097546098546040805160208082018a905282518083039091018152818301928390527fc5a5ebda000000000000000000000000000000000000000000000000000000009092526001600160a01b039384169363c5a5ebda933493610fd99392909116918d918d9189918c91604401611d70565b6110a26001606555565b95945050505050565b6033546001600160a01b031633146108b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103fb565b6040516001600160a01b0380851660248301528316604482015260648101829052610bc49085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261151f565b6040516001600160a01b0383166024820152604481018290526111ff9084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401611152565b505050565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166112ce5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103fb565b6108b2611604565b600054610100900460ff166113415760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103fb565b6108b2611678565b60026065540361139b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103fb565b6002606555565b60006113b36402540be40083611dc0565b91506113c46402540be40083611de2565b92915050565b80158061145d57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145b9190611a7a565b155b6114cf5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016103fb565b6040516001600160a01b0383166024820152604481018290526111ff9084907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611152565b6001606555565b6000611574826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166116e39092919063ffffffff16565b8051909150156111ff57808060200190518101906115929190611df9565b6111ff5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103fb565b600054610100900460ff1661166f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103fb565b6108b233611204565b600054610100900460ff166115185760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103fb565b60606116f284846000856116fa565b949350505050565b6060824710156117725760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016103fb565b600080866001600160a01b0316858760405161178e9190611e1b565b60006040518083038185875af1925050503d80600081146117cb576040519150601f19603f3d011682016040523d82523d6000602084013e6117d0565b606091505b50915091506117e1878383876117ec565b979650505050505050565b6060831561185b578251600003611854576001600160a01b0385163b6118545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103fb565b50816116f2565b6116f283838151156118705781518083602001fd5b8060405162461bcd60e51b81526004016103fb9190611c22565b60006020828403121561189c57600080fd5b5035919050565b600080602083850312156118b657600080fd5b823567ffffffffffffffff808211156118ce57600080fd5b818501915085601f8301126118e257600080fd5b8135818111156118f157600080fd5b86602082850101111561190357600080fd5b60209290920196919550909350505050565b61ffff81168114610c5757600080fd5b6000806040838503121561193857600080fd5b823561194381611915565b946020939093013593505050565b60006020828403121561196357600080fd5b813561196e81611915565b9392505050565b6001600160a01b0381168114610c5757600080fd5b60008060006060848603121561199f57600080fd5b83356119aa81611975565b925060208401356119ba81611975565b915060408401356119ca81611975565b809150509250925092565b6000602082840312156119e757600080fd5b813561196e81611975565b600080600080600060a08688031215611a0a57600080fd5b853594506020860135611a1c81611915565b93506040860135925060608601359150608086013563ffffffff81168114611a4357600080fd5b809150509295509295909350565b634e487b7160e01b600052601160045260246000fd5b808201808211156113c4576113c4611a51565b600060208284031215611a8c57600080fd5b5051919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715611afc57611afc611ac2565b60405290565b60005b83811015611b1d578181015183820152602001611b05565b50506000910152565b600082601f830112611b3757600080fd5b815167ffffffffffffffff80821115611b5257611b52611ac2565b604051601f8301601f19908116603f01168101908282118183101715611b7a57611b7a611ac2565b81604052838152866020858801011115611b9357600080fd5b611ba4846020830160208901611b02565b9695505050505050565b600060208284031215611bc057600080fd5b815167ffffffffffffffff811115611bd757600080fd5b6116f284828501611b26565b818103818111156113c4576113c4611a51565b60008151808452611c0e816020860160208601611b02565b601f01601f19169290920160200192915050565b60208152600061196e6020830184611bf6565b805160ff81168114611c4657600080fd5b919050565b8051611c4681611915565b600060208284031215611c6857600080fd5b815167ffffffffffffffff80821115611c8057600080fd5b908301906101008286031215611c9557600080fd5b611c9d611ad8565b611ca683611c35565b81526020830151602082015260408301516040820152611cc860608401611c4b565b606082015260808301516080820152611ce360a08401611c4b565b60a082015260c083015160c082015260e083015182811115611d0457600080fd5b611d1087828601611b26565b60e08301525095945050505050565b80516020808301519190811015611d40576000198160200360031b1b821691505b50919050565b600060208284031215611d5857600080fd5b815167ffffffffffffffff8116811461196e57600080fd5b6001600160a01b038716815285602082015261ffff8516604082015283606082015263ffffffff8316608082015260c060a08201526000611db460c0830184611bf6565b98975050505050505050565b600082611ddd57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176113c4576113c4611a51565b600060208284031215611e0b57600080fd5b8151801515811461196e57600080fd5b60008251611e2d818460208701611b02565b919091019291505056fea26469706673582212203fcf6da3edc8eecb75051e8952eff919f1a9ccbf1e1cb6683ec8af46d847e39a64736f6c63430008110033";
470
470
  var isSuperArgs = function (xs) { return xs.length > 1; };
471
471
  var L2WormholeGateway__factory = /** @class */ (function (_super) {
472
472
  __extends(L2WormholeGateway__factory, _super);
@@ -141,11 +141,6 @@ var _abi = [
141
141
  name: "sweepTxFee",
142
142
  type: "uint256",
143
143
  },
144
- {
145
- internalType: "uint256[]",
146
- name: "depositsRevealBlocks",
147
- type: "uint256[]",
148
- },
149
144
  ],
150
145
  indexed: false,
151
146
  internalType: "struct WalletCoordinator.DepositSweepProposal",
@@ -526,11 +521,6 @@ var _abi = [
526
521
  name: "sweepTxFee",
527
522
  type: "uint256",
528
523
  },
529
- {
530
- internalType: "uint256[]",
531
- name: "depositsRevealBlocks",
532
- type: "uint256[]",
533
- },
534
524
  ],
535
525
  internalType: "struct WalletCoordinator.DepositSweepProposal",
536
526
  name: "proposal",
@@ -573,11 +563,6 @@ var _abi = [
573
563
  name: "sweepTxFee",
574
564
  type: "uint256",
575
565
  },
576
- {
577
- internalType: "uint256[]",
578
- name: "depositsRevealBlocks",
579
- type: "uint256[]",
580
- },
581
566
  ],
582
567
  internalType: "struct WalletCoordinator.DepositSweepProposal",
583
568
  name: "proposal",
@@ -710,11 +695,6 @@ var _abi = [
710
695
  name: "sweepTxFee",
711
696
  type: "uint256",
712
697
  },
713
- {
714
- internalType: "uint256[]",
715
- name: "depositsRevealBlocks",
716
- type: "uint256[]",
717
- },
718
698
  ],
719
699
  internalType: "struct WalletCoordinator.DepositSweepProposal",
720
700
  name: "proposal",
@@ -811,7 +791,7 @@ var _abi = [
811
791
  type: "function",
812
792
  },
813
793
  ];
814
- var _bytecode = "0x608060405234801561001057600080fd5b5061355c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80639039bc1c116100ee578063c09975cd11610097578063f2fde38b11610071578063f2fde38b146103f5578063f5aceab614610408578063f74b37bd1461041b578063fbd6d77e1461043257600080fd5b8063c09975cd146103bc578063c4d66de8146103cf578063e78cea92146103e257600080fd5b8063aec32099116100c8578063aec3209914610376578063b39e101614610399578063bc20a080146103ac57600080fd5b80639039bc1c1461031f578063a34fff5914610332578063acaac7051461034957600080fd5b8063715018a61161015b5780637fbf9b39116101355780637fbf9b39146102bd57806385a0924c146102d45780638cb5a0c0146102e75780638da5cb5b146102fa57600080fd5b8063715018a61461027f5780637405d7bf146102875780637b35b4e6146102aa57600080fd5b806334173c2d1161018c57806334173c2d146102445780635486032e146102595780636348c4391461026c57600080fd5b806308553292146101b35780632c259d2b146101eb57806331d8c6221461022c575b600080fd5b609a546101d1906a0100000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61021e6101f9366004612722565b60986020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040516101e2929190612753565b609a546101d190640100000000900463ffffffff1681565b61025761025236600461278b565b610445565b005b610257610267366004612820565b6104ec565b61025761027a36600461278b565b6105f2565b6102576107e9565b61029a6102953660046128b0565b6107fd565b60405190151581526020016101e2565b6102576102b836600461294c565b610ec3565b6099546101d190600160a01b900463ffffffff1681565b6102576102e2366004612969565b610f97565b6102576102f536600461294c565b611049565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101e2565b61025761032d366004612722565b611128565b6099546101d190600160c01b900463ffffffff1681565b609a546103639068010000000000000000900461ffff1681565b60405161ffff90911681526020016101e2565b61029a61038436600461294c565b60976020526000908152604090205460ff1681565b6102576103a73660046129a2565b6111e0565b609a546101d19063ffffffff1681565b606554610307906001600160a01b031681565b6102576103dd36600461294c565b61128a565b609954610307906001600160a01b031681565b61025761040336600461294c565b6114c4565b6102576104163660046129a2565b611554565b6099546101d190600160e01b900463ffffffff1681565b61025761044036600461294c565b611705565b60005a90506104558484846105f2565b6065546099546001600160a01b0390911690637ad226dc90600160c01b900463ffffffff165a61048590856129f5565b61048f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156104ce57600080fd5b505af11580156104e2573d6000803e3d6000fd5b5050505050505050565b6104f46117e8565b609980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff88811691820292909217909255609a805487831667ffffffffffffffff199091168117640100000000888516908102919091176dffffffffffff000000000000000019166801000000000000000061ffff89169081026dffffffff000000000000000000001916919091176a01000000000000000000009588169586021790935560408051958652602086019290925290840152606083015260808201527fc36fe6b9d74f864b5e345edc3435eb451a80669ec78c8357cc15e3a1d3897a739060a00160405180910390a15050505050565b3360009081526097602052604090205460ff166106565760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f72000000000060448201526064015b60405180910390fd5b6001600160601b03198316600090815260986020526040902054839063ffffffff1642116106b65760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b6106c08383611842565b61070c5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d657373616765000000604482015260640161064d565b60408051808201909152609954819061073290600160a01b900463ffffffff1642612a1b565b63ffffffff168152602001600190526001600160601b0319851660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff19161764010000000083600581111561079e5761079e61273d565b0217905550506040513391507f46f4f1fc7a1c5c364372f2e4398c3657d5e5cc35ea286f9972459376b29b1384906107db90879087908790612a3f565b60405180910390a250505050565b6107f16117e8565b6107fb60006118cc565b565b600060016099546001600160a01b031663e65e19d561081f6020880188612722565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190612b3c565b60e00151600581111561089e5761089e61273d565b146108eb5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c6976652073746174650000000000604482015260640161064d565b60006108fa6020860186612bdf565b9050116109495760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a650000000000000000604482015260640161064d565b609a5468010000000000000000900461ffff166109696020860186612bdf565b905011156109b95760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a65000000000000604482015260640161064d565b816109c76020860186612bdf565b905014610a3c5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e672065787472612064617461000000000000000000000000000000000000606482015260840161064d565b610a586040850135610a516020870187612bdf565b905061192b565b6000805b610a696020870187612bdf565b9050811015610eb5576000610a816020880188612bdf565b83818110610a9157610a91612c29565b905060400201803603810190610aa79190612c3f565b90506000868684818110610abd57610abd612c29565b9050602002810190610acf9190612c95565b610ad890612d83565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610b21939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b949190612e85565b9050806040015163ffffffff16600003610bf05760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c6564000000000000000000000000604482015260640161064d565b609a546040820151610c089163ffffffff1690612a1b565b63ffffffff164211610c5c5760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f7420616368696576656420796574604482015260640161064d565b60a081015163ffffffff1615610cb45760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c72656164792073776570740000000000000000000000604482015260640161064d565b610cc383826000015184611ad6565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610d0c90640100000000900463ffffffff1682612f2c565b63ffffffff164210610d865760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f742070726573657276656400000000000000000000000000000000000000606482015260840161064d565b610d9360208b018b612722565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610e295760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c65740000000000000000000000000000000000000000000000000000606482015260840161064d565b84600003610e3957816060015195505b856001600160a01b031682606001516001600160a01b031614610e9e5760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c7400604482015260640161064d565b505050508080610ead90612f49565b915050610a5c565b5060019150505b9392505050565b33610ed66033546001600160a01b031690565b6001600160a01b031614610f2c5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161064d565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610f9f6117e8565b609980547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8581169182027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160c01b928516928302179092556040805192835260208301919091527fe67c0a182190bf283264290d7208533d5936483c98baee174eeac036b081360a91015b60405180910390a15050565b6110516117e8565b6001600160a01b03811660009081526097602052604090205460ff166110df5760405162461bcd60e51b815260206004820152602160248201527f546869732061646472657373206973206e6f74206120636f6f7264696e61746f60448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19169055517fcf15831020102bbbe0547b0c3460aa49715f2646e0911760d2b069e0fb2f62a19190a250565b6111306117e8565b60408051808201909152600080825260208201526001600160601b0319821660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156111a1576111a161273d565b0217905550506040516001600160601b0319831691507f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e690600090a250565b60005a90506111ee82611554565b606554609a546001600160a01b0390911690637ad226dc906a0100000000000000000000900463ffffffff165a61122590856129f5565b61122f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561126e57600080fd5b505af1158015611282573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156112aa5750600054600160ff909116105b806112c45750303b1580156112c4575060005460ff166001145b6113365760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161064d565b6000805460ff191660011790558015611359576000805461ff0019166101001790555b611361611d2a565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190612f62565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609980549091167d38400000138800000e1000000000000000000000000000000000000000001790555050609a80546dffffffffffffffffffffffffffff19166b138800050001518000001c201790555080156114c0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161103d565b5050565b6114cc6117e8565b6001600160a01b0381166115485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064d565b611551816118cc565b50565b3360009081526097602052604090205460ff166115b35760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f720000000000604482015260640161064d565b6115c06020820182612722565b6001600160601b0319811660009081526098602052604090205463ffffffff16421161161e5760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b60408051808201909152609954819061164490600160e01b900463ffffffff1642612a1b565b63ffffffff16815260200160029052609860006116646020860186612722565b6001600160601b03191681526020808201929092526040016000208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156116c0576116c061273d565b0217905550506040513391507f80936884707d12c5d8bb32b32fa91535e4f4200316fb138241181fb647d39fa4906116f99085906130a6565b60405180910390a25050565b61170d6117e8565b6001600160a01b03811660009081526097602052604090205460ff161561179c5760405162461bcd60e51b815260206004820152602560248201527f54686973206164647265737320697320616c7265616479206120636f6f72646960448201527f6e61746f72000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517f56e6c5206d2baab7a01569b19d84b5963ca9f96e10f55076b5e5987fbf780cf59190a250565b6033546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064d565b600060108214611854575060006118c6565b611898600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050611d9d9050565b77ffffffffffffffffffffffffffffffffffffffffffffffff19908116146118c2575060006118c6565b5060015b92915050565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082116119a15760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f00000000000000000000000000000000000000000000000000606482015260840161064d565b60006119ad8284613170565b90506000826119bc83866129f5565b6119c69190613184565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a419190613198565b5092505067ffffffffffffffff82169050611a5c8484612a08565b1115611acf5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f6869676800000000000000000000000000000000000000000000000000000000606482015260840161064d565b5050505050565b805180516020808301516040808501516060909501519051600095611b1895611b0495909493919201613213565b604051602081830303815290604052611dac565b84519091508114611b915760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d617463680000000000000000000000000000000000000000000000606482015260840161064d565b6000838360200151846040015185606001518660800151604051602001611bbc959493929190613249565b60405160208183030381529060405290506000611bf4866020015163ffffffff16856000015160400151611dd390919063ffffffff16565b90506000611c0182611fb5565b905080516014148015611c395750611c1883611fcf565b6001600160601b031916611c2d826000611d9d565b6001600160601b031916145b15611c475750505050505050565b80516020148015611cae5750600283604051611c6391906134cf565b602060405180830381855afa158015611c80573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ca391906134db565b611cac82611ff6565b145b15611cbc5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d617463680000000000000000000000000000000000606482015260840161064d565b600054610100900460ff16611d955760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb612011565b6000610ebc8383016020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611de185612085565b909250905060018201611e5c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e67000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b808410611eab5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161064d565b600080611eb9846001612a08565b905060005b86811015611f4157611ed0888361209c565b92506000198303611f235760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611f2d8383612a08565b915080611f3981612f49565b915050611ebe565b50611f4c878261209c565b91506000198203611f9f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611faa878284612109565b979650505050505050565b60606118c6826008808551611fca91906129f5565b6121d6565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000815160000361200957506000919050565b506020015190565b600054610100900460ff1661207c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6107fb336118cc565b6000806120938360006124db565b91509150915091565b60006120a9826009612a08565b835110156120ba57506000196118c6565b6000806120d1856120cc866008612a08565b6124db565b9092509050600182016120ea57600019925050506118c6565b806120f6836009612a08565b6121009190612a08565b95945050505050565b6060816000036121285750604080516020810190915260008152610ebc565b60006121348385612a08565b90508381118015612146575080855110155b6121925760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e647300000000000000000000000000604482015260640161064d565b604051915082604083010160405282825283850182038460208701018481015b808210156121cb578151838301526020820191506121b2565b505050509392505050565b606060008484815181106121ec576121ec612c29565b016020015160f81c9050826122028260016134f4565b60ff1614612220575050604080516020810190915260008152610ebc565b8461222c856001612a08565b8151811061223c5761223c612c29565b016020015160f81c6000036122fb5760028160ff16101561226d575050604080516020810190915260008152610ebc565b60008561227b866002612a08565b8151811061228b5761228b612c29565b016020015160f81c90506122a060028361350d565b60ff16811415806122be5750806020141580156122be575080601414155b156122dc576040518060200160405280600081525092505050610ebc565b6122f26122ea866003612a08565b879083612109565b92505050610ebc565b60006123078686611d9d565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a900000000000000000000000000000000000000000000000000000000000361241b578561235e866003612a08565b8151811061236e5761236e612c29565b60209101015160f81c60141415806123e657506123a160026123908688612a08565b61239a91906129f5565b8790611d9d565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15612404576040518060200160405280600081525092505050610ebc565b6122f2612412866004612a08565b87906014612109565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036124c2578560016124718688612a08565b61247b91906129f5565b8151811061248b5761248b612c29565b60209101015160f81c6087146124b4576040518060200160405280600081525092505050610ebc565b6122f2612412866003612a08565b5050506040805160208101909152600081529392505050565b60008060006124ea858561267f565b90508060ff1660000361251f57600085858151811061250b5761250b612c29565b016020015190935060f81c91506126789050565b8361252b8260016134f4565b60ff166125389190612a08565b8551101561254f5760001960009250925050612678565b60008160ff166002036125935761258861257461256d876001612a08565b8890611d9d565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061266e565b8160ff166004036125e2576125d56125af61256d876001612a08565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff16905061266e565b8160ff1660080361266e576126616125fe61256d876001612a08565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600082828151811061269357612693612c29565b016020015160f81c60ff036126aa575060086118c6565b8282815181106126bc576126bc612c29565b016020015160f81c60fe036126d3575060046118c6565b8282815181106126e5576126e5612c29565b016020015160f81c60fd036126fc575060026118c6565b50600092915050565b80356001600160601b03198116811461271d57600080fd5b919050565b60006020828403121561273457600080fd5b610ebc82612705565b634e487b7160e01b600052602160045260246000fd5b63ffffffff83168152604081016006831061277e57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6000806000604084860312156127a057600080fd5b6127a984612705565b9250602084013567ffffffffffffffff808211156127c657600080fd5b818601915086601f8301126127da57600080fd5b8135818111156127e957600080fd5b8760208285010111156127fb57600080fd5b6020830194508093505050509250925092565b63ffffffff8116811461155157600080fd5b600080600080600060a0868803121561283857600080fd5b85356128438161280e565b945060208601356128538161280e565b935060408601356128638161280e565b9250606086013561ffff8116811461287a57600080fd5b9150608086013561288a8161280e565b809150509295509295909350565b6000608082840312156128aa57600080fd5b50919050565b6000806000604084860312156128c557600080fd5b833567ffffffffffffffff808211156128dd57600080fd5b6128e987838801612898565b945060208601359150808211156128ff57600080fd5b818601915086601f83011261291357600080fd5b81358181111561292257600080fd5b8760208260051b85010111156127fb57600080fd5b6001600160a01b038116811461155157600080fd5b60006020828403121561295e57600080fd5b8135610ebc81612937565b6000806040838503121561297c57600080fd5b82356129878161280e565b915060208301356129978161280e565b809150509250929050565b6000602082840312156129b457600080fd5b813567ffffffffffffffff8111156129cb57600080fd5b6129d784828501612898565b949350505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156118c6576118c66129df565b808201808211156118c6576118c66129df565b63ffffffff818116838216019080821115612a3857612a386129df565b5092915050565b6bffffffffffffffffffffffff198416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612abe57612abe612a84565b60405290565b60405160a0810167ffffffffffffffff81118282101715612abe57612abe612a84565b6040516080810167ffffffffffffffff81118282101715612abe57612abe612a84565b805167ffffffffffffffff8116811461271d57600080fd5b805161271d8161280e565b80516006811061271d57600080fd5b60006101208284031215612b4f57600080fd5b612b57612a9a565b8251815260208301516020820152612b7160408401612b0a565b6040820152612b8260608401612b22565b6060820152612b9360808401612b22565b6080820152612ba460a08401612b22565b60a0820152612bb560c08401612b22565b60c0820152612bc660e08401612b2d565b60e0820152610100928301519281019290925250919050565b6000808335601e19843603018112612bf657600080fd5b83018035915067ffffffffffffffff821115612c1157600080fd5b6020019150600681901b360382131561267857600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612c5157600080fd5b6040516040810181811067ffffffffffffffff82111715612c7457612c74612a84565b604052823581526020830135612c898161280e565b60208201529392505050565b60008235609e19833603018112612cab57600080fd5b9190910192915050565b80356001600160e01b03198116811461271d57600080fd5b600082601f830112612cde57600080fd5b813567ffffffffffffffff80821115612cf957612cf9612a84565b604051601f8301601f19908116603f01168101908282118183101715612d2157612d21612a84565b81604052838152866020858801011115612d3a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff198116811461271d57600080fd5b600060a08236031215612d9557600080fd5b612d9d612ac4565b823567ffffffffffffffff80821115612db557600080fd5b818501915060808236031215612dca57600080fd5b612dd2612ae7565b612ddb83612cb5565b8152602083013582811115612def57600080fd5b612dfb36828601612ccd565b602083015250604083013582811115612e1357600080fd5b612e1f36828601612ccd565b604083015250612e3160608401612cb5565b6060820152835250612e47905060208401612d5a565b6020820152612e5860408401612705565b6040820152612e6960608401612705565b6060820152612e7a60808401612cb5565b608082015292915050565b600060c08284031215612e9757600080fd5b60405160c0810181811067ffffffffffffffff82111715612eba57612eba612a84565b6040528251612ec881612937565b8152612ed660208401612b0a565b60208201526040830151612ee98161280e565b60408201526060830151612efc81612937565b6060820152612f0d60808401612b0a565b608082015260a0830151612f208161280e565b60a08201529392505050565b63ffffffff828116828216039080821115612a3857612a386129df565b600060018201612f5b57612f5b6129df565b5060010190565b60008060008060808587031215612f7857600080fd5b8451612f8381612937565b6020860151909450612f9481612937565b6040860151909350612fa581612937565b6060860151909250612fb681612937565b939692955090935050565b8183526000602080850194508260005b85811015613007578135875282820135612fea8161280e565b63ffffffff16878401526040968701969190910190600101612fd1565b509495945050505050565b6000808335601e1984360301811261302957600080fd5b830160208101925035905067ffffffffffffffff81111561304957600080fd5b8060051b360382131561267857600080fd5b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561308d57600080fd5b8260051b80836020870137939093016020019392505050565b602081526001600160601b03196130bc83612705565b16602082015260006020830135601e198436030181126130db57600080fd5b830160208101903567ffffffffffffffff8111156130f857600080fd5b8060061b360382131561310a57600080fd5b6080604085015261311f60a085018284612fc1565b915050604084013560608401526131396060850185613012565b848303601f1901608086015261315083828461305b565b9695505050505050565b634e487b7160e01b600052601260045260246000fd5b60008261317f5761317f61315a565b500690565b6000826131935761319361315a565b500490565b600080600080608085870312156131ae57600080fd5b6131b785612b0a565b93506131c560208601612b0a565b92506131d360408601612b0a565b91506060850151612fb68161280e565b6000815160005b8181101561320457602081850181015186830152016131ea565b50600093019283525090919050565b60006001600160e01b0319808716835261323961323360048501886131e3565b866131e3565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f820152600061332e6133216132f8602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526133ed6133216132f86132cf6133c4601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506134c361349a6006830161339b565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000610ebc82846131e3565b6000602082840312156134ed57600080fd5b5051919050565b60ff81811683821601908111156118c6576118c66129df565b60ff82811682821603908111156118c6576118c66129df56fea2646970667358221220cdc12ff5bef6cd936f8450f17f92fb868d5b75c0b204e3466941ae98a9b16f3064736f6c63430008110033";
794
+ var _bytecode = "0x608060405234801561001057600080fd5b50613494806100206000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638cb5a0c0116100ee578063bc20a08011610097578063e78cea9211610071578063e78cea92146103f5578063f2fde38b14610408578063f74b37bd1461041b578063fbd6d77e1461043257600080fd5b8063bc20a080146103bf578063c09975cd146103cf578063c4d66de8146103e257600080fd5b8063a34fff59116100c8578063a34fff5914610358578063acaac7051461036f578063aec320991461039c57600080fd5b80638cb5a0c01461030d5780638da5cb5b146103205780639039bc1c1461034557600080fd5b80636ed6405f1161015b5780637698fa97116101355780637698fa97146102ad5780637b35b4e6146102d05780637fbf9b39146102e357806385a0924c146102fa57600080fd5b80636ed6405f1461027f578063715018a614610292578063742b386b1461029a57600080fd5b806334173c2d1161018c57806334173c2d146102445780635486032e146102595780636348c4391461026c57600080fd5b806308553292146101b35780632c259d2b146101eb57806331d8c6221461022c575b600080fd5b609a546101d1906a0100000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61021e6101f9366004612722565b60986020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040516101e2929190612753565b609a546101d190640100000000900463ffffffff1681565b61025761025236600461278b565b610445565b005b610257610267366004612820565b6104ec565b61025761027a36600461278b565b6105f2565b61025761028d3660046128b0565b6107e9565b610257610893565b6102576102a83660046128b0565b6108a7565b6102c06102bb3660046128ed565b610a58565b60405190151581526020016101e2565b6102576102de366004612989565b61111e565b6099546101d190600160a01b900463ffffffff1681565b6102576103083660046129a6565b6111f2565b61025761031b366004612989565b6112a4565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101e2565b610257610353366004612722565b611383565b6099546101d190600160c01b900463ffffffff1681565b609a546103899068010000000000000000900461ffff1681565b60405161ffff90911681526020016101e2565b6102c06103aa366004612989565b60976020526000908152604090205460ff1681565b609a546101d19063ffffffff1681565b60655461032d906001600160a01b031681565b6102576103f0366004612989565b61143b565b60995461032d906001600160a01b031681565b610257610416366004612989565b611675565b6099546101d190600160e01b900463ffffffff1681565b610257610440366004612989565b611705565b60005a90506104558484846105f2565b6065546099546001600160a01b0390911690637ad226dc90600160c01b900463ffffffff165a61048590856129f5565b61048f9190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156104ce57600080fd5b505af11580156104e2573d6000803e3d6000fd5b5050505050505050565b6104f46117e8565b609980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff88811691820292909217909255609a805487831667ffffffffffffffff199091168117640100000000888516908102919091176dffffffffffff000000000000000019166801000000000000000061ffff89169081026dffffffff000000000000000000001916919091176a01000000000000000000009588169586021790935560408051958652602086019290925290840152606083015260808201527fc36fe6b9d74f864b5e345edc3435eb451a80669ec78c8357cc15e3a1d3897a739060a00160405180910390a15050505050565b3360009081526097602052604090205460ff166106565760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f72000000000060448201526064015b60405180910390fd5b6001600160601b03198316600090815260986020526040902054839063ffffffff1642116106b65760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b6106c08383611842565b61070c5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420612076616c696420686561727462656174206d657373616765000000604482015260640161064d565b60408051808201909152609954819061073290600160a01b900463ffffffff1642612a1b565b63ffffffff168152602001600190526001600160601b0319851660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff19161764010000000083600581111561079e5761079e61273d565b0217905550506040513391507f46f4f1fc7a1c5c364372f2e4398c3657d5e5cc35ea286f9972459376b29b1384906107db90879087908790612a3f565b60405180910390a250505050565b60005a90506107f7826108a7565b606554609a546001600160a01b0390911690637ad226dc906a0100000000000000000000900463ffffffff165a61082e90856129f5565b6108389190612a08565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561087757600080fd5b505af115801561088b573d6000803e3d6000fd5b505050505050565b61089b6117e8565b6108a560006118cc565b565b3360009081526097602052604090205460ff166109065760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f74206120636f6f7264696e61746f720000000000604482015260640161064d565b6109136020820182612722565b6001600160601b0319811660009081526098602052604090205463ffffffff1642116109715760405162461bcd60e51b815260206004820152600d60248201526c15d85b1b195d081b1bd8dad959609a1b604482015260640161064d565b60408051808201909152609954819061099790600160e01b900463ffffffff1642612a1b565b63ffffffff16815260200160029052609860006109b76020860186612722565b6001600160601b03191681526020808201929092526040016000208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff191617640100000000836005811115610a1357610a1361273d565b0217905550506040513391507fe17b4ed4828b9f018ca549cfd5f662e5551408093b1db16d94b9cd242e6df17190610a4c908590612a84565b60405180910390a25050565b600060016099546001600160a01b031663e65e19d5610a7a6020880188612722565b6040516001600160e01b031960e084901b1681526001600160601b0319909116600482015260240161012060405180830381865afa158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae49190612c0d565b60e001516005811115610af957610af961273d565b14610b465760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c6976652073746174650000000000604482015260640161064d565b6000610b556020860186612cb0565b905011610ba45760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a650000000000000000604482015260640161064d565b609a5468010000000000000000900461ffff16610bc46020860186612cb0565b90501115610c145760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a65000000000000604482015260640161064d565b81610c226020860186612cb0565b905014610c975760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e672065787472612064617461000000000000000000000000000000000000606482015260840161064d565b610cb36040850135610cac6020870187612cb0565b905061192b565b6000805b610cc46020870187612cb0565b9050811015611110576000610cdc6020880188612cb0565b83818110610cec57610cec612cfa565b905060400201803603810190610d029190612d10565b90506000868684818110610d1857610d18612cfa565b9050602002810190610d2a9190612d66565b610d3390612e54565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610d7c939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610dcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610def9190612f56565b9050806040015163ffffffff16600003610e4b5760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c6564000000000000000000000000604482015260640161064d565b609a546040820151610e639163ffffffff1690612a1b565b63ffffffff164211610eb75760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f7420616368696576656420796574604482015260640161064d565b60a081015163ffffffff1615610f0f5760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c72656164792073776570740000000000000000000000604482015260640161064d565b610f1e83826000015184611ad6565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610f6790640100000000900463ffffffff1682612ffd565b63ffffffff164210610fe15760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f742070726573657276656400000000000000000000000000000000000000606482015260840161064d565b610fee60208b018b612722565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff1916146110845760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c65740000000000000000000000000000000000000000000000000000606482015260840161064d565b8460000361109457816060015195505b856001600160a01b031682606001516001600160a01b0316146110f95760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c7400604482015260640161064d565b5050505080806111089061301a565b915050610cb7565b5060019150505b9392505050565b336111316033546001600160a01b031690565b6001600160a01b0316146111875760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161064d565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6111fa6117e8565b609980547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8581169182027fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1692909217600160c01b928516928302179092556040805192835260208301919091527fe67c0a182190bf283264290d7208533d5936483c98baee174eeac036b081360a91015b60405180910390a15050565b6112ac6117e8565b6001600160a01b03811660009081526097602052604090205460ff1661133a5760405162461bcd60e51b815260206004820152602160248201527f546869732061646472657373206973206e6f74206120636f6f7264696e61746f60448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19169055517fcf15831020102bbbe0547b0c3460aa49715f2646e0911760d2b069e0fb2f62a19190a250565b61138b6117e8565b60408051808201909152600080825260208201526001600160601b0319821660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360058111156113fc576113fc61273d565b0217905550506040516001600160601b0319831691507f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e690600090a250565b600054610100900460ff161580801561145b5750600054600160ff909116105b806114755750303b158015611475575060005460ff166001145b6114e75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161064d565b6000805460ff19166001179055801561150a576000805461ff0019166101001790555b611512611d2a565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa158015611591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b59190613033565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609980549091167d38400000138800000e1000000000000000000000000000000000000000001790555050609a80546dffffffffffffffffffffffffffff19166b138800050001518000001c20179055508015611671576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611298565b5050565b61167d6117e8565b6001600160a01b0381166116f95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064d565b611702816118cc565b50565b61170d6117e8565b6001600160a01b03811660009081526097602052604090205460ff161561179c5760405162461bcd60e51b815260206004820152602560248201527f54686973206164647265737320697320616c7265616479206120636f6f72646960448201527f6e61746f72000000000000000000000000000000000000000000000000000000606482015260840161064d565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517f56e6c5206d2baab7a01569b19d84b5963ca9f96e10f55076b5e5987fbf780cf59190a250565b6033546001600160a01b031633146108a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064d565b600060108214611854575060006118c6565b611898600084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050611d9d9050565b77ffffffffffffffffffffffffffffffffffffffffffffffff19908116146118c2575060006118c6565b5060015b92915050565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082116119a15760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f00000000000000000000000000000000000000000000000000606482015260840161064d565b60006119ad82846130a8565b90506000826119bc83866129f5565b6119c691906130bc565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4191906130d0565b5092505067ffffffffffffffff82169050611a5c8484612a08565b1115611acf5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f6869676800000000000000000000000000000000000000000000000000000000606482015260840161064d565b5050505050565b805180516020808301516040808501516060909501519051600095611b1895611b049590949391920161314b565b604051602081830303815290604052611dac565b84519091508114611b915760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d617463680000000000000000000000000000000000000000000000606482015260840161064d565b6000838360200151846040015185606001518660800151604051602001611bbc959493929190613181565b60405160208183030381529060405290506000611bf4866020015163ffffffff16856000015160400151611dd390919063ffffffff16565b90506000611c0182611fb5565b905080516014148015611c395750611c1883611fcf565b6001600160601b031916611c2d826000611d9d565b6001600160601b031916145b15611c475750505050505050565b80516020148015611cae5750600283604051611c639190613407565b602060405180830381855afa158015611c80573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ca39190613413565b611cac82611ff6565b145b15611cbc5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d617463680000000000000000000000000000000000606482015260840161064d565b600054610100900460ff16611d955760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6108a5612011565b60006111178383016020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611de185612085565b909250905060018201611e5c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e67000000000000000000000000000000000000000000000000000000000000606482015260840161064d565b808410611eab5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161064d565b600080611eb9846001612a08565b905060005b86811015611f4157611ed0888361209c565b92506000198303611f235760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611f2d8383612a08565b915080611f398161301a565b915050611ebe565b50611f4c878261209c565b91506000198203611f9f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161064d565b611faa878284612109565b979650505050505050565b60606118c6826008808551611fca91906129f5565b6121d6565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000815160000361200957506000919050565b506020015190565b600054610100900460ff1661207c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161064d565b6108a5336118cc565b6000806120938360006124db565b91509150915091565b60006120a9826009612a08565b835110156120ba57506000196118c6565b6000806120d1856120cc866008612a08565b6124db565b9092509050600182016120ea57600019925050506118c6565b806120f6836009612a08565b6121009190612a08565b95945050505050565b6060816000036121285750604080516020810190915260008152611117565b60006121348385612a08565b90508381118015612146575080855110155b6121925760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e647300000000000000000000000000604482015260640161064d565b604051915082604083010160405282825283850182038460208701018481015b808210156121cb578151838301526020820191506121b2565b505050509392505050565b606060008484815181106121ec576121ec612cfa565b016020015160f81c90508261220282600161342c565b60ff1614612220575050604080516020810190915260008152611117565b8461222c856001612a08565b8151811061223c5761223c612cfa565b016020015160f81c6000036122fb5760028160ff16101561226d575050604080516020810190915260008152611117565b60008561227b866002612a08565b8151811061228b5761228b612cfa565b016020015160f81c90506122a0600283613445565b60ff16811415806122be5750806020141580156122be575080601414155b156122dc576040518060200160405280600081525092505050611117565b6122f26122ea866003612a08565b879083612109565b92505050611117565b60006123078686611d9d565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a900000000000000000000000000000000000000000000000000000000000361241b578561235e866003612a08565b8151811061236e5761236e612cfa565b60209101015160f81c60141415806123e657506123a160026123908688612a08565b61239a91906129f5565b8790611d9d565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15612404576040518060200160405280600081525092505050611117565b6122f2612412866004612a08565b87906014612109565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036124c2578560016124718688612a08565b61247b91906129f5565b8151811061248b5761248b612cfa565b60209101015160f81c6087146124b4576040518060200160405280600081525092505050611117565b6122f2612412866003612a08565b5050506040805160208101909152600081529392505050565b60008060006124ea858561267f565b90508060ff1660000361251f57600085858151811061250b5761250b612cfa565b016020015190935060f81c91506126789050565b8361252b82600161342c565b60ff166125389190612a08565b8551101561254f5760001960009250925050612678565b60008160ff166002036125935761258861257461256d876001612a08565b8890611d9d565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061266e565b8160ff166004036125e2576125d56125af61256d876001612a08565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff16905061266e565b8160ff1660080361266e576126616125fe61256d876001612a08565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600082828151811061269357612693612cfa565b016020015160f81c60ff036126aa575060086118c6565b8282815181106126bc576126bc612cfa565b016020015160f81c60fe036126d3575060046118c6565b8282815181106126e5576126e5612cfa565b016020015160f81c60fd036126fc575060026118c6565b50600092915050565b80356001600160601b03198116811461271d57600080fd5b919050565b60006020828403121561273457600080fd5b61111782612705565b634e487b7160e01b600052602160045260246000fd5b63ffffffff83168152604081016006831061277e57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b6000806000604084860312156127a057600080fd5b6127a984612705565b9250602084013567ffffffffffffffff808211156127c657600080fd5b818601915086601f8301126127da57600080fd5b8135818111156127e957600080fd5b8760208285010111156127fb57600080fd5b6020830194508093505050509250925092565b63ffffffff8116811461170257600080fd5b600080600080600060a0868803121561283857600080fd5b85356128438161280e565b945060208601356128538161280e565b935060408601356128638161280e565b9250606086013561ffff8116811461287a57600080fd5b9150608086013561288a8161280e565b809150509295509295909350565b6000606082840312156128aa57600080fd5b50919050565b6000602082840312156128c257600080fd5b813567ffffffffffffffff8111156128d957600080fd5b6128e584828501612898565b949350505050565b60008060006040848603121561290257600080fd5b833567ffffffffffffffff8082111561291a57600080fd5b61292687838801612898565b9450602086013591508082111561293c57600080fd5b818601915086601f83011261295057600080fd5b81358181111561295f57600080fd5b8760208260051b85010111156127fb57600080fd5b6001600160a01b038116811461170257600080fd5b60006020828403121561299b57600080fd5b813561111781612974565b600080604083850312156129b957600080fd5b82356129c48161280e565b915060208301356129d48161280e565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156118c6576118c66129df565b808201808211156118c6576118c66129df565b63ffffffff818116838216019080821115612a3857612a386129df565b5092915050565b6bffffffffffffffffffffffff198416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60006020808352608083016bffffffffffffffffffffffff19612aa686612705565b168285015281850135601e19863603018112612ac157600080fd5b8501828101903567ffffffffffffffff811115612add57600080fd5b8060061b3603821315612aef57600080fd5b60406060818801528382855260a088019050839450600093505b82841015612b3e578435815285850135612b228161280e565b63ffffffff168187015293810193600193909301928101612b09565b970135606096909601959095525093949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612b8f57612b8f612b55565b60405290565b60405160a0810167ffffffffffffffff81118282101715612b8f57612b8f612b55565b6040516080810167ffffffffffffffff81118282101715612b8f57612b8f612b55565b805167ffffffffffffffff8116811461271d57600080fd5b805161271d8161280e565b80516006811061271d57600080fd5b60006101208284031215612c2057600080fd5b612c28612b6b565b8251815260208301516020820152612c4260408401612bdb565b6040820152612c5360608401612bf3565b6060820152612c6460808401612bf3565b6080820152612c7560a08401612bf3565b60a0820152612c8660c08401612bf3565b60c0820152612c9760e08401612bfe565b60e0820152610100928301519281019290925250919050565b6000808335601e19843603018112612cc757600080fd5b83018035915067ffffffffffffffff821115612ce257600080fd5b6020019150600681901b360382131561267857600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612d2257600080fd5b6040516040810181811067ffffffffffffffff82111715612d4557612d45612b55565b604052823581526020830135612d5a8161280e565b60208201529392505050565b60008235609e19833603018112612d7c57600080fd5b9190910192915050565b80356001600160e01b03198116811461271d57600080fd5b600082601f830112612daf57600080fd5b813567ffffffffffffffff80821115612dca57612dca612b55565b604051601f8301601f19908116603f01168101908282118183101715612df257612df2612b55565b81604052838152866020858801011115612e0b57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff198116811461271d57600080fd5b600060a08236031215612e6657600080fd5b612e6e612b95565b823567ffffffffffffffff80821115612e8657600080fd5b818501915060808236031215612e9b57600080fd5b612ea3612bb8565b612eac83612d86565b8152602083013582811115612ec057600080fd5b612ecc36828601612d9e565b602083015250604083013582811115612ee457600080fd5b612ef036828601612d9e565b604083015250612f0260608401612d86565b6060820152835250612f18905060208401612e2b565b6020820152612f2960408401612705565b6040820152612f3a60608401612705565b6060820152612f4b60808401612d86565b608082015292915050565b600060c08284031215612f6857600080fd5b60405160c0810181811067ffffffffffffffff82111715612f8b57612f8b612b55565b6040528251612f9981612974565b8152612fa760208401612bdb565b60208201526040830151612fba8161280e565b60408201526060830151612fcd81612974565b6060820152612fde60808401612bdb565b608082015260a0830151612ff18161280e565b60a08201529392505050565b63ffffffff828116828216039080821115612a3857612a386129df565b60006001820161302c5761302c6129df565b5060010190565b6000806000806080858703121561304957600080fd5b845161305481612974565b602086015190945061306581612974565b604086015190935061307681612974565b606086015190925061308781612974565b939692955090935050565b634e487b7160e01b600052601260045260246000fd5b6000826130b7576130b7613092565b500690565b6000826130cb576130cb613092565b500490565b600080600080608085870312156130e657600080fd5b6130ef85612bdb565b93506130fd60208601612bdb565b925061310b60408601612bdb565b915060608501516130878161280e565b6000815160005b8181101561313c5760208185018101518683015201613122565b50600093019283525090919050565b60006001600160e01b0319808716835261317161316b600485018861311b565b8661311b565b9316835250506004019392505050565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f8201526000613266613259613230602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526133256132596132306132076132fc601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506133fb6133d2600683016132d3565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000611117828461311b565b60006020828403121561342557600080fd5b5051919050565b60ff81811683821601908111156118c6576118c66129df565b60ff82811682821603908111156118c6576118c66129df56fea2646970667358221220fe278e8a73ce14c60507673702fe03a06fa6cbe43f2ab9d8a248e986586ce5b164736f6c63430008110033";
815
795
  var isSuperArgs = function (xs) { return xs.length > 1; };
816
796
  var WalletCoordinator__factory = /** @class */ (function (_super) {
817
797
  __extends(WalletCoordinator__factory, _super);