From 601667217953f5a23d92010f948e39132ab80177 Mon Sep 17 00:00:00 2001 From: Gregory Sobol Date: Thu, 5 Sep 2024 17:35:29 +0200 Subject: [PATCH] fix(ethexe): problem with too fast request to rpc after transaction confirmation (#4221) --- Cargo.lock | 1 + ethexe/cli/src/tests.rs | 2 +- ethexe/ethereum/Cargo.toml | 1 + ethexe/ethereum/Mirror.json | 2 +- ethexe/ethereum/MirrorProxy.json | 2 +- ethexe/ethereum/Router.json | 2 +- .../ethereum/TransparentUpgradeableProxy.json | 2 +- ethexe/ethereum/WrappedVara.json | 2 +- ethexe/ethereum/src/lib.rs | 48 +++++++++++++++++-- ethexe/ethereum/src/mirror/mod.rs | 13 ++--- ethexe/ethereum/src/router/mod.rs | 24 +++------- ethexe/ethereum/src/wvara/mod.rs | 14 ++---- 12 files changed, 66 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 219ac6281b6..7953d9f9bee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5179,6 +5179,7 @@ dependencies = [ "log", "parity-scale-codec", "rand 0.8.5", + "tokio", ] [[package]] diff --git a/ethexe/cli/src/tests.rs b/ethexe/cli/src/tests.rs index 8d6e1c08149..02bd2122498 100644 --- a/ethexe/cli/src/tests.rs +++ b/ethexe/cli/src/tests.rs @@ -516,7 +516,7 @@ async fn ping() { } #[tokio::test(flavor = "multi_thread")] -#[ntest::timeout(60_000)] +#[ntest::timeout(120_000)] async fn ping_reorg() { gear_utils::init_default_logger(); diff --git a/ethexe/ethereum/Cargo.toml b/ethexe/ethereum/Cargo.toml index b3928a02a43..5fa3ee19fad 100644 --- a/ethexe/ethereum/Cargo.toml +++ b/ethexe/ethereum/Cargo.toml @@ -32,6 +32,7 @@ alloy = { workspace = true, features = [ futures.workspace = true log.workspace = true parity-scale-codec = { workspace = true, features = ["std", "derive"] } +tokio.workspace = true [dev-dependencies] rand.workspace = true diff --git a/ethexe/ethereum/Mirror.json b/ethexe/ethereum/Mirror.json index e7a1b5863a7..41f5c67d58a 100644 --- a/ethexe/ethereum/Mirror.json +++ b/ethexe/ethereum/Mirror.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createDecoder","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decoder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"executableBalanceBurned","inputs":[{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"initMessage","inputs":[{"name":"source","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"executableBalance","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messageSent","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"replySent","inputs":[{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyTo","type":"bytes32","internalType":"bytes32"},{"name":"replyCode","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendMessage","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateState","inputs":[{"name":"newStateHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"valueClaimed","inputs":[{"name":"claimedId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecutableBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Message","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageQueueingRequested","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Reply","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyQueueingRequested","inputs":[{"name":"repliedTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"StateChanged","inputs":[{"name":"stateHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60808060405234601557611051908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f803560e01c806314503e51146108d757806329336f39146108035780635b1b84f714610652578063701da98e14610635578063704ed542146105e15780638ea59e1d1461057c57806391d5a64c146105395780639cb3300514610510578063affed0e0146104f2578063c2df60091461048f578063c78bde7714610412578063d5624222146102c2578063dca4a37314610282578063de1dd2e0146100ee5763f887ea40146100bf575f80fd5b346100eb57806003193601126100eb5760206100d9610d7a565b6040516001600160a01b039091168152f35b80fd5b50346100eb5760803660031901126100eb57610108610963565b60243567ffffffffffffffff811161027e576101289036906004016109bb565b90610131610979565b9261013a6109a5565b936101566001600160a01b0361014e610d7a565b1633146109e9565b6001549081610222577f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6947f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366676020846101b161021c96610d4d565b6001556040513060601b6bffffffffffffffffffffffff191683820190815260148101929092526101ef81603484015b03601f198101835282610a4c565b519020986001600160801b0360405191168152a16040516001600160a01b03909416969394859485610af5565b0390a280f35b60405162461bcd60e51b815260206004820152602e60248201527f696e6974206d657373616765206d75737420626520637265617465642062656660448201526d6f726520616e79206f746865727360901b6064820152608490fd5b8280fd5b50346100eb5760203660031901126100eb576102bf61029f61098f565b6102b26001600160a01b0361014e610d7a565b6102ba610d7a565b610de5565b80f35b5060403660031901126100eb5760043567ffffffffffffffff811161040e576102ef9036906004016109bb565b906024356001600160801b038116810361040a57600460206001600160a01b03610317610d7a565b16604051928380926337792e1d60e11b82525afa9081156103ff5761036c837f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6949361037193602099916103d2575b50610aa1565b610f10565b60015461037d81610d4d565b6001556040513060601b6bffffffffffffffffffffffff191687820190815260148101929092526103b181603484016101e1565b519020936103c760405192839232968885610af5565b0390a2604051908152f35b6103f29150893d8b116103f8575b6103ea8183610a4c565b810190610a82565b5f610366565b503d6103e0565b6040513d87823e3d90fd5b8380fd5b5080fd5b50346100eb5760a03660031901126100eb5761042c610963565b60243567ffffffffffffffff811161027e5761044c9036906004016109bb565b9091610456610979565b608435926001600160e01b03198416840361048b576102bf946104826001600160a01b0361014e610d7a565b60643593610c3a565b8580fd5b50346100eb5760803660031901126100eb576104a961094d565b6044359067ffffffffffffffff821161027e576104cd6102bf9236906004016109bb565b906104d66109a5565b926104ea6001600160a01b0361014e610d7a565b600435610b62565b50346100eb57806003193601126100eb576020600154604051908152f35b50346100eb57806003193601126100eb576002546040516001600160a01b039091168152602090f35b50346100eb5760203660031901126100eb5760405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203292a280f35b50346100eb5760203660031901126100eb576004356105a46001600160a01b0361014e610d7a565b808254036105b0575080f35b6020817f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c080930928455604051908152a180f35b5060203660031901126100eb577f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667602061061961098f565b61062281610f10565b6001600160801b0360405191168152a180f35b50346100eb57806003193601126100eb5760209054604051908152f35b50346107415760403660031901126107415761066c610963565b61067f6001600160a01b0361014e610d7a565b6001546107a4576002546001600160a01b03166107545780763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff6e5af43d82803e903d91602b57fd5bf39360881c16175f5260781b1760205260018060a01b03602435603760095ff516801561074557600280546001600160a01b03191682179055803b15610741575f809160046040518094819363204a7f0760e21b83525af1801561073657610728575080f35b61073491505f90610a4c565b005b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152602260248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152603160248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206265604482015270666f726520696e6974206d65737361676560781b6064820152608490fd5b60603660031901126107415760243567ffffffffffffffff811161074157610830600491369083016109bb565b61083b929192610979565b9060206001600160a01b0361084e610d7a565b16604051948580926337792e1d60e11b82525afa9283156107365761036c837fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f9561089f935f916108b85750610aa1565b6108b3604051928392329660043585610af5565b0390a2005b6108d1915060203d6020116103f8576103ea8183610a4c565b88610366565b34610741576060366003190112610741577fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783604061091361094d565b61093461091e610979565b9182906102ba6001600160a01b0361014e610d7a565b6001600160801b038251916004358352166020820152a1005b602435906001600160a01b038216820361074157565b600435906001600160a01b038216820361074157565b604435906001600160801b038216820361074157565b600435906001600160801b038216820361074157565b606435906001600160801b038216820361074157565b9181601f840112156107415782359167ffffffffffffffff8311610741576020838186019501011161074157565b156109f057565b60405162461bcd60e51b815260206004820152602e60248201527f6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6560448201526d103337b91037b832b930ba34b7b760911b6064820152608490fd5b90601f8019910116810190811067ffffffffffffffff821117610a6e57604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261074157516001600160801b03811681036107415790565b906001600160801b03809116911601906001600160801b038211610ac157565b634e487b7160e01b5f52601160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b92604092610b1c916001600160801b03939796978652606060208701526060860191610ad5565b9416910152565b3d15610b5d573d9067ffffffffffffffff8211610a6e5760405191610b52601f8201601f191660200184610a4c565b82523d5f602084013e565b606090565b600254909493906001600160a01b031680610bb9575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177393610bb49160405194859460018060a01b03169785610af5565b0390a2565b5f80916040518260208201916374fad4ef60e01b83528a602482015260018060a01b038816604482015260806064820152610c1981610bfc60a482018a8d610ad5565b6001600160801b038d16608483015203601f198101835282610a4c565b51926207a120f1610c28610b23565b50610c33575f610b78565b5050505050565b94909294610c488682610de5565b6002546001600160a01b03169081610cba575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6936001600160801b03610c9e604051958695606087526060870191610ad5565b9616602084015260408301526001600160e01b031916930390a2565b604051639649744960e01b602082019081526001600160a01b03909216602482015260a060448201525f92839290918390610d32818c6001600160801b03610d0660c484018d8f610ad5565b91166064830152608482018d90526001600160e01b03198a1660a483015203601f198101835282610a4c565b51926207a120f1610d41610b23565b50610c33575f80610c5b565b5f198114610ac15760010190565b9081602091031261074157516001600160a01b03811681036107415790565b6040516303e21fa960e61b8152602081600481305afa908115610736575f91610da1575090565b610dc3915060203d602011610dc6575b610dbb8183610a4c565b810190610d5b565b90565b503d610db1565b90816020910312610741575180151581036107415790565b60049160206001600160a01b03610dfa610d7a565b166040519485809263088f50cf60e41b82525afa928315610736575f93610ee6575b506001600160801b031680610e3057505050565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291602091839160449183915f91165af1908115610736575f91610eb7575b5015610e7b57565b60405162461bcd60e51b81526020600482015260146024820152736661696c656420746f2073656e6420575661726160601b6044820152606490fd5b610ed9915060203d602011610edf575b610ed18183610a4c565b810190610dcd565b5f610e73565b503d610ec7565b6001600160801b03919350610f099060203d602011610dc657610dbb8183610a4c565b9290610e1c565b6001600160a01b03610f20610d7a565b60405163088f50cf60e41b8152911691602082600481865afa8015610736576001600160801b03935f6064926020958291610ffe575b5060405196879586946323b872dd60e01b8652326004870152602486015216604484015260018060a01b03165af1908115610736575f91610fdf575b5015610f9a57565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b610ff8915060203d602011610edf57610ed18183610a4c565b5f610f92565b6110159150863d8811610dc657610dbb8183610a4c565b5f610f5656fea26469706673582212204a3846286b0a145cf4cc8fe82211dcc0b6b9ec4daec81791aba81789eed8f2a464736f6c634300081a0033","sourceMap":"403:5366:80:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f803560e01c806314503e51146108d757806329336f39146108035780635b1b84f714610652578063701da98e14610635578063704ed542146105e15780638ea59e1d1461057c57806391d5a64c146105395780639cb3300514610510578063affed0e0146104f2578063c2df60091461048f578063c78bde7714610412578063d5624222146102c2578063dca4a37314610282578063de1dd2e0146100ee5763f887ea40146100bf575f80fd5b346100eb57806003193601126100eb5760206100d9610d7a565b6040516001600160a01b039091168152f35b80fd5b50346100eb5760803660031901126100eb57610108610963565b60243567ffffffffffffffff811161027e576101289036906004016109bb565b90610131610979565b9261013a6109a5565b936101566001600160a01b0361014e610d7a565b1633146109e9565b6001549081610222577f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6947f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366676020846101b161021c96610d4d565b6001556040513060601b6bffffffffffffffffffffffff191683820190815260148101929092526101ef81603484015b03601f198101835282610a4c565b519020986001600160801b0360405191168152a16040516001600160a01b03909416969394859485610af5565b0390a280f35b60405162461bcd60e51b815260206004820152602e60248201527f696e6974206d657373616765206d75737420626520637265617465642062656660448201526d6f726520616e79206f746865727360901b6064820152608490fd5b8280fd5b50346100eb5760203660031901126100eb576102bf61029f61098f565b6102b26001600160a01b0361014e610d7a565b6102ba610d7a565b610de5565b80f35b5060403660031901126100eb5760043567ffffffffffffffff811161040e576102ef9036906004016109bb565b906024356001600160801b038116810361040a57600460206001600160a01b03610317610d7a565b16604051928380926337792e1d60e11b82525afa9081156103ff5761036c837f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6949361037193602099916103d2575b50610aa1565b610f10565b60015461037d81610d4d565b6001556040513060601b6bffffffffffffffffffffffff191687820190815260148101929092526103b181603484016101e1565b519020936103c760405192839232968885610af5565b0390a2604051908152f35b6103f29150893d8b116103f8575b6103ea8183610a4c565b810190610a82565b5f610366565b503d6103e0565b6040513d87823e3d90fd5b8380fd5b5080fd5b50346100eb5760a03660031901126100eb5761042c610963565b60243567ffffffffffffffff811161027e5761044c9036906004016109bb565b9091610456610979565b608435926001600160e01b03198416840361048b576102bf946104826001600160a01b0361014e610d7a565b60643593610c3a565b8580fd5b50346100eb5760803660031901126100eb576104a961094d565b6044359067ffffffffffffffff821161027e576104cd6102bf9236906004016109bb565b906104d66109a5565b926104ea6001600160a01b0361014e610d7a565b600435610b62565b50346100eb57806003193601126100eb576020600154604051908152f35b50346100eb57806003193601126100eb576002546040516001600160a01b039091168152602090f35b50346100eb5760203660031901126100eb5760405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203292a280f35b50346100eb5760203660031901126100eb576004356105a46001600160a01b0361014e610d7a565b808254036105b0575080f35b6020817f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c080930928455604051908152a180f35b5060203660031901126100eb577f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667602061061961098f565b61062281610f10565b6001600160801b0360405191168152a180f35b50346100eb57806003193601126100eb5760209054604051908152f35b50346107415760403660031901126107415761066c610963565b61067f6001600160a01b0361014e610d7a565b6001546107a4576002546001600160a01b03166107545780763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff6e5af43d82803e903d91602b57fd5bf39360881c16175f5260781b1760205260018060a01b03602435603760095ff516801561074557600280546001600160a01b03191682179055803b15610741575f809160046040518094819363204a7f0760e21b83525af1801561073657610728575080f35b61073491505f90610a4c565b005b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152602260248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152603160248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206265604482015270666f726520696e6974206d65737361676560781b6064820152608490fd5b60603660031901126107415760243567ffffffffffffffff811161074157610830600491369083016109bb565b61083b929192610979565b9060206001600160a01b0361084e610d7a565b16604051948580926337792e1d60e11b82525afa9283156107365761036c837fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f9561089f935f916108b85750610aa1565b6108b3604051928392329660043585610af5565b0390a2005b6108d1915060203d6020116103f8576103ea8183610a4c565b88610366565b34610741576060366003190112610741577fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783604061091361094d565b61093461091e610979565b9182906102ba6001600160a01b0361014e610d7a565b6001600160801b038251916004358352166020820152a1005b602435906001600160a01b038216820361074157565b600435906001600160a01b038216820361074157565b604435906001600160801b038216820361074157565b600435906001600160801b038216820361074157565b606435906001600160801b038216820361074157565b9181601f840112156107415782359167ffffffffffffffff8311610741576020838186019501011161074157565b156109f057565b60405162461bcd60e51b815260206004820152602e60248201527f6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6560448201526d103337b91037b832b930ba34b7b760911b6064820152608490fd5b90601f8019910116810190811067ffffffffffffffff821117610a6e57604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261074157516001600160801b03811681036107415790565b906001600160801b03809116911601906001600160801b038211610ac157565b634e487b7160e01b5f52601160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b92604092610b1c916001600160801b03939796978652606060208701526060860191610ad5565b9416910152565b3d15610b5d573d9067ffffffffffffffff8211610a6e5760405191610b52601f8201601f191660200184610a4c565b82523d5f602084013e565b606090565b600254909493906001600160a01b031680610bb9575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177393610bb49160405194859460018060a01b03169785610af5565b0390a2565b5f80916040518260208201916374fad4ef60e01b83528a602482015260018060a01b038816604482015260806064820152610c1981610bfc60a482018a8d610ad5565b6001600160801b038d16608483015203601f198101835282610a4c565b51926207a120f1610c28610b23565b50610c33575f610b78565b5050505050565b94909294610c488682610de5565b6002546001600160a01b03169081610cba575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6936001600160801b03610c9e604051958695606087526060870191610ad5565b9616602084015260408301526001600160e01b031916930390a2565b604051639649744960e01b602082019081526001600160a01b03909216602482015260a060448201525f92839290918390610d32818c6001600160801b03610d0660c484018d8f610ad5565b91166064830152608482018d90526001600160e01b03198a1660a483015203601f198101835282610a4c565b51926207a120f1610d41610b23565b50610c33575f80610c5b565b5f198114610ac15760010190565b9081602091031261074157516001600160a01b03811681036107415790565b6040516303e21fa960e61b8152602081600481305afa908115610736575f91610da1575090565b610dc3915060203d602011610dc6575b610dbb8183610a4c565b810190610d5b565b90565b503d610db1565b90816020910312610741575180151581036107415790565b60049160206001600160a01b03610dfa610d7a565b166040519485809263088f50cf60e41b82525afa928315610736575f93610ee6575b506001600160801b031680610e3057505050565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291602091839160449183915f91165af1908115610736575f91610eb7575b5015610e7b57565b60405162461bcd60e51b81526020600482015260146024820152736661696c656420746f2073656e6420575661726160601b6044820152606490fd5b610ed9915060203d602011610edf575b610ed18183610a4c565b810190610dcd565b5f610e73565b503d610ec7565b6001600160801b03919350610f099060203d602011610dc657610dbb8183610a4c565b9290610e1c565b6001600160a01b03610f20610d7a565b60405163088f50cf60e41b8152911691602082600481865afa8015610736576001600160801b03935f6064926020958291610ffe575b5060405196879586946323b872dd60e01b8652326004870152602486015216604484015260018060a01b03165af1908115610736575f91610fdf575b5015610f9a57565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b610ff8915060203d602011610edf57610ed18183610a4c565b5f610f92565b6110159150863d8811610dc657610dbb8183610a4c565b5f610f5656fea26469706673582212204a3846286b0a145cf4cc8fe82211dcc0b6b9ec4daec81791aba81789eed8f2a464736f6c634300081a0033","sourceMap":"403:5366:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;403:5366:80;;;;;;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;:::-;403:5366;4982:10;:22;4974:81;:::i;:::-;4552:5;403:5366;4552:10;;403:5366;;4877:52;4713:7;4812:50;403:5366;4713:7;;4877:52;4713:7;;:::i;:::-;4552:5;403:5366;;;4778:4;403:5366;;-1:-1:-1;;403:5366:80;4753:42;;;403:5366;;;;;;;;;;4753:42;403:5366;;;;4753:42;;1099:40;;4753:42;;;;;;:::i;:::-;403:5366;4743:53;;403:5366;-1:-1:-1;;;;;403:5366:80;;;;;;4812:50;403:5366;;-1:-1:-1;;;;;403:5366:80;;;;;;;;;4877:52;:::i;:::-;;;;403:5366;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;4003:5;403:5366;;:::i;:::-;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;4974:81::-;3993:8;;:::i;:::-;4003:5;:::i;:::-;403:5366;;;-1:-1:-1;403:5366:80;;-1:-1:-1;;403:5366:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;403:5366:80;;;;;;;;-1:-1:-1;;;;;996:8:80;;:::i;:::-;403:5366;;;;;;;;;;988:27;;;;;;;;;1048:16;988:27;1156:57;988:27;;1048:16;988:27;403:5366;988:27;;;;403:5366;1048:16;;:::i;:::-;;:::i;:::-;1131:7;403:5366;1131:7;;;:::i;:::-;;403:5366;;;1124:4;403:5366;;-1:-1:-1;;403:5366:80;1099:40;;;403:5366;;;;;;;;;;1099:40;403:5366;;;;1099:40;403:5366;1099:40;403:5366;1089:51;;403:5366;1156:57;403:5366;;1185:9;;;;1156:57;;;;:::i;:::-;;;;403:5366;;;;;;988:27;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;403:5366;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;403:5366:80;;;;;;5065:1;;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;4974:81::-;403:5366;;5065:1;;:::i;403:5366::-;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;:::i;:::-;;;;;;;;;;5065:1;403:5366;;;;;;:::i;:::-;;;;:::i;:::-;;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;4974:81::-;403:5366;;5065:1;:::i;403:5366::-;;;;;;;;;;;;;;538:20;403:5366;;;;;;;;;;;;;;;;;;;;574:22;403:5366;;;-1:-1:-1;;;;;403:5366:80;;;;;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;;;;;1672:45;403:5366;1707:9;1672:45;;403:5366;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;4974:81::-;403:5366;;;2032:25;2028:123;;403:5366;;;2028:123;403:5366;;2117:23;403:5366;;;;;;;;2117:23;403:5366;;;-1:-1:-1;403:5366:80;;-1:-1:-1;;403:5366:80;;;;1851:39;403:5366;;;:::i;:::-;1828:6;;;:::i;:::-;-1:-1:-1;;;;;403:5366:80;;;;;;1851:39;403:5366;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;:::i;:::-;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;4974:81::-;403:5366;;;;4203:7;403:5366;-1:-1:-1;;;;;403:5366:80;;;3743:569:36;;;;;;;;;403:5366:80;3743:569:36;;;;403:5366:80;3743:569:36;403:5366:80;;;;;;;3743:569:36;;403:5366:80;3743:569:36;403:5366:80;4325:22:36;;4321:85;;4203:7:80;403:5366;;-1:-1:-1;;;;;;403:5366:80;;;;;4342:36;;;;;403:5366;;;;;;;;;;;;;4342:36;;;;;;;;;;403:5366;;;4342:36;;;;403:5366;4342:36;;:::i;:::-;403:5366;4342:36;403:5366;;;;;;;;;4342:36;403:5366;;;4321:85:36;4370:25;;;403:5366:80;4370:25:36;403:5366:80;;4370:25:36;403:5366:80;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1379:8:80;;:::i;:::-;403:5366;;;;;;;;;;1371:27;;;;;;;;;1431:16;1371:27;1464:63;1371:27;1431:16;1371:27;403:5366;1371:27;;;1431:16;;:::i;:::-;1464:63;403:5366;;1499:9;;;;403:5366;;;1464:63;;:::i;:::-;;;;403:5366;1371:27;;;;403:5366;1371:27;403:5366;1371:27;;;;;;;:::i;:::-;;;;403:5366;;;;;;-1:-1:-1;;403:5366:80;;;;3859:30;403:5366;;;:::i;:::-;3837:5;403:5366;;:::i;:::-;;;;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;3837:5::-;-1:-1:-1;;;;;403:5366:80;;;;;;;;;;;;3859:30;403:5366;;;;;-1:-1:-1;;;;;403:5366:80;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:5366:80;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:5366:80;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:5366:80;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:5366:80;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;1099:40;;403:5366;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;403:5366:80;;;;;-1:-1:-1;403:5366:80;;;;;;;;;;;-1:-1:-1;;;;;403:5366:80;;;;;;;:::o;:::-;;-1:-1:-1;;;;;403:5366:80;;;;;;;-1:-1:-1;;;;;403:5366:80;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;403:5366:80;;;;;;;;-1:-1:-1;;403:5366:80;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;403:5366:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;1099:40;403:5366;;-1:-1:-1;;403:5366:80;;;;;:::i;:::-;;;;-1:-1:-1;403:5366:80;;;;:::o;:::-;;;:::o;2163:754::-;2380:7;403:5366;2163:754;;;;-1:-1:-1;;;;;403:5366:80;;2376:479;;2163:754;403:5366;2870:40;403:5366;2870:40;403:5366;;;;;;;;;;;;2870:40;;;:::i;:::-;;;;2163:754::o;2376:479::-;-1:-1:-1;403:5366:80;;;;2457:94;;;;2480:37;;;;2457:94;;;;;;403:5366;;;;;;;;;;;;;;;;;2457:94;403:5366;;;;;;;;:::i;:::-;-1:-1:-1;;;;;403:5366:80;;;;;;2457:94;1099:40;;2457:94;;;;;;:::i;:::-;2677:36;;2695:7;2677:36;;;:::i;:::-;;2728:117;;2376:479;;;2728:117;2824:7;;;;;:::o;2923:775::-;;;;;3113:5;;;;:::i;:::-;3134:7;403:5366;-1:-1:-1;;;;;403:5366:80;;;3130:505;;2923:775;403:5366;;3650:41;403:5366;-1:-1:-1;;;;;403:5366:80;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;;403:5366:80;;3650:41;;;2923:775::o;3130:505::-;403:5366;;-1:-1:-1;;;3195:138:80;;;;;;-1:-1:-1;;;;;403:5366:80;;;3195:138;;;403:5366;;;;;;-1:-1:-1;;;;403:5366:80;;-1:-1:-1;;3195:138:80;403:5366;;-1:-1:-1;;;;;403:5366:80;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;403:5366:80;;;;;;3195:138;-1:-1:-1;;3195:138:80;;;;;;:::i;:::-;3459:36;;3477:7;3459:36;;;:::i;:::-;;3510:115;;3130:505;;;;403:5366;-1:-1:-1;;403:5366:80;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;403:5366:80;;;;;;;:::o;636:108::-;403:5366;;-1:-1:-1;;;701:36:80;;;403:5366;701:36;403:5366;722:4;701:36;;;;;;;-1:-1:-1;701:36:80;;;694:43;636:108;:::o;701:36::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;636:108;:::o;701:36::-;;;;;403:5366;;;;;;;;;;;;;;;;;;:::o;5451:316::-;5567:31;;;-1:-1:-1;;;;;5575:8:80;;:::i;:::-;403:5366;;;;;;;;;;5567:31;;;;;;;;;-1:-1:-1;5567:31:80;;;5451:316;403:5366;-1:-1:-1;;;;;403:5366:80;5614:10;5610:151;;5451:316;;;:::o;5610:151::-;403:5366;;-1:-1:-1;;;5655:40:80;;-1:-1:-1;;;;;403:5366:80;;;5567:31;5655:40;;403:5366;;;;;;;;;5567:31;;403:5366;;5655:40;;403:5366;;-1:-1:-1;;403:5366:80;5655:40;;;;;;;-1:-1:-1;5655:40:80;;;5610:151;403:5366;;;;5451:316::o;403:5366::-;;;-1:-1:-1;;;403:5366:80;;5567:31;;403:5366;;;;;;;;-1:-1:-1;;;5655:40:80;403:5366;;;;;;5655:40;;;;5567:31;5655:40;5567:31;5655:40;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;5567:31;-1:-1:-1;;;;;5567:31:80;;;;;;;;;;;;;;;:::i;:::-;;;;;5113:332;-1:-1:-1;;;;;5203:8:80;;:::i;:::-;403:5366;;-1:-1:-1;;;5262:36:80;;403:5366;;;5262:36;403:5366;5262:36;403:5366;;5262:36;;;;;;-1:-1:-1;;;;;5262:36:80;-1:-1:-1;5325:58:80;5262:36;;;;;;;5113:332;403:5366;;;;;;;;;;;5325:58;;5350:9;5262:36;5325:58;;403:5366;;;;;;;;;;;;;;;;5325:58;;;;;;;-1:-1:-1;5325:58:80;;;5113:332;403:5366;;;;5113:332::o;403:5366::-;;;-1:-1:-1;;;403:5366:80;;5262:36;;403:5366;;;;;;;;;;;;;5325:58;;403:5366;5325:58;;;;5262:36;5325:58;5262:36;5325:58;;;;;;;:::i;:::-;;;;5262:36;;;;;;;;;;;;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","createDecoder(address,bytes32)":"5b1b84f7","decoder()":"9cb33005","executableBalanceBurned(uint128)":"dca4a373","executableBalanceTopUp(uint128)":"704ed542","initMessage(address,bytes,uint128,uint128)":"de1dd2e0","messageSent(bytes32,address,bytes,uint128)":"c2df6009","nonce()":"affed0e0","replySent(address,bytes,uint128,bytes32,bytes4)":"c78bde77","router()":"f887ea40","sendMessage(bytes,uint128)":"d5624222","sendReply(bytes32,bytes,uint128)":"29336f39","stateHash()":"701da98e","updateState(bytes32)":"8ea59e1d","valueClaimed(bytes32,address,uint128)":"14503e51"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"Message\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"Reply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"repliedTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"}],\"name\":\"ValueClaimingRequested\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"createDecoder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceBurned\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"executableBalance\",\"type\":\"uint128\"}],\"name\":\"initMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"messageSent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"replySent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"}],\"name\":\"updateState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"valueClaimed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens. NOTE: It's event for NODES: it requires to top up balance of the program.\"},\"Message(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when the program sends outgoing message. NOTE: It's event for USERS: it informs about new message sent from program.\"},\"MessageQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new message is sent to be queued. NOTE: It's event for NODES: it requires to insert message in the program's queue.\"},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message. NOTE: It's event for USERS: it informs about new reply sent from program.\"},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed. NOTE: It's event for USERS: it informs about state changes.\"},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance. NOTE: It's event for USERS: it informs about value claimed.\"},\"ValueClaimingRequested(bytes32,address)\":{\"details\":\"Emitted when a reply's value is requested to be verified and claimed. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64\",\"dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x82d8c114d8e994851d5fb8b21ce02fb48907eec690df5f3af4111451a3390f89\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c08f1764a6263ea9bc4a8c4afe14cdc2f9486157ceafc9fa6f0a5ca6c58ba37\",\"dweb:/ipfs/QmWNZJmyp6M7JrdLE1cNKC8sGdZ3YdeHvujgyVqnQp7ubC\"]},\"src/IMirrorDecoder.sol\":{\"keccak256\":\"0x95bfe42461bd03e726f894679f4b4133034a405672fe8343c3343d0964cf9072\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a0907d84596ed62b9ea222fd841fc0259e87b17dd0b5af3f6d0d8a8f4726994d\",\"dweb:/ipfs/QmTkumKh7DBJNXrark6NBqBxCtnYmbRMGYkRyxxzpW9wKr\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421\",\"dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x378a4a7c20630ca6a036143c8be63d1f6f06b3803562d8ad7e16c5995a859c2d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://58c1cb40dbdeb7523d7f999473c14c4336063e1ef0bf0b6a0f821d62199aaa93\",\"dweb:/ipfs/QmZFkF1yDePMQU96BvRPGWXwN2ESzB43mVN3nYBDX8W7Au\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ExecutableBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"Message","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"Reply","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"repliedTo","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyQueueingRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true}],"type":"event","name":"ValueClaimingRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createDecoder"},{"inputs":[],"stateMutability":"view","type":"function","name":"decoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceBurned"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"executableBalanceTopUp"},{"inputs":[{"internalType":"address","name":"source","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"uint128","name":"executableBalance","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"initMessage"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"messageSent"},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"bytes32","name":"replyTo","type":"bytes32"},{"internalType":"bytes4","name":"replyCode","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"replySent"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"newStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateState"},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"valueClaimed"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6","urls":["bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64","dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x82d8c114d8e994851d5fb8b21ce02fb48907eec690df5f3af4111451a3390f89","urls":["bzz-raw://3c08f1764a6263ea9bc4a8c4afe14cdc2f9486157ceafc9fa6f0a5ca6c58ba37","dweb:/ipfs/QmWNZJmyp6M7JrdLE1cNKC8sGdZ3YdeHvujgyVqnQp7ubC"],"license":"UNLICENSED"},"src/IMirrorDecoder.sol":{"keccak256":"0x95bfe42461bd03e726f894679f4b4133034a405672fe8343c3343d0964cf9072","urls":["bzz-raw://a0907d84596ed62b9ea222fd841fc0259e87b17dd0b5af3f6d0d8a8f4726994d","dweb:/ipfs/QmTkumKh7DBJNXrark6NBqBxCtnYmbRMGYkRyxxzpW9wKr"],"license":"UNLICENSED"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a","urls":["bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421","dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Mirror.sol":{"keccak256":"0x378a4a7c20630ca6a036143c8be63d1f6f06b3803562d8ad7e16c5995a859c2d","urls":["bzz-raw://58c1cb40dbdeb7523d7f999473c14c4336063e1ef0bf0b6a0f821d62199aaa93","dweb:/ipfs/QmZFkF1yDePMQU96BvRPGWXwN2ESzB43mVN3nYBDX8W7Au"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[{"astId":54042,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":54044,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":54046,"contract":"src/Mirror.sol:Mirror","label":"decoder","offset":0,"slot":"2","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":54525,"exportedSymbols":{"Clones":[41121],"IMirror":[53648],"IMirrorDecoder":[53683],"IMirrorProxy":[53691],"IRouter":[54013],"IWrappedVara":[54024],"Mirror":[54524]},"nodeType":"SourceUnit","src":"39:5731:80","nodes":[{"id":54026,"nodeType":"PragmaDirective","src":"39:24:80","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":54028,"nodeType":"ImportDirective","src":"65:48:80","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":53692,"symbolAliases":[{"foreign":{"id":54027,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53691,"src":"73:12:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54030,"nodeType":"ImportDirective","src":"114:38:80","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":53649,"symbolAliases":[{"foreign":{"id":54029,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"122:7:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54032,"nodeType":"ImportDirective","src":"153:38:80","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":54014,"symbolAliases":[{"foreign":{"id":54031,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"161:7:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54034,"nodeType":"ImportDirective","src":"192:48:80","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":54025,"symbolAliases":[{"foreign":{"id":54033,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54024,"src":"200:12:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54036,"nodeType":"ImportDirective","src":"241:52:80","nodes":[],"absolutePath":"src/IMirrorDecoder.sol","file":"./IMirrorDecoder.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":53684,"symbolAliases":[{"foreign":{"id":54035,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53683,"src":"249:14:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54038,"nodeType":"ImportDirective","src":"294:64:80","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":41122,"symbolAliases":[{"foreign":{"id":54037,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"302:6:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54524,"nodeType":"ContractDefinition","src":"403:5366:80","nodes":[{"id":54042,"nodeType":"VariableDeclaration","src":"436:24:80","nodes":[],"baseFunctions":[53543],"constant":false,"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"451:9:80","scope":54524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":54044,"nodeType":"VariableDeclaration","src":"538:20:80","nodes":[],"baseFunctions":[53548],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"553:5:80","scope":54524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54043,"name":"uint256","nodeType":"ElementaryTypeName","src":"538:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":54046,"nodeType":"VariableDeclaration","src":"574:22:80","nodes":[],"baseFunctions":[53558],"constant":false,"functionSelector":"9cb33005","mutability":"mutable","name":"decoder","nameLocation":"589:7:80","scope":54524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54045,"name":"address","nodeType":"ElementaryTypeName","src":"574:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":54061,"nodeType":"FunctionDefinition","src":"636:108:80","nodes":[],"body":{"id":54060,"nodeType":"Block","src":"684:60:80","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":54054,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"722:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}],"id":54053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"714:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54052,"name":"address","nodeType":"ElementaryTypeName","src":"714:7:80","typeDescriptions":{}}},"id":54055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"714:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54051,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53691,"src":"701:12:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorProxy_$53691_$","typeString":"type(contract IMirrorProxy)"}},"id":54056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorProxy_$53691","typeString":"contract IMirrorProxy"}},"id":54057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"729:6:80","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":53690,"src":"701:34:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":54058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54050,"id":54059,"nodeType":"Return","src":"694:43:80"}]},"baseFunctions":[53553],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"645:6:80","parameters":{"id":54047,"nodeType":"ParameterList","parameters":[],"src":"651:2:80"},"returnParameters":{"id":54050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54061,"src":"675:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54048,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"674:9:80"},"scope":54524,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54110,"nodeType":"FunctionDefinition","src":"863:377:80","nodes":[],"body":{"id":54109,"nodeType":"Block","src":"960:280:80","nodes":[],"statements":[{"assignments":[54071],"declarations":[{"constant":false,"id":54071,"mutability":"mutable","name":"baseFee","nameLocation":"978:7:80","nodeType":"VariableDeclaration","scope":54109,"src":"970:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54070,"name":"uint128","nodeType":"ElementaryTypeName","src":"970:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":54078,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54073,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"996:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"996:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54072,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"988:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$54013_$","typeString":"type(contract IRouter)"}},"id":54075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:17:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$54013","typeString":"contract IRouter"}},"id":54076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1006:7:80","memberName":"baseFee","nodeType":"MemberAccess","referencedDeclaration":53957,"src":"988:25:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint128_$","typeString":"function () view external returns (uint128)"}},"id":54077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"970:45:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":54082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54080,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54071,"src":"1048:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54081,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54065,"src":"1058:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1048:16:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54079,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"1025:22:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":54083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1025:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54084,"nodeType":"ExpressionStatement","src":"1025:40:80"},{"assignments":[54086],"declarations":[{"constant":false,"id":54086,"mutability":"mutable","name":"id","nameLocation":"1084:2:80","nodeType":"VariableDeclaration","scope":54109,"src":"1076:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1076:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":54098,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54092,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1124:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}],"id":54091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1116:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54090,"name":"address","nodeType":"ElementaryTypeName","src":"1116:7:80","typeDescriptions":{}}},"id":54093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1131:7:80","subExpression":{"id":54094,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54044,"src":"1131:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54088,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1099:3:80","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1103:12:80","memberName":"encodePacked","nodeType":"MemberAccess","src":"1099:16:80","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1099:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54087,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1089:9:80","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1089:51:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1076:64:80"},{"eventCall":{"arguments":[{"id":54100,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54086,"src":"1181:2:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":54101,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"1185:2:80","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1188:6:80","memberName":"origin","nodeType":"MemberAccess","src":"1185:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54103,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54063,"src":"1196:8:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54104,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54065,"src":"1206:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54099,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53486,"src":"1156:24:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1156:57:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54106,"nodeType":"EmitStatement","src":"1151:62:80"},{"expression":{"id":54107,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54086,"src":"1231:2:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54069,"id":54108,"nodeType":"Return","src":"1224:9:80"}]},"baseFunctions":[53567],"functionSelector":"d5624222","implemented":true,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"872:11:80","parameters":{"id":54066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54063,"mutability":"mutable","name":"_payload","nameLocation":"899:8:80","nodeType":"VariableDeclaration","scope":54110,"src":"884:23:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54062,"name":"bytes","nodeType":"ElementaryTypeName","src":"884:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":54065,"mutability":"mutable","name":"_value","nameLocation":"917:6:80","nodeType":"VariableDeclaration","scope":54110,"src":"909:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54064,"name":"uint128","nodeType":"ElementaryTypeName","src":"909:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"883:41:80"},"returnParameters":{"id":54069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54068,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54110,"src":"951:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"951:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"950:9:80"},"scope":54524,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54143,"nodeType":"FunctionDefinition","src":"1246:288:80","nodes":[],"body":{"id":54142,"nodeType":"Block","src":"1343:191:80","nodes":[],"statements":[{"assignments":[54120],"declarations":[{"constant":false,"id":54120,"mutability":"mutable","name":"baseFee","nameLocation":"1361:7:80","nodeType":"VariableDeclaration","scope":54142,"src":"1353:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54119,"name":"uint128","nodeType":"ElementaryTypeName","src":"1353:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":54127,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54122,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"1379:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54121,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"1371:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$54013_$","typeString":"type(contract IRouter)"}},"id":54124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1371:17:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$54013","typeString":"contract IRouter"}},"id":54125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1389:7:80","memberName":"baseFee","nodeType":"MemberAccess","referencedDeclaration":53957,"src":"1371:25:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint128_$","typeString":"function () view external returns (uint128)"}},"id":54126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1371:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"1353:45:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":54131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54129,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54120,"src":"1431:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54130,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54116,"src":"1441:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1431:16:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54128,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"1408:22:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1408:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54133,"nodeType":"ExpressionStatement","src":"1408:40:80"},{"eventCall":{"arguments":[{"id":54135,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54112,"src":"1487:10:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":54136,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"1499:2:80","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1502:6:80","memberName":"origin","nodeType":"MemberAccess","src":"1499:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54138,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54114,"src":"1510:8:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54139,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54116,"src":"1520:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54134,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53497,"src":"1464:22:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":54140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1464:63:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54141,"nodeType":"EmitStatement","src":"1459:68:80"}]},"baseFunctions":[53576],"functionSelector":"29336f39","implemented":true,"kind":"function","modifiers":[],"name":"sendReply","nameLocation":"1255:9:80","parameters":{"id":54117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54112,"mutability":"mutable","name":"_repliedTo","nameLocation":"1273:10:80","nodeType":"VariableDeclaration","scope":54143,"src":"1265:18:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1265:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54114,"mutability":"mutable","name":"_payload","nameLocation":"1300:8:80","nodeType":"VariableDeclaration","scope":54143,"src":"1285:23:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54113,"name":"bytes","nodeType":"ElementaryTypeName","src":"1285:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":54116,"mutability":"mutable","name":"_value","nameLocation":"1318:6:80","nodeType":"VariableDeclaration","scope":54143,"src":"1310:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54115,"name":"uint128","nodeType":"ElementaryTypeName","src":"1310:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1264:61:80"},"returnParameters":{"id":54118,"nodeType":"ParameterList","parameters":[],"src":"1343:0:80"},"scope":54524,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54155,"nodeType":"FunctionDefinition","src":"1540:184:80","nodes":[],"body":{"id":54154,"nodeType":"Block","src":"1589:135:80","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":54149,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54145,"src":"1695:10:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":54150,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"1707:2:80","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1710:6:80","memberName":"origin","nodeType":"MemberAccess","src":"1707:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54148,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53504,"src":"1672:22:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1672:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54153,"nodeType":"EmitStatement","src":"1667:50:80"}]},"baseFunctions":[53581],"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[],"name":"claimValue","nameLocation":"1549:10:80","parameters":{"id":54146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54145,"mutability":"mutable","name":"_claimedId","nameLocation":"1568:10:80","nodeType":"VariableDeclaration","scope":54155,"src":"1560:18:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1560:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1559:20:80"},"returnParameters":{"id":54147,"nodeType":"ParameterList","parameters":[],"src":"1589:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54169,"nodeType":"FunctionDefinition","src":"1730:167:80","nodes":[],"body":{"id":54168,"nodeType":"Block","src":"1795:102:80","nodes":[],"statements":[{"expression":{"arguments":[{"id":54161,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54157,"src":"1828:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54160,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"1805:22:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":54162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:30:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54163,"nodeType":"ExpressionStatement","src":"1805:30:80"},{"eventCall":{"arguments":[{"id":54165,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54157,"src":"1883:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54164,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"1851:31:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:39:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54167,"nodeType":"EmitStatement","src":"1846:44:80"}]},"baseFunctions":[53586],"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[],"name":"executableBalanceTopUp","nameLocation":"1739:22:80","parameters":{"id":54158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54157,"mutability":"mutable","name":"_value","nameLocation":"1770:6:80","nodeType":"VariableDeclaration","scope":54169,"src":"1762:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54156,"name":"uint128","nodeType":"ElementaryTypeName","src":"1762:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1761:16:80"},"returnParameters":{"id":54159,"nodeType":"ParameterList","parameters":[],"src":"1795:0:80"},"scope":54524,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54190,"nodeType":"FunctionDefinition","src":"1955:202:80","nodes":[],"body":{"id":54189,"nodeType":"Block","src":"2018:139:80","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":54178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54176,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54042,"src":"2032:9:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":54177,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54171,"src":"2045:12:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2032:25:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54188,"nodeType":"IfStatement","src":"2028:123:80","trueBody":{"id":54187,"nodeType":"Block","src":"2059:92:80","statements":[{"expression":{"id":54181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54179,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54042,"src":"2073:9:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54180,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54171,"src":"2085:12:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2073:24:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54182,"nodeType":"ExpressionStatement","src":"2073:24:80"},{"eventCall":{"arguments":[{"id":54184,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54042,"src":"2130:9:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54183,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53475,"src":"2117:12:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2117:23:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54186,"nodeType":"EmitStatement","src":"2112:28:80"}]}}]},"baseFunctions":[53591],"functionSelector":"8ea59e1d","implemented":true,"kind":"function","modifiers":[{"id":54174,"kind":"modifierInvocation","modifierName":{"id":54173,"name":"onlyRouter","nameLocations":["2007:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"2007:10:80"},"nodeType":"ModifierInvocation","src":"2007:10:80"}],"name":"updateState","nameLocation":"1964:11:80","parameters":{"id":54172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54171,"mutability":"mutable","name":"newStateHash","nameLocation":"1984:12:80","nodeType":"VariableDeclaration","scope":54190,"src":"1976:20:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1976:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1975:22:80"},"returnParameters":{"id":54175,"nodeType":"ParameterList","parameters":[],"src":"2018:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54245,"nodeType":"FunctionDefinition","src":"2163:754:80","nodes":[],"body":{"id":54244,"nodeType":"Block","src":"2276:641:80","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54203,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"2380:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":54206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2399:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2391:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54204,"name":"address","nodeType":"ElementaryTypeName","src":"2391:7:80","typeDescriptions":{}}},"id":54207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2391:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2380:21:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54236,"nodeType":"IfStatement","src":"2376:479:80","trueBody":{"id":54235,"nodeType":"Block","src":"2403:452:80","statements":[{"assignments":[54210],"declarations":[{"constant":false,"id":54210,"mutability":"mutable","name":"callData","nameLocation":"2430:8:80","nodeType":"VariableDeclaration","scope":54235,"src":"2417:21:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54209,"name":"bytes","nodeType":"ElementaryTypeName","src":"2417:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54221,"initialValue":{"arguments":[{"expression":{"expression":{"id":54213,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53683,"src":"2480:14:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$53683_$","typeString":"type(contract IMirrorDecoder)"}},"id":54214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2495:13:80","memberName":"onMessageSent","nodeType":"MemberAccess","referencedDeclaration":53669,"src":"2480:28:80","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_address_$_t_bytes_calldata_ptr_$_t_uint128_$returns$__$","typeString":"function IMirrorDecoder.onMessageSent(bytes32,address,bytes calldata,uint128)"}},"id":54215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2509:8:80","memberName":"selector","nodeType":"MemberAccess","src":"2480:37:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":54216,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54192,"src":"2519:2:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54217,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54194,"src":"2523:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54218,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54196,"src":"2536:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54219,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54198,"src":"2545:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":54211,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2457:3:80","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2461:18:80","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2457:22:80","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":54220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2457:94:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2417:134:80"},{"assignments":[54223,null],"declarations":[{"constant":false,"id":54223,"mutability":"mutable","name":"success","nameLocation":"2665:7:80","nodeType":"VariableDeclaration","scope":54235,"src":"2660:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54222,"name":"bool","nodeType":"ElementaryTypeName","src":"2660:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":54230,"initialValue":{"arguments":[{"id":54228,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54210,"src":"2704:8:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54224,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"2677:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2685:4:80","memberName":"call","nodeType":"MemberAccess","src":"2677:12:80","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":54226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2695:7:80","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"2677:26:80","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2677:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2659:54:80"},{"condition":{"id":54231,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54223,"src":"2732:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54234,"nodeType":"IfStatement","src":"2728:117:80","trueBody":{"id":54233,"nodeType":"Block","src":"2741:104:80","statements":[{"functionReturnParameters":54202,"id":54232,"nodeType":"Return","src":"2824:7:80"}]}}]}},{"eventCall":{"arguments":[{"id":54238,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54192,"src":"2878:2:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54239,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54194,"src":"2882:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54240,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54196,"src":"2895:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54241,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54198,"src":"2904:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54237,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53520,"src":"2870:7:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2870:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54243,"nodeType":"EmitStatement","src":"2865:45:80"}]},"baseFunctions":[53602],"functionSelector":"c2df6009","implemented":true,"kind":"function","modifiers":[{"id":54201,"kind":"modifierInvocation","modifierName":{"id":54200,"name":"onlyRouter","nameLocations":["2265:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"2265:10:80"},"nodeType":"ModifierInvocation","src":"2265:10:80"}],"name":"messageSent","nameLocation":"2172:11:80","parameters":{"id":54199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54192,"mutability":"mutable","name":"id","nameLocation":"2192:2:80","nodeType":"VariableDeclaration","scope":54245,"src":"2184:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2184:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54194,"mutability":"mutable","name":"destination","nameLocation":"2204:11:80","nodeType":"VariableDeclaration","scope":54245,"src":"2196:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54193,"name":"address","nodeType":"ElementaryTypeName","src":"2196:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54196,"mutability":"mutable","name":"payload","nameLocation":"2232:7:80","nodeType":"VariableDeclaration","scope":54245,"src":"2217:22:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54195,"name":"bytes","nodeType":"ElementaryTypeName","src":"2217:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":54198,"mutability":"mutable","name":"value","nameLocation":"2249:5:80","nodeType":"VariableDeclaration","scope":54245,"src":"2241:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54197,"name":"uint128","nodeType":"ElementaryTypeName","src":"2241:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2183:72:80"},"returnParameters":{"id":54202,"nodeType":"ParameterList","parameters":[],"src":"2276:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54308,"nodeType":"FunctionDefinition","src":"2923:775:80","nodes":[],"body":{"id":54307,"nodeType":"Block","src":"3077:621:80","nodes":[],"statements":[{"expression":{"arguments":[{"id":54261,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54247,"src":"3100:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54262,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54251,"src":"3113:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54260,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54523,"src":"3087:12:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":54263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3087:32:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54264,"nodeType":"ExpressionStatement","src":"3087:32:80"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54265,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"3134:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":54268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3153:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3145:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54266,"name":"address","nodeType":"ElementaryTypeName","src":"3145:7:80","typeDescriptions":{}}},"id":54269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3145:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3134:21:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54299,"nodeType":"IfStatement","src":"3130:505:80","trueBody":{"id":54298,"nodeType":"Block","src":"3157:478:80","statements":[{"assignments":[54272],"declarations":[{"constant":false,"id":54272,"mutability":"mutable","name":"callData","nameLocation":"3184:8:80","nodeType":"VariableDeclaration","scope":54298,"src":"3171:21:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54271,"name":"bytes","nodeType":"ElementaryTypeName","src":"3171:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54284,"initialValue":{"arguments":[{"expression":{"expression":{"id":54275,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53683,"src":"3235:14:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$53683_$","typeString":"type(contract IMirrorDecoder)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3250:11:80","memberName":"onReplySent","nodeType":"MemberAccess","referencedDeclaration":53682,"src":"3235:26:80","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function IMirrorDecoder.onReplySent(address,bytes calldata,uint128,bytes32,bytes4)"}},"id":54277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3262:8:80","memberName":"selector","nodeType":"MemberAccess","src":"3235:35:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":54278,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54247,"src":"3272:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54279,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54249,"src":"3285:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54280,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54251,"src":"3294:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":54281,"name":"replyTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54253,"src":"3301:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54282,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54255,"src":"3310:9:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":54273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3195:3:80","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3199:18:80","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3195:22:80","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3195:138:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3171:162:80"},{"assignments":[54286,null],"declarations":[{"constant":false,"id":54286,"mutability":"mutable","name":"success","nameLocation":"3447:7:80","nodeType":"VariableDeclaration","scope":54298,"src":"3442:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54285,"name":"bool","nodeType":"ElementaryTypeName","src":"3442:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":54293,"initialValue":{"arguments":[{"id":54291,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"3486:8:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54287,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"3459:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3467:4:80","memberName":"call","nodeType":"MemberAccess","src":"3459:12:80","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3477:7:80","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"3459:26:80","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3459:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3441:54:80"},{"condition":{"id":54294,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54286,"src":"3514:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54297,"nodeType":"IfStatement","src":"3510:115:80","trueBody":{"id":54296,"nodeType":"Block","src":"3523:102:80","statements":[{"functionReturnParameters":54259,"id":54295,"nodeType":"Return","src":"3604:7:80"}]}}]}},{"eventCall":{"arguments":[{"id":54301,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54249,"src":"3656:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54302,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54251,"src":"3665:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":54303,"name":"replyTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54253,"src":"3672:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54304,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54255,"src":"3681:9:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":54300,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53531,"src":"3650:5:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":54305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3650:41:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54306,"nodeType":"EmitStatement","src":"3645:46:80"}]},"baseFunctions":[53615],"functionSelector":"c78bde77","implemented":true,"kind":"function","modifiers":[{"id":54258,"kind":"modifierInvocation","modifierName":{"id":54257,"name":"onlyRouter","nameLocations":["3062:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"3062:10:80"},"nodeType":"ModifierInvocation","src":"3062:10:80"}],"name":"replySent","nameLocation":"2932:9:80","parameters":{"id":54256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54247,"mutability":"mutable","name":"destination","nameLocation":"2950:11:80","nodeType":"VariableDeclaration","scope":54308,"src":"2942:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54246,"name":"address","nodeType":"ElementaryTypeName","src":"2942:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54249,"mutability":"mutable","name":"payload","nameLocation":"2978:7:80","nodeType":"VariableDeclaration","scope":54308,"src":"2963:22:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54248,"name":"bytes","nodeType":"ElementaryTypeName","src":"2963:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":54251,"mutability":"mutable","name":"value","nameLocation":"2995:5:80","nodeType":"VariableDeclaration","scope":54308,"src":"2987:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54250,"name":"uint128","nodeType":"ElementaryTypeName","src":"2987:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":54253,"mutability":"mutable","name":"replyTo","nameLocation":"3010:7:80","nodeType":"VariableDeclaration","scope":54308,"src":"3002:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54252,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3002:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54255,"mutability":"mutable","name":"replyCode","nameLocation":"3026:9:80","nodeType":"VariableDeclaration","scope":54308,"src":"3019:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":54254,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3019:6:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2941:95:80"},"returnParameters":{"id":54259,"nodeType":"ParameterList","parameters":[],"src":"3077:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54330,"nodeType":"FunctionDefinition","src":"3704:192:80","nodes":[],"body":{"id":54329,"nodeType":"Block","src":"3801:95:80","nodes":[],"statements":[{"expression":{"arguments":[{"id":54320,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54312,"src":"3824:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54314,"src":"3837:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54319,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54523,"src":"3811:12:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:32:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54323,"nodeType":"ExpressionStatement","src":"3811:32:80"},{"eventCall":{"arguments":[{"id":54325,"name":"claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54310,"src":"3872:9:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54326,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54314,"src":"3883:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54324,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53538,"src":"3859:12:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":54327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3859:30:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54328,"nodeType":"EmitStatement","src":"3854:35:80"}]},"baseFunctions":[53624],"functionSelector":"14503e51","implemented":true,"kind":"function","modifiers":[{"id":54317,"kind":"modifierInvocation","modifierName":{"id":54316,"name":"onlyRouter","nameLocations":["3790:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"3790:10:80"},"nodeType":"ModifierInvocation","src":"3790:10:80"}],"name":"valueClaimed","nameLocation":"3713:12:80","parameters":{"id":54315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54310,"mutability":"mutable","name":"claimedId","nameLocation":"3734:9:80","nodeType":"VariableDeclaration","scope":54330,"src":"3726:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3726:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54312,"mutability":"mutable","name":"destination","nameLocation":"3753:11:80","nodeType":"VariableDeclaration","scope":54330,"src":"3745:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54311,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54314,"mutability":"mutable","name":"value","nameLocation":"3774:5:80","nodeType":"VariableDeclaration","scope":54330,"src":"3766:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54313,"name":"uint128","nodeType":"ElementaryTypeName","src":"3766:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3725:55:80"},"returnParameters":{"id":54318,"nodeType":"ParameterList","parameters":[],"src":"3801:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54344,"nodeType":"FunctionDefinition","src":"3902:114:80","nodes":[],"body":{"id":54343,"nodeType":"Block","src":"3970:46:80","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54338,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"3993:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3993:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54340,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54332,"src":"4003:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54337,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54523,"src":"3980:12:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":54341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3980:29:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54342,"nodeType":"ExpressionStatement","src":"3980:29:80"}]},"baseFunctions":[53629],"functionSelector":"dca4a373","implemented":true,"kind":"function","modifiers":[{"id":54335,"kind":"modifierInvocation","modifierName":{"id":54334,"name":"onlyRouter","nameLocations":["3959:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"3959:10:80"},"nodeType":"ModifierInvocation","src":"3959:10:80"}],"name":"executableBalanceBurned","nameLocation":"3911:23:80","parameters":{"id":54333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54332,"mutability":"mutable","name":"value","nameLocation":"3943:5:80","nodeType":"VariableDeclaration","scope":54344,"src":"3935:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54331,"name":"uint128","nodeType":"ElementaryTypeName","src":"3935:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3934:15:80"},"returnParameters":{"id":54336,"nodeType":"ParameterList","parameters":[],"src":"3970:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54385,"nodeType":"FunctionDefinition","src":"4022:363:80","nodes":[],"body":{"id":54384,"nodeType":"Block","src":"4103:282:80","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54354,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54044,"src":"4121:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":54355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4130:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4121:10:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6465636f64657220636f756c64206f6e6c792062652063726561746564206265666f726520696e6974206d657373616765","id":54357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4133:51:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_6179111dcaf1477c3041b02777f68e6f9b47b46bbab14442425a87a2628d248f","typeString":"literal_string \"decoder could only be created before init message\""},"value":"decoder could only be created before init message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6179111dcaf1477c3041b02777f68e6f9b47b46bbab14442425a87a2628d248f","typeString":"literal_string \"decoder could only be created before init message\""}],"id":54353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4113:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4113:72:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54359,"nodeType":"ExpressionStatement","src":"4113:72:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54361,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"4203:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4222:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4214:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54362,"name":"address","nodeType":"ElementaryTypeName","src":"4214:7:80","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4203:21:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e6365","id":54367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4226:36:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_2e378c5f64e230407f2ea4b317edbd32f061bf14b6bede40dc75fef40a2c3f34","typeString":"literal_string \"decoder could only be created once\""},"value":"decoder could only be created once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2e378c5f64e230407f2ea4b317edbd32f061bf14b6bede40dc75fef40a2c3f34","typeString":"literal_string \"decoder could only be created once\""}],"id":54360,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4195:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4195:68:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54369,"nodeType":"ExpressionStatement","src":"4195:68:80"},{"expression":{"id":54376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54370,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"4274:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54373,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54346,"src":"4310:14:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54374,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54348,"src":"4326:4:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":54371,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"4284:6:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$41121_$","typeString":"type(library Clones)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4291:18:80","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":41039,"src":"4284:25:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":54375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4284:47:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4274:57:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54377,"nodeType":"ExpressionStatement","src":"4274:57:80"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":54379,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"4357:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54378,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53683,"src":"4342:14:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$53683_$","typeString":"type(contract IMirrorDecoder)"}},"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4342:23:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorDecoder_$53683","typeString":"contract IMirrorDecoder"}},"id":54381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:10:80","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":53653,"src":"4342:34:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4342:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54383,"nodeType":"ExpressionStatement","src":"4342:36:80"}]},"baseFunctions":[53636],"functionSelector":"5b1b84f7","implemented":true,"kind":"function","modifiers":[{"id":54351,"kind":"modifierInvocation","modifierName":{"id":54350,"name":"onlyRouter","nameLocations":["4092:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"4092:10:80"},"nodeType":"ModifierInvocation","src":"4092:10:80"}],"name":"createDecoder","nameLocation":"4031:13:80","parameters":{"id":54349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54346,"mutability":"mutable","name":"implementation","nameLocation":"4053:14:80","nodeType":"VariableDeclaration","scope":54385,"src":"4045:22:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54345,"name":"address","nodeType":"ElementaryTypeName","src":"4045:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54348,"mutability":"mutable","name":"salt","nameLocation":"4077:4:80","nodeType":"VariableDeclaration","scope":54385,"src":"4069:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4069:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4044:38:80"},"returnParameters":{"id":54352,"nodeType":"ParameterList","parameters":[],"src":"4103:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54435,"nodeType":"FunctionDefinition","src":"4391:545:80","nodes":[],"body":{"id":54434,"nodeType":"Block","src":"4534:402:80","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54399,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54044,"src":"4552:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":54400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4561:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4552:10:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e6974206d657373616765206d7573742062652063726561746564206265666f726520616e79206f7468657273","id":54402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4564:48:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_f66d837affa62c092147eee2ea617e19f402b656aab0578ab0acad8d1e9a6341","typeString":"literal_string \"init message must be created before any others\""},"value":"init message must be created before any others"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f66d837affa62c092147eee2ea617e19f402b656aab0578ab0acad8d1e9a6341","typeString":"literal_string \"init message must be created before any others\""}],"id":54398,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4544:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4544:69:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54404,"nodeType":"ExpressionStatement","src":"4544:69:80"},{"assignments":[54406],"declarations":[{"constant":false,"id":54406,"mutability":"mutable","name":"initNonce","nameLocation":"4701:9:80","nodeType":"VariableDeclaration","scope":54434,"src":"4693:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54405,"name":"uint256","nodeType":"ElementaryTypeName","src":"4693:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54409,"initialValue":{"id":54408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4713:7:80","subExpression":{"id":54407,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54044,"src":"4713:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4693:27:80"},{"assignments":[54411],"declarations":[{"constant":false,"id":54411,"mutability":"mutable","name":"id","nameLocation":"4738:2:80","nodeType":"VariableDeclaration","scope":54434,"src":"4730:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4730:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":54422,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54417,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4778:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}],"id":54416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4770:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54415,"name":"address","nodeType":"ElementaryTypeName","src":"4770:7:80","typeDescriptions":{}}},"id":54418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4770:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54419,"name":"initNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54406,"src":"4785:9:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4753:3:80","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4757:12:80","memberName":"encodePacked","nodeType":"MemberAccess","src":"4753:16:80","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4753:42:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54412,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4743:9:80","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4743:53:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4730:66:80"},{"eventCall":{"arguments":[{"id":54424,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54393,"src":"4844:17:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54423,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"4812:31:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":54425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4812:50:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54426,"nodeType":"EmitStatement","src":"4807:55:80"},{"eventCall":{"arguments":[{"id":54428,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54411,"src":"4902:2:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54429,"name":"source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54387,"src":"4906:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54430,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54389,"src":"4914:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54431,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54391,"src":"4923:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54427,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53486,"src":"4877:24:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":54432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4877:52:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54433,"nodeType":"EmitStatement","src":"4872:57:80"}]},"baseFunctions":[53647],"functionSelector":"de1dd2e0","implemented":true,"kind":"function","modifiers":[{"id":54396,"kind":"modifierInvocation","modifierName":{"id":54395,"name":"onlyRouter","nameLocations":["4519:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"4519:10:80"},"nodeType":"ModifierInvocation","src":"4519:10:80"}],"name":"initMessage","nameLocation":"4400:11:80","parameters":{"id":54394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54387,"mutability":"mutable","name":"source","nameLocation":"4420:6:80","nodeType":"VariableDeclaration","scope":54435,"src":"4412:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54386,"name":"address","nodeType":"ElementaryTypeName","src":"4412:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54389,"mutability":"mutable","name":"payload","nameLocation":"4443:7:80","nodeType":"VariableDeclaration","scope":54435,"src":"4428:22:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54388,"name":"bytes","nodeType":"ElementaryTypeName","src":"4428:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":54391,"mutability":"mutable","name":"value","nameLocation":"4460:5:80","nodeType":"VariableDeclaration","scope":54435,"src":"4452:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54390,"name":"uint128","nodeType":"ElementaryTypeName","src":"4452:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":54393,"mutability":"mutable","name":"executableBalance","nameLocation":"4475:17:80","nodeType":"VariableDeclaration","scope":54435,"src":"4467:25:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54392,"name":"uint128","nodeType":"ElementaryTypeName","src":"4467:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"4411:82:80"},"returnParameters":{"id":54397,"nodeType":"ParameterList","parameters":[],"src":"4534:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54448,"nodeType":"ModifierDefinition","src":"4942:131:80","nodes":[],"body":{"id":54447,"nodeType":"Block","src":"4964:109:80","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54438,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4982:3:80","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4986:6:80","memberName":"sender","nodeType":"MemberAccess","src":"4982:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":54440,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"4996:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4996:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4982:22:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6520666f72206f7065726174696f6e","id":54443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5006:48:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_64d2230e88596248f8ffc0c335875e1b5d3e7ef288684b79c0f3f409577b1f91","typeString":"literal_string \"only router contract is eligible for operation\""},"value":"only router contract is eligible for operation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_64d2230e88596248f8ffc0c335875e1b5d3e7ef288684b79c0f3f409577b1f91","typeString":"literal_string \"only router contract is eligible for operation\""}],"id":54437,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4974:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4974:81:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54445,"nodeType":"ExpressionStatement","src":"4974:81:80"},{"id":54446,"nodeType":"PlaceholderStatement","src":"5065:1:80"}]},"name":"onlyRouter","nameLocation":"4951:10:80","parameters":{"id":54436,"nodeType":"ParameterList","parameters":[],"src":"4961:2:80"},"virtual":false,"visibility":"internal"},{"id":54485,"nodeType":"FunctionDefinition","src":"5113:332:80","nodes":[],"body":{"id":54484,"nodeType":"Block","src":"5169:276:80","nodes":[],"statements":[{"assignments":[54454],"declarations":[{"constant":false,"id":54454,"mutability":"mutable","name":"routerAddress","nameLocation":"5187:13:80","nodeType":"VariableDeclaration","scope":54484,"src":"5179:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54453,"name":"address","nodeType":"ElementaryTypeName","src":"5179:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":54457,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54455,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"5203:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5203:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5179:32:80"},{"assignments":[54460],"declarations":[{"constant":false,"id":54460,"mutability":"mutable","name":"wrappedVara","nameLocation":"5235:11:80","nodeType":"VariableDeclaration","scope":54484,"src":"5222:24:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"},"typeName":{"id":54459,"nodeType":"UserDefinedTypeName","pathNode":{"id":54458,"name":"IWrappedVara","nameLocations":["5222:12:80"],"nodeType":"IdentifierPath","referencedDeclaration":54024,"src":"5222:12:80"},"referencedDeclaration":54024,"src":"5222:12:80","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":54468,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":54463,"name":"routerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54454,"src":"5270:13:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54462,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"5262:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$54013_$","typeString":"type(contract IRouter)"}},"id":54464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5262:22:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$54013","typeString":"contract IRouter"}},"id":54465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5285:11:80","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53857,"src":"5262:34:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5262:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54461,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54024,"src":"5249:12:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$54024_$","typeString":"type(contract IWrappedVara)"}},"id":54467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5249:50:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"5222:77:80"},{"assignments":[54470],"declarations":[{"constant":false,"id":54470,"mutability":"mutable","name":"success","nameLocation":"5315:7:80","nodeType":"VariableDeclaration","scope":54484,"src":"5310:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54469,"name":"bool","nodeType":"ElementaryTypeName","src":"5310:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":54478,"initialValue":{"arguments":[{"expression":{"id":54473,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"5350:2:80","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5353:6:80","memberName":"origin","nodeType":"MemberAccess","src":"5350:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54475,"name":"routerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54454,"src":"5361:13:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54476,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54450,"src":"5376:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":54471,"name":"wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"5325:11:80","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5337:12:80","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":41905,"src":"5325:24:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":54477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5325:58:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5310:73:80"},{"expression":{"arguments":[{"id":54480,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54470,"src":"5402:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207265747269657665205756617261","id":54481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5411:26:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""},"value":"failed to retrieve WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""}],"id":54479,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5394:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5394:44:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54483,"nodeType":"ExpressionStatement","src":"5394:44:80"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrieveValueToRouter","nameLocation":"5122:22:80","parameters":{"id":54451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54450,"mutability":"mutable","name":"_value","nameLocation":"5153:6:80","nodeType":"VariableDeclaration","scope":54485,"src":"5145:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54449,"name":"uint128","nodeType":"ElementaryTypeName","src":"5145:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5144:16:80"},"returnParameters":{"id":54452,"nodeType":"ParameterList","parameters":[],"src":"5169:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":54523,"nodeType":"FunctionDefinition","src":"5451:316:80","nodes":[],"body":{"id":54522,"nodeType":"Block","src":"5517:250:80","nodes":[],"statements":[{"assignments":[54494],"declarations":[{"constant":false,"id":54494,"mutability":"mutable","name":"wrappedVara","nameLocation":"5540:11:80","nodeType":"VariableDeclaration","scope":54522,"src":"5527:24:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"},"typeName":{"id":54493,"nodeType":"UserDefinedTypeName","pathNode":{"id":54492,"name":"IWrappedVara","nameLocations":["5527:12:80"],"nodeType":"IdentifierPath","referencedDeclaration":54024,"src":"5527:12:80"},"referencedDeclaration":54024,"src":"5527:12:80","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":54503,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54497,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"5575:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5575:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54496,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"5567:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$54013_$","typeString":"type(contract IRouter)"}},"id":54499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5567:17:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$54013","typeString":"contract IRouter"}},"id":54500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5585:11:80","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53857,"src":"5567:29:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":54501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5567:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54495,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54024,"src":"5554:12:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$54024_$","typeString":"type(contract IWrappedVara)"}},"id":54502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5554:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"5527:72:80"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":54506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54504,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"5614:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":54505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5623:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5614:10:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54521,"nodeType":"IfStatement","src":"5610:151:80","trueBody":{"id":54520,"nodeType":"Block","src":"5626:135:80","statements":[{"assignments":[54508],"declarations":[{"constant":false,"id":54508,"mutability":"mutable","name":"success","nameLocation":"5645:7:80","nodeType":"VariableDeclaration","scope":54520,"src":"5640:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54507,"name":"bool","nodeType":"ElementaryTypeName","src":"5640:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":54514,"initialValue":{"arguments":[{"id":54511,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"5676:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54512,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"5689:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":54509,"name":"wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54494,"src":"5655:11:80","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"id":54510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5667:8:80","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":41873,"src":"5655:20:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":54513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5655:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5640:55:80"},{"expression":{"arguments":[{"id":54516,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54508,"src":"5718:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f2073656e64205756617261","id":54517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5727:22:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ec034c4b2ac47d4229390ddbbb751ebe057cb836b00500cd6f2ff2a9adb713a","typeString":"literal_string \"failed to send WVara\""},"value":"failed to send WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8ec034c4b2ac47d4229390ddbbb751ebe057cb836b00500cd6f2ff2a9adb713a","typeString":"literal_string \"failed to send WVara\""}],"id":54515,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5710:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5710:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54519,"nodeType":"ExpressionStatement","src":"5710:40:80"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendValueTo","nameLocation":"5460:12:80","parameters":{"id":54490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54487,"mutability":"mutable","name":"destination","nameLocation":"5481:11:80","nodeType":"VariableDeclaration","scope":54523,"src":"5473:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54486,"name":"address","nodeType":"ElementaryTypeName","src":"5473:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54489,"mutability":"mutable","name":"value","nameLocation":"5502:5:80","nodeType":"VariableDeclaration","scope":54523,"src":"5494:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54488,"name":"uint128","nodeType":"ElementaryTypeName","src":"5494:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5472:36:80"},"returnParameters":{"id":54491,"nodeType":"ParameterList","parameters":[],"src":"5517:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":54039,"name":"IMirror","nameLocations":["422:7:80"],"nodeType":"IdentifierPath","referencedDeclaration":53648,"src":"422:7:80"},"id":54040,"nodeType":"InheritanceSpecifier","src":"422:7:80"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54524,53648],"name":"Mirror","nameLocation":"412:6:80","scope":54525,"usedErrors":[42267,42273],"usedEvents":[53475,53486,53497,53504,53509,53520,53531,53538]}],"license":"UNLICENSED"},"id":80} \ No newline at end of file +{"abi":[{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createDecoder","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decoder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"executableBalanceBurned","inputs":[{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"initMessage","inputs":[{"name":"source","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"executableBalance","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messageSent","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"replySent","inputs":[{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyTo","type":"bytes32","internalType":"bytes32"},{"name":"replyCode","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendMessage","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateState","inputs":[{"name":"newStateHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"valueClaimed","inputs":[{"name":"claimedId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecutableBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Message","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageQueueingRequested","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Reply","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyQueueingRequested","inputs":[{"name":"repliedTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"StateChanged","inputs":[{"name":"stateHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60808060405234601557611051908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f803560e01c806314503e51146108d757806329336f39146108035780635b1b84f714610652578063701da98e14610635578063704ed542146105e15780638ea59e1d1461057c57806391d5a64c146105395780639cb3300514610510578063affed0e0146104f2578063c2df60091461048f578063c78bde7714610412578063d5624222146102c2578063dca4a37314610282578063de1dd2e0146100ee5763f887ea40146100bf575f80fd5b346100eb57806003193601126100eb5760206100d9610d7a565b6040516001600160a01b039091168152f35b80fd5b50346100eb5760803660031901126100eb57610108610963565b60243567ffffffffffffffff811161027e576101289036906004016109bb565b90610131610979565b9261013a6109a5565b936101566001600160a01b0361014e610d7a565b1633146109e9565b6001549081610222577f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6947f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366676020846101b161021c96610d4d565b6001556040513060601b6bffffffffffffffffffffffff191683820190815260148101929092526101ef81603484015b03601f198101835282610a4c565b519020986001600160801b0360405191168152a16040516001600160a01b03909416969394859485610af5565b0390a280f35b60405162461bcd60e51b815260206004820152602e60248201527f696e6974206d657373616765206d75737420626520637265617465642062656660448201526d6f726520616e79206f746865727360901b6064820152608490fd5b8280fd5b50346100eb5760203660031901126100eb576102bf61029f61098f565b6102b26001600160a01b0361014e610d7a565b6102ba610d7a565b610de5565b80f35b5060403660031901126100eb5760043567ffffffffffffffff811161040e576102ef9036906004016109bb565b906024356001600160801b038116810361040a57600460206001600160a01b03610317610d7a565b16604051928380926337792e1d60e11b82525afa9081156103ff5761036c837f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6949361037193602099916103d2575b50610aa1565b610f10565b60015461037d81610d4d565b6001556040513060601b6bffffffffffffffffffffffff191687820190815260148101929092526103b181603484016101e1565b519020936103c760405192839232968885610af5565b0390a2604051908152f35b6103f29150893d8b116103f8575b6103ea8183610a4c565b810190610a82565b5f610366565b503d6103e0565b6040513d87823e3d90fd5b8380fd5b5080fd5b50346100eb5760a03660031901126100eb5761042c610963565b60243567ffffffffffffffff811161027e5761044c9036906004016109bb565b9091610456610979565b608435926001600160e01b03198416840361048b576102bf946104826001600160a01b0361014e610d7a565b60643593610c3a565b8580fd5b50346100eb5760803660031901126100eb576104a961094d565b6044359067ffffffffffffffff821161027e576104cd6102bf9236906004016109bb565b906104d66109a5565b926104ea6001600160a01b0361014e610d7a565b600435610b62565b50346100eb57806003193601126100eb576020600154604051908152f35b50346100eb57806003193601126100eb576002546040516001600160a01b039091168152602090f35b50346100eb5760203660031901126100eb5760405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203292a280f35b50346100eb5760203660031901126100eb576004356105a46001600160a01b0361014e610d7a565b808254036105b0575080f35b6020817f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c080930928455604051908152a180f35b5060203660031901126100eb577f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667602061061961098f565b61062281610f10565b6001600160801b0360405191168152a180f35b50346100eb57806003193601126100eb5760209054604051908152f35b50346107415760403660031901126107415761066c610963565b61067f6001600160a01b0361014e610d7a565b6001546107a4576002546001600160a01b03166107545780763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff6e5af43d82803e903d91602b57fd5bf39360881c16175f5260781b1760205260018060a01b03602435603760095ff516801561074557600280546001600160a01b03191682179055803b15610741575f809160046040518094819363204a7f0760e21b83525af1801561073657610728575080f35b61073491505f90610a4c565b005b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152602260248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152603160248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206265604482015270666f726520696e6974206d65737361676560781b6064820152608490fd5b60603660031901126107415760243567ffffffffffffffff811161074157610830600491369083016109bb565b61083b929192610979565b9060206001600160a01b0361084e610d7a565b16604051948580926337792e1d60e11b82525afa9283156107365761036c837fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f9561089f935f916108b85750610aa1565b6108b3604051928392329660043585610af5565b0390a2005b6108d1915060203d6020116103f8576103ea8183610a4c565b88610366565b34610741576060366003190112610741577fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783604061091361094d565b61093461091e610979565b9182906102ba6001600160a01b0361014e610d7a565b6001600160801b038251916004358352166020820152a1005b602435906001600160a01b038216820361074157565b600435906001600160a01b038216820361074157565b604435906001600160801b038216820361074157565b600435906001600160801b038216820361074157565b606435906001600160801b038216820361074157565b9181601f840112156107415782359167ffffffffffffffff8311610741576020838186019501011161074157565b156109f057565b60405162461bcd60e51b815260206004820152602e60248201527f6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6560448201526d103337b91037b832b930ba34b7b760911b6064820152608490fd5b90601f8019910116810190811067ffffffffffffffff821117610a6e57604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261074157516001600160801b03811681036107415790565b906001600160801b03809116911601906001600160801b038211610ac157565b634e487b7160e01b5f52601160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b92604092610b1c916001600160801b03939796978652606060208701526060860191610ad5565b9416910152565b3d15610b5d573d9067ffffffffffffffff8211610a6e5760405191610b52601f8201601f191660200184610a4c565b82523d5f602084013e565b606090565b600254909493906001600160a01b031680610bb9575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177393610bb49160405194859460018060a01b03169785610af5565b0390a2565b5f80916040518260208201916374fad4ef60e01b83528a602482015260018060a01b038816604482015260806064820152610c1981610bfc60a482018a8d610ad5565b6001600160801b038d16608483015203601f198101835282610a4c565b51926207a120f1610c28610b23565b50610c33575f610b78565b5050505050565b94909294610c488682610de5565b6002546001600160a01b03169081610cba575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6936001600160801b03610c9e604051958695606087526060870191610ad5565b9616602084015260408301526001600160e01b031916930390a2565b604051639649744960e01b602082019081526001600160a01b03909216602482015260a060448201525f92839290918390610d32818c6001600160801b03610d0660c484018d8f610ad5565b91166064830152608482018d90526001600160e01b03198a1660a483015203601f198101835282610a4c565b51926207a120f1610d41610b23565b50610c33575f80610c5b565b5f198114610ac15760010190565b9081602091031261074157516001600160a01b03811681036107415790565b6040516303e21fa960e61b8152602081600481305afa908115610736575f91610da1575090565b610dc3915060203d602011610dc6575b610dbb8183610a4c565b810190610d5b565b90565b503d610db1565b90816020910312610741575180151581036107415790565b60049160206001600160a01b03610dfa610d7a565b166040519485809263088f50cf60e41b82525afa928315610736575f93610ee6575b506001600160801b031680610e3057505050565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291602091839160449183915f91165af1908115610736575f91610eb7575b5015610e7b57565b60405162461bcd60e51b81526020600482015260146024820152736661696c656420746f2073656e6420575661726160601b6044820152606490fd5b610ed9915060203d602011610edf575b610ed18183610a4c565b810190610dcd565b5f610e73565b503d610ec7565b6001600160801b03919350610f099060203d602011610dc657610dbb8183610a4c565b9290610e1c565b6001600160a01b03610f20610d7a565b60405163088f50cf60e41b8152911691602082600481865afa8015610736576001600160801b03935f6064926020958291610ffe575b5060405196879586946323b872dd60e01b8652326004870152602486015216604484015260018060a01b03165af1908115610736575f91610fdf575b5015610f9a57565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b610ff8915060203d602011610edf57610ed18183610a4c565b5f610f92565b6110159150863d8811610dc657610dbb8183610a4c565b5f610f5656fea2646970667358221220a7c932ae8e7ace7b8617a999584ab36a7b9ffbf094dfc00c58b50bfd6e0747a864736f6c634300081a0033","sourceMap":"403:5366:80:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f803560e01c806314503e51146108d757806329336f39146108035780635b1b84f714610652578063701da98e14610635578063704ed542146105e15780638ea59e1d1461057c57806391d5a64c146105395780639cb3300514610510578063affed0e0146104f2578063c2df60091461048f578063c78bde7714610412578063d5624222146102c2578063dca4a37314610282578063de1dd2e0146100ee5763f887ea40146100bf575f80fd5b346100eb57806003193601126100eb5760206100d9610d7a565b6040516001600160a01b039091168152f35b80fd5b50346100eb5760803660031901126100eb57610108610963565b60243567ffffffffffffffff811161027e576101289036906004016109bb565b90610131610979565b9261013a6109a5565b936101566001600160a01b0361014e610d7a565b1633146109e9565b6001549081610222577f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6947f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c0542366676020846101b161021c96610d4d565b6001556040513060601b6bffffffffffffffffffffffff191683820190815260148101929092526101ef81603484015b03601f198101835282610a4c565b519020986001600160801b0360405191168152a16040516001600160a01b03909416969394859485610af5565b0390a280f35b60405162461bcd60e51b815260206004820152602e60248201527f696e6974206d657373616765206d75737420626520637265617465642062656660448201526d6f726520616e79206f746865727360901b6064820152608490fd5b8280fd5b50346100eb5760203660031901126100eb576102bf61029f61098f565b6102b26001600160a01b0361014e610d7a565b6102ba610d7a565b610de5565b80f35b5060403660031901126100eb5760043567ffffffffffffffff811161040e576102ef9036906004016109bb565b906024356001600160801b038116810361040a57600460206001600160a01b03610317610d7a565b16604051928380926337792e1d60e11b82525afa9081156103ff5761036c837f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c6949361037193602099916103d2575b50610aa1565b610f10565b60015461037d81610d4d565b6001556040513060601b6bffffffffffffffffffffffff191687820190815260148101929092526103b181603484016101e1565b519020936103c760405192839232968885610af5565b0390a2604051908152f35b6103f29150893d8b116103f8575b6103ea8183610a4c565b810190610a82565b5f610366565b503d6103e0565b6040513d87823e3d90fd5b8380fd5b5080fd5b50346100eb5760a03660031901126100eb5761042c610963565b60243567ffffffffffffffff811161027e5761044c9036906004016109bb565b9091610456610979565b608435926001600160e01b03198416840361048b576102bf946104826001600160a01b0361014e610d7a565b60643593610c3a565b8580fd5b50346100eb5760803660031901126100eb576104a961094d565b6044359067ffffffffffffffff821161027e576104cd6102bf9236906004016109bb565b906104d66109a5565b926104ea6001600160a01b0361014e610d7a565b600435610b62565b50346100eb57806003193601126100eb576020600154604051908152f35b50346100eb57806003193601126100eb576002546040516001600160a01b039091168152602090f35b50346100eb5760203660031901126100eb5760405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203292a280f35b50346100eb5760203660031901126100eb576004356105a46001600160a01b0361014e610d7a565b808254036105b0575080f35b6020817f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c080930928455604051908152a180f35b5060203660031901126100eb577f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667602061061961098f565b61062281610f10565b6001600160801b0360405191168152a180f35b50346100eb57806003193601126100eb5760209054604051908152f35b50346107415760403660031901126107415761066c610963565b61067f6001600160a01b0361014e610d7a565b6001546107a4576002546001600160a01b03166107545780763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff6e5af43d82803e903d91602b57fd5bf39360881c16175f5260781b1760205260018060a01b03602435603760095ff516801561074557600280546001600160a01b03191682179055803b15610741575f809160046040518094819363204a7f0760e21b83525af1801561073657610728575080f35b61073491505f90610a4c565b005b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152602260248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152603160248201527f6465636f64657220636f756c64206f6e6c792062652063726561746564206265604482015270666f726520696e6974206d65737361676560781b6064820152608490fd5b60603660031901126107415760243567ffffffffffffffff811161074157610830600491369083016109bb565b61083b929192610979565b9060206001600160a01b0361084e610d7a565b16604051948580926337792e1d60e11b82525afa9283156107365761036c837fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f9561089f935f916108b85750610aa1565b6108b3604051928392329660043585610af5565b0390a2005b6108d1915060203d6020116103f8576103ea8183610a4c565b88610366565b34610741576060366003190112610741577fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783604061091361094d565b61093461091e610979565b9182906102ba6001600160a01b0361014e610d7a565b6001600160801b038251916004358352166020820152a1005b602435906001600160a01b038216820361074157565b600435906001600160a01b038216820361074157565b604435906001600160801b038216820361074157565b600435906001600160801b038216820361074157565b606435906001600160801b038216820361074157565b9181601f840112156107415782359167ffffffffffffffff8311610741576020838186019501011161074157565b156109f057565b60405162461bcd60e51b815260206004820152602e60248201527f6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6560448201526d103337b91037b832b930ba34b7b760911b6064820152608490fd5b90601f8019910116810190811067ffffffffffffffff821117610a6e57604052565b634e487b7160e01b5f52604160045260245ffd5b9081602091031261074157516001600160801b03811681036107415790565b906001600160801b03809116911601906001600160801b038211610ac157565b634e487b7160e01b5f52601160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b92604092610b1c916001600160801b03939796978652606060208701526060860191610ad5565b9416910152565b3d15610b5d573d9067ffffffffffffffff8211610a6e5760405191610b52601f8201601f191660200184610a4c565b82523d5f602084013e565b606090565b600254909493906001600160a01b031680610bb9575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177393610bb49160405194859460018060a01b03169785610af5565b0390a2565b5f80916040518260208201916374fad4ef60e01b83528a602482015260018060a01b038816604482015260806064820152610c1981610bfc60a482018a8d610ad5565b6001600160801b038d16608483015203601f198101835282610a4c565b51926207a120f1610c28610b23565b50610c33575f610b78565b5050505050565b94909294610c488682610de5565b6002546001600160a01b03169081610cba575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6936001600160801b03610c9e604051958695606087526060870191610ad5565b9616602084015260408301526001600160e01b031916930390a2565b604051639649744960e01b602082019081526001600160a01b03909216602482015260a060448201525f92839290918390610d32818c6001600160801b03610d0660c484018d8f610ad5565b91166064830152608482018d90526001600160e01b03198a1660a483015203601f198101835282610a4c565b51926207a120f1610d41610b23565b50610c33575f80610c5b565b5f198114610ac15760010190565b9081602091031261074157516001600160a01b03811681036107415790565b6040516303e21fa960e61b8152602081600481305afa908115610736575f91610da1575090565b610dc3915060203d602011610dc6575b610dbb8183610a4c565b810190610d5b565b90565b503d610db1565b90816020910312610741575180151581036107415790565b60049160206001600160a01b03610dfa610d7a565b166040519485809263088f50cf60e41b82525afa928315610736575f93610ee6575b506001600160801b031680610e3057505050565b60405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291602091839160449183915f91165af1908115610736575f91610eb7575b5015610e7b57565b60405162461bcd60e51b81526020600482015260146024820152736661696c656420746f2073656e6420575661726160601b6044820152606490fd5b610ed9915060203d602011610edf575b610ed18183610a4c565b810190610dcd565b5f610e73565b503d610ec7565b6001600160801b03919350610f099060203d602011610dc657610dbb8183610a4c565b9290610e1c565b6001600160a01b03610f20610d7a565b60405163088f50cf60e41b8152911691602082600481865afa8015610736576001600160801b03935f6064926020958291610ffe575b5060405196879586946323b872dd60e01b8652326004870152602486015216604484015260018060a01b03165af1908115610736575f91610fdf575b5015610f9a57565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b610ff8915060203d602011610edf57610ed18183610a4c565b5f610f92565b6110159150863d8811610dc657610dbb8183610a4c565b5f610f5656fea2646970667358221220a7c932ae8e7ace7b8617a999584ab36a7b9ffbf094dfc00c58b50bfd6e0747a864736f6c634300081a0033","sourceMap":"403:5366:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;403:5366:80;;;;;;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;:::-;403:5366;4982:10;:22;4974:81;:::i;:::-;4552:5;403:5366;4552:10;;403:5366;;4877:52;4713:7;4812:50;403:5366;4713:7;;4877:52;4713:7;;:::i;:::-;4552:5;403:5366;;;4778:4;403:5366;;-1:-1:-1;;403:5366:80;4753:42;;;403:5366;;;;;;;;;;4753:42;403:5366;;;;4753:42;;1099:40;;4753:42;;;;;;:::i;:::-;403:5366;4743:53;;403:5366;-1:-1:-1;;;;;403:5366:80;;;;;;4812:50;403:5366;;-1:-1:-1;;;;;403:5366:80;;;;;;;;;4877:52;:::i;:::-;;;;403:5366;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;4003:5;403:5366;;:::i;:::-;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;4974:81::-;3993:8;;:::i;:::-;4003:5;:::i;:::-;403:5366;;;-1:-1:-1;403:5366:80;;-1:-1:-1;;403:5366:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;403:5366:80;;;;;;;;-1:-1:-1;;;;;996:8:80;;:::i;:::-;403:5366;;;;;;;;;;988:27;;;;;;;;;1048:16;988:27;1156:57;988:27;;1048:16;988:27;403:5366;988:27;;;;403:5366;1048:16;;:::i;:::-;;:::i;:::-;1131:7;403:5366;1131:7;;;:::i;:::-;;403:5366;;;1124:4;403:5366;;-1:-1:-1;;403:5366:80;1099:40;;;403:5366;;;;;;;;;;1099:40;403:5366;;;;1099:40;403:5366;1099:40;403:5366;1089:51;;403:5366;1156:57;403:5366;;1185:9;;;;1156:57;;;;:::i;:::-;;;;403:5366;;;;;;988:27;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;403:5366;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;403:5366:80;;;;;;5065:1;;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;4974:81::-;403:5366;;5065:1;;:::i;403:5366::-;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;:::i;:::-;;;;;;;;;;5065:1;403:5366;;;;;;:::i;:::-;;;;:::i;:::-;;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;4974:81::-;403:5366;;5065:1;:::i;403:5366::-;;;;;;;;;;;;;;538:20;403:5366;;;;;;;;;;;;;;;;;;;;574:22;403:5366;;;-1:-1:-1;;;;;403:5366:80;;;;;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;;;;;1672:45;403:5366;1707:9;1672:45;;403:5366;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;4974:81::-;403:5366;;;2032:25;2028:123;;403:5366;;;2028:123;403:5366;;2117:23;403:5366;;;;;;;;2117:23;403:5366;;;-1:-1:-1;403:5366:80;;-1:-1:-1;;403:5366:80;;;;1851:39;403:5366;;;:::i;:::-;1828:6;;;:::i;:::-;-1:-1:-1;;;;;403:5366:80;;;;;;1851:39;403:5366;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;:::i;:::-;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;4974:81::-;403:5366;;;;4203:7;403:5366;-1:-1:-1;;;;;403:5366:80;;;3743:569:36;;;;;;;;;403:5366:80;3743:569:36;;;;403:5366:80;3743:569:36;403:5366:80;;;;;;;3743:569:36;;403:5366:80;3743:569:36;403:5366:80;4325:22:36;;4321:85;;4203:7:80;403:5366;;-1:-1:-1;;;;;;403:5366:80;;;;;4342:36;;;;;403:5366;;;;;;;;;;;;;4342:36;;;;;;;;;;403:5366;;;4342:36;;;;403:5366;4342:36;;:::i;:::-;403:5366;4342:36;403:5366;;;;;;;;;4342:36;403:5366;;;4321:85:36;4370:25;;;403:5366:80;4370:25:36;403:5366:80;;4370:25:36;403:5366:80;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;-1:-1:-1;;403:5366:80;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1379:8:80;;:::i;:::-;403:5366;;;;;;;;;;1371:27;;;;;;;;;1431:16;1371:27;1464:63;1371:27;1431:16;1371:27;403:5366;1371:27;;;1431:16;;:::i;:::-;1464:63;403:5366;;1499:9;;;;403:5366;;;1464:63;;:::i;:::-;;;;403:5366;1371:27;;;;403:5366;1371:27;403:5366;1371:27;;;;;;;:::i;:::-;;;;403:5366;;;;;;-1:-1:-1;;403:5366:80;;;;3859:30;403:5366;;;:::i;:::-;3837:5;403:5366;;:::i;:::-;;;;4974:81;-1:-1:-1;;;;;4996:8:80;;:::i;3837:5::-;-1:-1:-1;;;;;403:5366:80;;;;;;;;;;;;3859:30;403:5366;;;;;-1:-1:-1;;;;;403:5366:80;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:5366:80;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:5366:80;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:5366:80;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;403:5366:80;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:5366:80;;;;;;;;;;1099:40;;403:5366;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;403:5366:80;;;;;-1:-1:-1;403:5366:80;;;;;;;;;;;-1:-1:-1;;;;;403:5366:80;;;;;;;:::o;:::-;;-1:-1:-1;;;;;403:5366:80;;;;;;;-1:-1:-1;;;;;403:5366:80;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;403:5366:80;;;;;;;;-1:-1:-1;;403:5366:80;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;403:5366:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;1099:40;403:5366;;-1:-1:-1;;403:5366:80;;;;;:::i;:::-;;;;-1:-1:-1;403:5366:80;;;;:::o;:::-;;;:::o;2163:754::-;2380:7;403:5366;2163:754;;;;-1:-1:-1;;;;;403:5366:80;;2376:479;;2163:754;403:5366;2870:40;403:5366;2870:40;403:5366;;;;;;;;;;;;2870:40;;;:::i;:::-;;;;2163:754::o;2376:479::-;-1:-1:-1;403:5366:80;;;;2457:94;;;;2480:37;;;;2457:94;;;;;;403:5366;;;;;;;;;;;;;;;;;2457:94;403:5366;;;;;;;;:::i;:::-;-1:-1:-1;;;;;403:5366:80;;;;;;2457:94;1099:40;;2457:94;;;;;;:::i;:::-;2677:36;;2695:7;2677:36;;;:::i;:::-;;2728:117;;2376:479;;;2728:117;2824:7;;;;;:::o;2923:775::-;;;;;3113:5;;;;:::i;:::-;3134:7;403:5366;-1:-1:-1;;;;;403:5366:80;;;3130:505;;2923:775;403:5366;;3650:41;403:5366;-1:-1:-1;;;;;403:5366:80;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;;403:5366:80;;3650:41;;;2923:775::o;3130:505::-;403:5366;;-1:-1:-1;;;3195:138:80;;;;;;-1:-1:-1;;;;;403:5366:80;;;3195:138;;;403:5366;;;;;;-1:-1:-1;;;;403:5366:80;;-1:-1:-1;;3195:138:80;403:5366;;-1:-1:-1;;;;;403:5366:80;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;403:5366:80;;;;;;3195:138;-1:-1:-1;;3195:138:80;;;;;;:::i;:::-;3459:36;;3477:7;3459:36;;;:::i;:::-;;3510:115;;3130:505;;;;403:5366;-1:-1:-1;;403:5366:80;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;403:5366:80;;;;;;;:::o;636:108::-;403:5366;;-1:-1:-1;;;701:36:80;;;403:5366;701:36;403:5366;722:4;701:36;;;;;;;-1:-1:-1;701:36:80;;;694:43;636:108;:::o;701:36::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;636:108;:::o;701:36::-;;;;;403:5366;;;;;;;;;;;;;;;;;;:::o;5451:316::-;5567:31;;;-1:-1:-1;;;;;5575:8:80;;:::i;:::-;403:5366;;;;;;;;;;5567:31;;;;;;;;;-1:-1:-1;5567:31:80;;;5451:316;403:5366;-1:-1:-1;;;;;403:5366:80;5614:10;5610:151;;5451:316;;;:::o;5610:151::-;403:5366;;-1:-1:-1;;;5655:40:80;;-1:-1:-1;;;;;403:5366:80;;;5567:31;5655:40;;403:5366;;;;;;;;;5567:31;;403:5366;;5655:40;;403:5366;;-1:-1:-1;;403:5366:80;5655:40;;;;;;;-1:-1:-1;5655:40:80;;;5610:151;403:5366;;;;5451:316::o;403:5366::-;;;-1:-1:-1;;;403:5366:80;;5567:31;;403:5366;;;;;;;;-1:-1:-1;;;5655:40:80;403:5366;;;;;;5655:40;;;;5567:31;5655:40;5567:31;5655:40;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;5567:31;-1:-1:-1;;;;;5567:31:80;;;;;;;;;;;;;;;:::i;:::-;;;;;5113:332;-1:-1:-1;;;;;5203:8:80;;:::i;:::-;403:5366;;-1:-1:-1;;;5262:36:80;;403:5366;;;5262:36;403:5366;5262:36;403:5366;;5262:36;;;;;;-1:-1:-1;;;;;5262:36:80;-1:-1:-1;5325:58:80;5262:36;;;;;;;5113:332;403:5366;;;;;;;;;;;5325:58;;5350:9;5262:36;5325:58;;403:5366;;;;;;;;;;;;;;;;5325:58;;;;;;;-1:-1:-1;5325:58:80;;;5113:332;403:5366;;;;5113:332::o;403:5366::-;;;-1:-1:-1;;;403:5366:80;;5262:36;;403:5366;;;;;;;;;;;;;5325:58;;403:5366;5325:58;;;;5262:36;5325:58;5262:36;5325:58;;;;;;;:::i;:::-;;;;5262:36;;;;;;;;;;;;;;:::i;:::-;;;","linkReferences":{}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","createDecoder(address,bytes32)":"5b1b84f7","decoder()":"9cb33005","executableBalanceBurned(uint128)":"dca4a373","executableBalanceTopUp(uint128)":"704ed542","initMessage(address,bytes,uint128,uint128)":"de1dd2e0","messageSent(bytes32,address,bytes,uint128)":"c2df6009","nonce()":"affed0e0","replySent(address,bytes,uint128,bytes32,bytes4)":"c78bde77","router()":"f887ea40","sendMessage(bytes,uint128)":"d5624222","sendReply(bytes32,bytes,uint128)":"29336f39","stateHash()":"701da98e","updateState(bytes32)":"8ea59e1d","valueClaimed(bytes32,address,uint128)":"14503e51"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"Message\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"Reply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"repliedTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"}],\"name\":\"ValueClaimingRequested\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"createDecoder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceBurned\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"executableBalance\",\"type\":\"uint128\"}],\"name\":\"initMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"messageSent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"replySent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"}],\"name\":\"updateState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"valueClaimed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens. NOTE: It's event for NODES: it requires to top up balance of the program.\"},\"Message(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when the program sends outgoing message. NOTE: It's event for USERS: it informs about new message sent from program.\"},\"MessageQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new message is sent to be queued. NOTE: It's event for NODES: it requires to insert message in the program's queue.\"},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message. NOTE: It's event for USERS: it informs about new reply sent from program.\"},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed. NOTE: It's event for USERS: it informs about state changes.\"},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance. NOTE: It's event for USERS: it informs about value claimed.\"},\"ValueClaimingRequested(bytes32,address)\":{\"details\":\"Emitted when a reply's value is requested to be verified and claimed. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64\",\"dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x82d8c114d8e994851d5fb8b21ce02fb48907eec690df5f3af4111451a3390f89\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c08f1764a6263ea9bc4a8c4afe14cdc2f9486157ceafc9fa6f0a5ca6c58ba37\",\"dweb:/ipfs/QmWNZJmyp6M7JrdLE1cNKC8sGdZ3YdeHvujgyVqnQp7ubC\"]},\"src/IMirrorDecoder.sol\":{\"keccak256\":\"0x95bfe42461bd03e726f894679f4b4133034a405672fe8343c3343d0964cf9072\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a0907d84596ed62b9ea222fd841fc0259e87b17dd0b5af3f6d0d8a8f4726994d\",\"dweb:/ipfs/QmTkumKh7DBJNXrark6NBqBxCtnYmbRMGYkRyxxzpW9wKr\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421\",\"dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x378a4a7c20630ca6a036143c8be63d1f6f06b3803562d8ad7e16c5995a859c2d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://58c1cb40dbdeb7523d7f999473c14c4336063e1ef0bf0b6a0f821d62199aaa93\",\"dweb:/ipfs/QmZFkF1yDePMQU96BvRPGWXwN2ESzB43mVN3nYBDX8W7Au\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ExecutableBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"Message","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"Reply","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"repliedTo","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyQueueingRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true}],"type":"event","name":"ValueClaimingRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createDecoder"},{"inputs":[],"stateMutability":"view","type":"function","name":"decoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceBurned"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"executableBalanceTopUp"},{"inputs":[{"internalType":"address","name":"source","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"uint128","name":"executableBalance","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"initMessage"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"messageSent"},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"bytes32","name":"replyTo","type":"bytes32"},{"internalType":"bytes4","name":"replyCode","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"replySent"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"newStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateState"},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"valueClaimed"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6","urls":["bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64","dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x82d8c114d8e994851d5fb8b21ce02fb48907eec690df5f3af4111451a3390f89","urls":["bzz-raw://3c08f1764a6263ea9bc4a8c4afe14cdc2f9486157ceafc9fa6f0a5ca6c58ba37","dweb:/ipfs/QmWNZJmyp6M7JrdLE1cNKC8sGdZ3YdeHvujgyVqnQp7ubC"],"license":"UNLICENSED"},"src/IMirrorDecoder.sol":{"keccak256":"0x95bfe42461bd03e726f894679f4b4133034a405672fe8343c3343d0964cf9072","urls":["bzz-raw://a0907d84596ed62b9ea222fd841fc0259e87b17dd0b5af3f6d0d8a8f4726994d","dweb:/ipfs/QmTkumKh7DBJNXrark6NBqBxCtnYmbRMGYkRyxxzpW9wKr"],"license":"UNLICENSED"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a","urls":["bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421","dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Mirror.sol":{"keccak256":"0x378a4a7c20630ca6a036143c8be63d1f6f06b3803562d8ad7e16c5995a859c2d","urls":["bzz-raw://58c1cb40dbdeb7523d7f999473c14c4336063e1ef0bf0b6a0f821d62199aaa93","dweb:/ipfs/QmZFkF1yDePMQU96BvRPGWXwN2ESzB43mVN3nYBDX8W7Au"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[{"astId":54042,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":54044,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":54046,"contract":"src/Mirror.sol:Mirror","label":"decoder","offset":0,"slot":"2","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":54525,"exportedSymbols":{"Clones":[41121],"IMirror":[53648],"IMirrorDecoder":[53683],"IMirrorProxy":[53691],"IRouter":[54013],"IWrappedVara":[54024],"Mirror":[54524]},"nodeType":"SourceUnit","src":"39:5731:80","nodes":[{"id":54026,"nodeType":"PragmaDirective","src":"39:24:80","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":54028,"nodeType":"ImportDirective","src":"65:48:80","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":53692,"symbolAliases":[{"foreign":{"id":54027,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53691,"src":"73:12:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54030,"nodeType":"ImportDirective","src":"114:38:80","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":53649,"symbolAliases":[{"foreign":{"id":54029,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"122:7:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54032,"nodeType":"ImportDirective","src":"153:38:80","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":54014,"symbolAliases":[{"foreign":{"id":54031,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"161:7:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54034,"nodeType":"ImportDirective","src":"192:48:80","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":54025,"symbolAliases":[{"foreign":{"id":54033,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54024,"src":"200:12:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54036,"nodeType":"ImportDirective","src":"241:52:80","nodes":[],"absolutePath":"src/IMirrorDecoder.sol","file":"./IMirrorDecoder.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":53684,"symbolAliases":[{"foreign":{"id":54035,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53683,"src":"249:14:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54038,"nodeType":"ImportDirective","src":"294:64:80","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":54525,"sourceUnit":41122,"symbolAliases":[{"foreign":{"id":54037,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"302:6:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54524,"nodeType":"ContractDefinition","src":"403:5366:80","nodes":[{"id":54042,"nodeType":"VariableDeclaration","src":"436:24:80","nodes":[],"baseFunctions":[53543],"constant":false,"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"451:9:80","scope":54524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":54044,"nodeType":"VariableDeclaration","src":"538:20:80","nodes":[],"baseFunctions":[53548],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"553:5:80","scope":54524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54043,"name":"uint256","nodeType":"ElementaryTypeName","src":"538:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":54046,"nodeType":"VariableDeclaration","src":"574:22:80","nodes":[],"baseFunctions":[53558],"constant":false,"functionSelector":"9cb33005","mutability":"mutable","name":"decoder","nameLocation":"589:7:80","scope":54524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54045,"name":"address","nodeType":"ElementaryTypeName","src":"574:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":54061,"nodeType":"FunctionDefinition","src":"636:108:80","nodes":[],"body":{"id":54060,"nodeType":"Block","src":"684:60:80","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":54054,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"722:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}],"id":54053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"714:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54052,"name":"address","nodeType":"ElementaryTypeName","src":"714:7:80","typeDescriptions":{}}},"id":54055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"714:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54051,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53691,"src":"701:12:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorProxy_$53691_$","typeString":"type(contract IMirrorProxy)"}},"id":54056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorProxy_$53691","typeString":"contract IMirrorProxy"}},"id":54057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"729:6:80","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":53690,"src":"701:34:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":54058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54050,"id":54059,"nodeType":"Return","src":"694:43:80"}]},"baseFunctions":[53553],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"645:6:80","parameters":{"id":54047,"nodeType":"ParameterList","parameters":[],"src":"651:2:80"},"returnParameters":{"id":54050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54061,"src":"675:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54048,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"674:9:80"},"scope":54524,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54110,"nodeType":"FunctionDefinition","src":"863:377:80","nodes":[],"body":{"id":54109,"nodeType":"Block","src":"960:280:80","nodes":[],"statements":[{"assignments":[54071],"declarations":[{"constant":false,"id":54071,"mutability":"mutable","name":"baseFee","nameLocation":"978:7:80","nodeType":"VariableDeclaration","scope":54109,"src":"970:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54070,"name":"uint128","nodeType":"ElementaryTypeName","src":"970:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":54078,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54073,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"996:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"996:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54072,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"988:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$54013_$","typeString":"type(contract IRouter)"}},"id":54075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:17:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$54013","typeString":"contract IRouter"}},"id":54076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1006:7:80","memberName":"baseFee","nodeType":"MemberAccess","referencedDeclaration":53957,"src":"988:25:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint128_$","typeString":"function () view external returns (uint128)"}},"id":54077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"970:45:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":54082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54080,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54071,"src":"1048:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54081,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54065,"src":"1058:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1048:16:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54079,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"1025:22:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":54083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1025:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54084,"nodeType":"ExpressionStatement","src":"1025:40:80"},{"assignments":[54086],"declarations":[{"constant":false,"id":54086,"mutability":"mutable","name":"id","nameLocation":"1084:2:80","nodeType":"VariableDeclaration","scope":54109,"src":"1076:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1076:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":54098,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54092,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1124:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}],"id":54091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1116:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54090,"name":"address","nodeType":"ElementaryTypeName","src":"1116:7:80","typeDescriptions":{}}},"id":54093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1131:7:80","subExpression":{"id":54094,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54044,"src":"1131:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54088,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1099:3:80","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1103:12:80","memberName":"encodePacked","nodeType":"MemberAccess","src":"1099:16:80","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1099:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54087,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1089:9:80","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1089:51:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1076:64:80"},{"eventCall":{"arguments":[{"id":54100,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54086,"src":"1181:2:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":54101,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"1185:2:80","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1188:6:80","memberName":"origin","nodeType":"MemberAccess","src":"1185:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54103,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54063,"src":"1196:8:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54104,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54065,"src":"1206:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54099,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53486,"src":"1156:24:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1156:57:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54106,"nodeType":"EmitStatement","src":"1151:62:80"},{"expression":{"id":54107,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54086,"src":"1231:2:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54069,"id":54108,"nodeType":"Return","src":"1224:9:80"}]},"baseFunctions":[53567],"functionSelector":"d5624222","implemented":true,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"872:11:80","parameters":{"id":54066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54063,"mutability":"mutable","name":"_payload","nameLocation":"899:8:80","nodeType":"VariableDeclaration","scope":54110,"src":"884:23:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54062,"name":"bytes","nodeType":"ElementaryTypeName","src":"884:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":54065,"mutability":"mutable","name":"_value","nameLocation":"917:6:80","nodeType":"VariableDeclaration","scope":54110,"src":"909:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54064,"name":"uint128","nodeType":"ElementaryTypeName","src":"909:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"883:41:80"},"returnParameters":{"id":54069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54068,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54110,"src":"951:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"951:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"950:9:80"},"scope":54524,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54143,"nodeType":"FunctionDefinition","src":"1246:288:80","nodes":[],"body":{"id":54142,"nodeType":"Block","src":"1343:191:80","nodes":[],"statements":[{"assignments":[54120],"declarations":[{"constant":false,"id":54120,"mutability":"mutable","name":"baseFee","nameLocation":"1361:7:80","nodeType":"VariableDeclaration","scope":54142,"src":"1353:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54119,"name":"uint128","nodeType":"ElementaryTypeName","src":"1353:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":54127,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54122,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"1379:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54121,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"1371:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$54013_$","typeString":"type(contract IRouter)"}},"id":54124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1371:17:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$54013","typeString":"contract IRouter"}},"id":54125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1389:7:80","memberName":"baseFee","nodeType":"MemberAccess","referencedDeclaration":53957,"src":"1371:25:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint128_$","typeString":"function () view external returns (uint128)"}},"id":54126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1371:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"1353:45:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":54131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54129,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54120,"src":"1431:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54130,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54116,"src":"1441:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"1431:16:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54128,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"1408:22:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1408:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54133,"nodeType":"ExpressionStatement","src":"1408:40:80"},{"eventCall":{"arguments":[{"id":54135,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54112,"src":"1487:10:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":54136,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"1499:2:80","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1502:6:80","memberName":"origin","nodeType":"MemberAccess","src":"1499:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54138,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54114,"src":"1510:8:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54139,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54116,"src":"1520:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54134,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53497,"src":"1464:22:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":54140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1464:63:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54141,"nodeType":"EmitStatement","src":"1459:68:80"}]},"baseFunctions":[53576],"functionSelector":"29336f39","implemented":true,"kind":"function","modifiers":[],"name":"sendReply","nameLocation":"1255:9:80","parameters":{"id":54117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54112,"mutability":"mutable","name":"_repliedTo","nameLocation":"1273:10:80","nodeType":"VariableDeclaration","scope":54143,"src":"1265:18:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1265:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54114,"mutability":"mutable","name":"_payload","nameLocation":"1300:8:80","nodeType":"VariableDeclaration","scope":54143,"src":"1285:23:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54113,"name":"bytes","nodeType":"ElementaryTypeName","src":"1285:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":54116,"mutability":"mutable","name":"_value","nameLocation":"1318:6:80","nodeType":"VariableDeclaration","scope":54143,"src":"1310:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54115,"name":"uint128","nodeType":"ElementaryTypeName","src":"1310:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1264:61:80"},"returnParameters":{"id":54118,"nodeType":"ParameterList","parameters":[],"src":"1343:0:80"},"scope":54524,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54155,"nodeType":"FunctionDefinition","src":"1540:184:80","nodes":[],"body":{"id":54154,"nodeType":"Block","src":"1589:135:80","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":54149,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54145,"src":"1695:10:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":54150,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"1707:2:80","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1710:6:80","memberName":"origin","nodeType":"MemberAccess","src":"1707:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54148,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53504,"src":"1672:22:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1672:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54153,"nodeType":"EmitStatement","src":"1667:50:80"}]},"baseFunctions":[53581],"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[],"name":"claimValue","nameLocation":"1549:10:80","parameters":{"id":54146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54145,"mutability":"mutable","name":"_claimedId","nameLocation":"1568:10:80","nodeType":"VariableDeclaration","scope":54155,"src":"1560:18:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1560:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1559:20:80"},"returnParameters":{"id":54147,"nodeType":"ParameterList","parameters":[],"src":"1589:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54169,"nodeType":"FunctionDefinition","src":"1730:167:80","nodes":[],"body":{"id":54168,"nodeType":"Block","src":"1795:102:80","nodes":[],"statements":[{"expression":{"arguments":[{"id":54161,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54157,"src":"1828:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54160,"name":"_retrieveValueToRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"1805:22:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":54162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:30:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54163,"nodeType":"ExpressionStatement","src":"1805:30:80"},{"eventCall":{"arguments":[{"id":54165,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54157,"src":"1883:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54164,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"1851:31:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:39:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54167,"nodeType":"EmitStatement","src":"1846:44:80"}]},"baseFunctions":[53586],"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[],"name":"executableBalanceTopUp","nameLocation":"1739:22:80","parameters":{"id":54158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54157,"mutability":"mutable","name":"_value","nameLocation":"1770:6:80","nodeType":"VariableDeclaration","scope":54169,"src":"1762:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54156,"name":"uint128","nodeType":"ElementaryTypeName","src":"1762:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1761:16:80"},"returnParameters":{"id":54159,"nodeType":"ParameterList","parameters":[],"src":"1795:0:80"},"scope":54524,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54190,"nodeType":"FunctionDefinition","src":"1955:202:80","nodes":[],"body":{"id":54189,"nodeType":"Block","src":"2018:139:80","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":54178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54176,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54042,"src":"2032:9:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":54177,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54171,"src":"2045:12:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2032:25:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54188,"nodeType":"IfStatement","src":"2028:123:80","trueBody":{"id":54187,"nodeType":"Block","src":"2059:92:80","statements":[{"expression":{"id":54181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54179,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54042,"src":"2073:9:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54180,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54171,"src":"2085:12:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2073:24:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54182,"nodeType":"ExpressionStatement","src":"2073:24:80"},{"eventCall":{"arguments":[{"id":54184,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54042,"src":"2130:9:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54183,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53475,"src":"2117:12:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2117:23:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54186,"nodeType":"EmitStatement","src":"2112:28:80"}]}}]},"baseFunctions":[53591],"functionSelector":"8ea59e1d","implemented":true,"kind":"function","modifiers":[{"id":54174,"kind":"modifierInvocation","modifierName":{"id":54173,"name":"onlyRouter","nameLocations":["2007:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"2007:10:80"},"nodeType":"ModifierInvocation","src":"2007:10:80"}],"name":"updateState","nameLocation":"1964:11:80","parameters":{"id":54172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54171,"mutability":"mutable","name":"newStateHash","nameLocation":"1984:12:80","nodeType":"VariableDeclaration","scope":54190,"src":"1976:20:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1976:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1975:22:80"},"returnParameters":{"id":54175,"nodeType":"ParameterList","parameters":[],"src":"2018:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54245,"nodeType":"FunctionDefinition","src":"2163:754:80","nodes":[],"body":{"id":54244,"nodeType":"Block","src":"2276:641:80","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54203,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"2380:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":54206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2399:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2391:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54204,"name":"address","nodeType":"ElementaryTypeName","src":"2391:7:80","typeDescriptions":{}}},"id":54207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2391:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2380:21:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54236,"nodeType":"IfStatement","src":"2376:479:80","trueBody":{"id":54235,"nodeType":"Block","src":"2403:452:80","statements":[{"assignments":[54210],"declarations":[{"constant":false,"id":54210,"mutability":"mutable","name":"callData","nameLocation":"2430:8:80","nodeType":"VariableDeclaration","scope":54235,"src":"2417:21:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54209,"name":"bytes","nodeType":"ElementaryTypeName","src":"2417:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54221,"initialValue":{"arguments":[{"expression":{"expression":{"id":54213,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53683,"src":"2480:14:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$53683_$","typeString":"type(contract IMirrorDecoder)"}},"id":54214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2495:13:80","memberName":"onMessageSent","nodeType":"MemberAccess","referencedDeclaration":53669,"src":"2480:28:80","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes32_$_t_address_$_t_bytes_calldata_ptr_$_t_uint128_$returns$__$","typeString":"function IMirrorDecoder.onMessageSent(bytes32,address,bytes calldata,uint128)"}},"id":54215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2509:8:80","memberName":"selector","nodeType":"MemberAccess","src":"2480:37:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":54216,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54192,"src":"2519:2:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54217,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54194,"src":"2523:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54218,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54196,"src":"2536:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54219,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54198,"src":"2545:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":54211,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2457:3:80","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2461:18:80","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2457:22:80","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":54220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2457:94:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2417:134:80"},{"assignments":[54223,null],"declarations":[{"constant":false,"id":54223,"mutability":"mutable","name":"success","nameLocation":"2665:7:80","nodeType":"VariableDeclaration","scope":54235,"src":"2660:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54222,"name":"bool","nodeType":"ElementaryTypeName","src":"2660:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":54230,"initialValue":{"arguments":[{"id":54228,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54210,"src":"2704:8:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54224,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"2677:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2685:4:80","memberName":"call","nodeType":"MemberAccess","src":"2677:12:80","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":54226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2695:7:80","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"2677:26:80","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2677:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2659:54:80"},{"condition":{"id":54231,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54223,"src":"2732:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54234,"nodeType":"IfStatement","src":"2728:117:80","trueBody":{"id":54233,"nodeType":"Block","src":"2741:104:80","statements":[{"functionReturnParameters":54202,"id":54232,"nodeType":"Return","src":"2824:7:80"}]}}]}},{"eventCall":{"arguments":[{"id":54238,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54192,"src":"2878:2:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54239,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54194,"src":"2882:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54240,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54196,"src":"2895:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54241,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54198,"src":"2904:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54237,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53520,"src":"2870:7:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2870:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54243,"nodeType":"EmitStatement","src":"2865:45:80"}]},"baseFunctions":[53602],"functionSelector":"c2df6009","implemented":true,"kind":"function","modifiers":[{"id":54201,"kind":"modifierInvocation","modifierName":{"id":54200,"name":"onlyRouter","nameLocations":["2265:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"2265:10:80"},"nodeType":"ModifierInvocation","src":"2265:10:80"}],"name":"messageSent","nameLocation":"2172:11:80","parameters":{"id":54199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54192,"mutability":"mutable","name":"id","nameLocation":"2192:2:80","nodeType":"VariableDeclaration","scope":54245,"src":"2184:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2184:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54194,"mutability":"mutable","name":"destination","nameLocation":"2204:11:80","nodeType":"VariableDeclaration","scope":54245,"src":"2196:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54193,"name":"address","nodeType":"ElementaryTypeName","src":"2196:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54196,"mutability":"mutable","name":"payload","nameLocation":"2232:7:80","nodeType":"VariableDeclaration","scope":54245,"src":"2217:22:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54195,"name":"bytes","nodeType":"ElementaryTypeName","src":"2217:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":54198,"mutability":"mutable","name":"value","nameLocation":"2249:5:80","nodeType":"VariableDeclaration","scope":54245,"src":"2241:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54197,"name":"uint128","nodeType":"ElementaryTypeName","src":"2241:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2183:72:80"},"returnParameters":{"id":54202,"nodeType":"ParameterList","parameters":[],"src":"2276:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54308,"nodeType":"FunctionDefinition","src":"2923:775:80","nodes":[],"body":{"id":54307,"nodeType":"Block","src":"3077:621:80","nodes":[],"statements":[{"expression":{"arguments":[{"id":54261,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54247,"src":"3100:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54262,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54251,"src":"3113:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54260,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54523,"src":"3087:12:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":54263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3087:32:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54264,"nodeType":"ExpressionStatement","src":"3087:32:80"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54265,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"3134:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":54268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3153:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3145:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54266,"name":"address","nodeType":"ElementaryTypeName","src":"3145:7:80","typeDescriptions":{}}},"id":54269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3145:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3134:21:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54299,"nodeType":"IfStatement","src":"3130:505:80","trueBody":{"id":54298,"nodeType":"Block","src":"3157:478:80","statements":[{"assignments":[54272],"declarations":[{"constant":false,"id":54272,"mutability":"mutable","name":"callData","nameLocation":"3184:8:80","nodeType":"VariableDeclaration","scope":54298,"src":"3171:21:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54271,"name":"bytes","nodeType":"ElementaryTypeName","src":"3171:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54284,"initialValue":{"arguments":[{"expression":{"expression":{"id":54275,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53683,"src":"3235:14:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$53683_$","typeString":"type(contract IMirrorDecoder)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3250:11:80","memberName":"onReplySent","nodeType":"MemberAccess","referencedDeclaration":53682,"src":"3235:26:80","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function IMirrorDecoder.onReplySent(address,bytes calldata,uint128,bytes32,bytes4)"}},"id":54277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3262:8:80","memberName":"selector","nodeType":"MemberAccess","src":"3235:35:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":54278,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54247,"src":"3272:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54279,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54249,"src":"3285:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54280,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54251,"src":"3294:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":54281,"name":"replyTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54253,"src":"3301:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54282,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54255,"src":"3310:9:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":54273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3195:3:80","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3199:18:80","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3195:22:80","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3195:138:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3171:162:80"},{"assignments":[54286,null],"declarations":[{"constant":false,"id":54286,"mutability":"mutable","name":"success","nameLocation":"3447:7:80","nodeType":"VariableDeclaration","scope":54298,"src":"3442:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54285,"name":"bool","nodeType":"ElementaryTypeName","src":"3442:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":54293,"initialValue":{"arguments":[{"id":54291,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54272,"src":"3486:8:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54287,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"3459:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3467:4:80","memberName":"call","nodeType":"MemberAccess","src":"3459:12:80","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3477:7:80","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"3459:26:80","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3459:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3441:54:80"},{"condition":{"id":54294,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54286,"src":"3514:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54297,"nodeType":"IfStatement","src":"3510:115:80","trueBody":{"id":54296,"nodeType":"Block","src":"3523:102:80","statements":[{"functionReturnParameters":54259,"id":54295,"nodeType":"Return","src":"3604:7:80"}]}}]}},{"eventCall":{"arguments":[{"id":54301,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54249,"src":"3656:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54302,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54251,"src":"3665:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":54303,"name":"replyTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54253,"src":"3672:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54304,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54255,"src":"3681:9:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":54300,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53531,"src":"3650:5:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":54305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3650:41:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54306,"nodeType":"EmitStatement","src":"3645:46:80"}]},"baseFunctions":[53615],"functionSelector":"c78bde77","implemented":true,"kind":"function","modifiers":[{"id":54258,"kind":"modifierInvocation","modifierName":{"id":54257,"name":"onlyRouter","nameLocations":["3062:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"3062:10:80"},"nodeType":"ModifierInvocation","src":"3062:10:80"}],"name":"replySent","nameLocation":"2932:9:80","parameters":{"id":54256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54247,"mutability":"mutable","name":"destination","nameLocation":"2950:11:80","nodeType":"VariableDeclaration","scope":54308,"src":"2942:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54246,"name":"address","nodeType":"ElementaryTypeName","src":"2942:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54249,"mutability":"mutable","name":"payload","nameLocation":"2978:7:80","nodeType":"VariableDeclaration","scope":54308,"src":"2963:22:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54248,"name":"bytes","nodeType":"ElementaryTypeName","src":"2963:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":54251,"mutability":"mutable","name":"value","nameLocation":"2995:5:80","nodeType":"VariableDeclaration","scope":54308,"src":"2987:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54250,"name":"uint128","nodeType":"ElementaryTypeName","src":"2987:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":54253,"mutability":"mutable","name":"replyTo","nameLocation":"3010:7:80","nodeType":"VariableDeclaration","scope":54308,"src":"3002:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54252,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3002:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54255,"mutability":"mutable","name":"replyCode","nameLocation":"3026:9:80","nodeType":"VariableDeclaration","scope":54308,"src":"3019:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":54254,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3019:6:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2941:95:80"},"returnParameters":{"id":54259,"nodeType":"ParameterList","parameters":[],"src":"3077:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54330,"nodeType":"FunctionDefinition","src":"3704:192:80","nodes":[],"body":{"id":54329,"nodeType":"Block","src":"3801:95:80","nodes":[],"statements":[{"expression":{"arguments":[{"id":54320,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54312,"src":"3824:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54314,"src":"3837:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54319,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54523,"src":"3811:12:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:32:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54323,"nodeType":"ExpressionStatement","src":"3811:32:80"},{"eventCall":{"arguments":[{"id":54325,"name":"claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54310,"src":"3872:9:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54326,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54314,"src":"3883:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54324,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53538,"src":"3859:12:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":54327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3859:30:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54328,"nodeType":"EmitStatement","src":"3854:35:80"}]},"baseFunctions":[53624],"functionSelector":"14503e51","implemented":true,"kind":"function","modifiers":[{"id":54317,"kind":"modifierInvocation","modifierName":{"id":54316,"name":"onlyRouter","nameLocations":["3790:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"3790:10:80"},"nodeType":"ModifierInvocation","src":"3790:10:80"}],"name":"valueClaimed","nameLocation":"3713:12:80","parameters":{"id":54315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54310,"mutability":"mutable","name":"claimedId","nameLocation":"3734:9:80","nodeType":"VariableDeclaration","scope":54330,"src":"3726:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3726:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54312,"mutability":"mutable","name":"destination","nameLocation":"3753:11:80","nodeType":"VariableDeclaration","scope":54330,"src":"3745:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54311,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54314,"mutability":"mutable","name":"value","nameLocation":"3774:5:80","nodeType":"VariableDeclaration","scope":54330,"src":"3766:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54313,"name":"uint128","nodeType":"ElementaryTypeName","src":"3766:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3725:55:80"},"returnParameters":{"id":54318,"nodeType":"ParameterList","parameters":[],"src":"3801:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54344,"nodeType":"FunctionDefinition","src":"3902:114:80","nodes":[],"body":{"id":54343,"nodeType":"Block","src":"3970:46:80","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54338,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"3993:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3993:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54340,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54332,"src":"4003:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54337,"name":"_sendValueTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54523,"src":"3980:12:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":54341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3980:29:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54342,"nodeType":"ExpressionStatement","src":"3980:29:80"}]},"baseFunctions":[53629],"functionSelector":"dca4a373","implemented":true,"kind":"function","modifiers":[{"id":54335,"kind":"modifierInvocation","modifierName":{"id":54334,"name":"onlyRouter","nameLocations":["3959:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"3959:10:80"},"nodeType":"ModifierInvocation","src":"3959:10:80"}],"name":"executableBalanceBurned","nameLocation":"3911:23:80","parameters":{"id":54333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54332,"mutability":"mutable","name":"value","nameLocation":"3943:5:80","nodeType":"VariableDeclaration","scope":54344,"src":"3935:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54331,"name":"uint128","nodeType":"ElementaryTypeName","src":"3935:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3934:15:80"},"returnParameters":{"id":54336,"nodeType":"ParameterList","parameters":[],"src":"3970:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54385,"nodeType":"FunctionDefinition","src":"4022:363:80","nodes":[],"body":{"id":54384,"nodeType":"Block","src":"4103:282:80","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54354,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54044,"src":"4121:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":54355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4130:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4121:10:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6465636f64657220636f756c64206f6e6c792062652063726561746564206265666f726520696e6974206d657373616765","id":54357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4133:51:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_6179111dcaf1477c3041b02777f68e6f9b47b46bbab14442425a87a2628d248f","typeString":"literal_string \"decoder could only be created before init message\""},"value":"decoder could only be created before init message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6179111dcaf1477c3041b02777f68e6f9b47b46bbab14442425a87a2628d248f","typeString":"literal_string \"decoder could only be created before init message\""}],"id":54353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4113:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4113:72:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54359,"nodeType":"ExpressionStatement","src":"4113:72:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54361,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"4203:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4222:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4214:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54362,"name":"address","nodeType":"ElementaryTypeName","src":"4214:7:80","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4203:21:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6465636f64657220636f756c64206f6e6c792062652063726561746564206f6e6365","id":54367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4226:36:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_2e378c5f64e230407f2ea4b317edbd32f061bf14b6bede40dc75fef40a2c3f34","typeString":"literal_string \"decoder could only be created once\""},"value":"decoder could only be created once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2e378c5f64e230407f2ea4b317edbd32f061bf14b6bede40dc75fef40a2c3f34","typeString":"literal_string \"decoder could only be created once\""}],"id":54360,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4195:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4195:68:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54369,"nodeType":"ExpressionStatement","src":"4195:68:80"},{"expression":{"id":54376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54370,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"4274:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54373,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54346,"src":"4310:14:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54374,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54348,"src":"4326:4:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":54371,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"4284:6:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$41121_$","typeString":"type(library Clones)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4291:18:80","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":41039,"src":"4284:25:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":54375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4284:47:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4274:57:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54377,"nodeType":"ExpressionStatement","src":"4274:57:80"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":54379,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54046,"src":"4357:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54378,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53683,"src":"4342:14:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$53683_$","typeString":"type(contract IMirrorDecoder)"}},"id":54380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4342:23:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorDecoder_$53683","typeString":"contract IMirrorDecoder"}},"id":54381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:10:80","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":53653,"src":"4342:34:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4342:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54383,"nodeType":"ExpressionStatement","src":"4342:36:80"}]},"baseFunctions":[53636],"functionSelector":"5b1b84f7","implemented":true,"kind":"function","modifiers":[{"id":54351,"kind":"modifierInvocation","modifierName":{"id":54350,"name":"onlyRouter","nameLocations":["4092:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"4092:10:80"},"nodeType":"ModifierInvocation","src":"4092:10:80"}],"name":"createDecoder","nameLocation":"4031:13:80","parameters":{"id":54349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54346,"mutability":"mutable","name":"implementation","nameLocation":"4053:14:80","nodeType":"VariableDeclaration","scope":54385,"src":"4045:22:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54345,"name":"address","nodeType":"ElementaryTypeName","src":"4045:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54348,"mutability":"mutable","name":"salt","nameLocation":"4077:4:80","nodeType":"VariableDeclaration","scope":54385,"src":"4069:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4069:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4044:38:80"},"returnParameters":{"id":54352,"nodeType":"ParameterList","parameters":[],"src":"4103:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54435,"nodeType":"FunctionDefinition","src":"4391:545:80","nodes":[],"body":{"id":54434,"nodeType":"Block","src":"4534:402:80","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54399,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54044,"src":"4552:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":54400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4561:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4552:10:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e6974206d657373616765206d7573742062652063726561746564206265666f726520616e79206f7468657273","id":54402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4564:48:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_f66d837affa62c092147eee2ea617e19f402b656aab0578ab0acad8d1e9a6341","typeString":"literal_string \"init message must be created before any others\""},"value":"init message must be created before any others"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f66d837affa62c092147eee2ea617e19f402b656aab0578ab0acad8d1e9a6341","typeString":"literal_string \"init message must be created before any others\""}],"id":54398,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4544:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4544:69:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54404,"nodeType":"ExpressionStatement","src":"4544:69:80"},{"assignments":[54406],"declarations":[{"constant":false,"id":54406,"mutability":"mutable","name":"initNonce","nameLocation":"4701:9:80","nodeType":"VariableDeclaration","scope":54434,"src":"4693:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54405,"name":"uint256","nodeType":"ElementaryTypeName","src":"4693:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54409,"initialValue":{"id":54408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4713:7:80","subExpression":{"id":54407,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54044,"src":"4713:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4693:27:80"},{"assignments":[54411],"declarations":[{"constant":false,"id":54411,"mutability":"mutable","name":"id","nameLocation":"4738:2:80","nodeType":"VariableDeclaration","scope":54434,"src":"4730:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4730:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":54422,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54417,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4778:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$54524","typeString":"contract Mirror"}],"id":54416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4770:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54415,"name":"address","nodeType":"ElementaryTypeName","src":"4770:7:80","typeDescriptions":{}}},"id":54418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4770:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54419,"name":"initNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54406,"src":"4785:9:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4753:3:80","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4757:12:80","memberName":"encodePacked","nodeType":"MemberAccess","src":"4753:16:80","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4753:42:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54412,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4743:9:80","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4743:53:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4730:66:80"},{"eventCall":{"arguments":[{"id":54424,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54393,"src":"4844:17:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54423,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"4812:31:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":54425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4812:50:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54426,"nodeType":"EmitStatement","src":"4807:55:80"},{"eventCall":{"arguments":[{"id":54428,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54411,"src":"4902:2:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54429,"name":"source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54387,"src":"4906:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54430,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54389,"src":"4914:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":54431,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54391,"src":"4923:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":54427,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53486,"src":"4877:24:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":54432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4877:52:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54433,"nodeType":"EmitStatement","src":"4872:57:80"}]},"baseFunctions":[53647],"functionSelector":"de1dd2e0","implemented":true,"kind":"function","modifiers":[{"id":54396,"kind":"modifierInvocation","modifierName":{"id":54395,"name":"onlyRouter","nameLocations":["4519:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":54448,"src":"4519:10:80"},"nodeType":"ModifierInvocation","src":"4519:10:80"}],"name":"initMessage","nameLocation":"4400:11:80","parameters":{"id":54394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54387,"mutability":"mutable","name":"source","nameLocation":"4420:6:80","nodeType":"VariableDeclaration","scope":54435,"src":"4412:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54386,"name":"address","nodeType":"ElementaryTypeName","src":"4412:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54389,"mutability":"mutable","name":"payload","nameLocation":"4443:7:80","nodeType":"VariableDeclaration","scope":54435,"src":"4428:22:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54388,"name":"bytes","nodeType":"ElementaryTypeName","src":"4428:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":54391,"mutability":"mutable","name":"value","nameLocation":"4460:5:80","nodeType":"VariableDeclaration","scope":54435,"src":"4452:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54390,"name":"uint128","nodeType":"ElementaryTypeName","src":"4452:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":54393,"mutability":"mutable","name":"executableBalance","nameLocation":"4475:17:80","nodeType":"VariableDeclaration","scope":54435,"src":"4467:25:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54392,"name":"uint128","nodeType":"ElementaryTypeName","src":"4467:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"4411:82:80"},"returnParameters":{"id":54397,"nodeType":"ParameterList","parameters":[],"src":"4534:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54448,"nodeType":"ModifierDefinition","src":"4942:131:80","nodes":[],"body":{"id":54447,"nodeType":"Block","src":"4964:109:80","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54438,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4982:3:80","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4986:6:80","memberName":"sender","nodeType":"MemberAccess","src":"4982:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":54440,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"4996:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4996:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4982:22:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6f6e6c7920726f7574657220636f6e747261637420697320656c696769626c6520666f72206f7065726174696f6e","id":54443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5006:48:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_64d2230e88596248f8ffc0c335875e1b5d3e7ef288684b79c0f3f409577b1f91","typeString":"literal_string \"only router contract is eligible for operation\""},"value":"only router contract is eligible for operation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_64d2230e88596248f8ffc0c335875e1b5d3e7ef288684b79c0f3f409577b1f91","typeString":"literal_string \"only router contract is eligible for operation\""}],"id":54437,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4974:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4974:81:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54445,"nodeType":"ExpressionStatement","src":"4974:81:80"},{"id":54446,"nodeType":"PlaceholderStatement","src":"5065:1:80"}]},"name":"onlyRouter","nameLocation":"4951:10:80","parameters":{"id":54436,"nodeType":"ParameterList","parameters":[],"src":"4961:2:80"},"virtual":false,"visibility":"internal"},{"id":54485,"nodeType":"FunctionDefinition","src":"5113:332:80","nodes":[],"body":{"id":54484,"nodeType":"Block","src":"5169:276:80","nodes":[],"statements":[{"assignments":[54454],"declarations":[{"constant":false,"id":54454,"mutability":"mutable","name":"routerAddress","nameLocation":"5187:13:80","nodeType":"VariableDeclaration","scope":54484,"src":"5179:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54453,"name":"address","nodeType":"ElementaryTypeName","src":"5179:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":54457,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54455,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"5203:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5203:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5179:32:80"},{"assignments":[54460],"declarations":[{"constant":false,"id":54460,"mutability":"mutable","name":"wrappedVara","nameLocation":"5235:11:80","nodeType":"VariableDeclaration","scope":54484,"src":"5222:24:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"},"typeName":{"id":54459,"nodeType":"UserDefinedTypeName","pathNode":{"id":54458,"name":"IWrappedVara","nameLocations":["5222:12:80"],"nodeType":"IdentifierPath","referencedDeclaration":54024,"src":"5222:12:80"},"referencedDeclaration":54024,"src":"5222:12:80","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":54468,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":54463,"name":"routerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54454,"src":"5270:13:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54462,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"5262:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$54013_$","typeString":"type(contract IRouter)"}},"id":54464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5262:22:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$54013","typeString":"contract IRouter"}},"id":54465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5285:11:80","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53857,"src":"5262:34:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5262:36:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54461,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54024,"src":"5249:12:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$54024_$","typeString":"type(contract IWrappedVara)"}},"id":54467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5249:50:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"5222:77:80"},{"assignments":[54470],"declarations":[{"constant":false,"id":54470,"mutability":"mutable","name":"success","nameLocation":"5315:7:80","nodeType":"VariableDeclaration","scope":54484,"src":"5310:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54469,"name":"bool","nodeType":"ElementaryTypeName","src":"5310:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":54478,"initialValue":{"arguments":[{"expression":{"id":54473,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"5350:2:80","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5353:6:80","memberName":"origin","nodeType":"MemberAccess","src":"5350:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54475,"name":"routerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54454,"src":"5361:13:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54476,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54450,"src":"5376:6:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":54471,"name":"wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54460,"src":"5325:11:80","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5337:12:80","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":41905,"src":"5325:24:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":54477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5325:58:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5310:73:80"},{"expression":{"arguments":[{"id":54480,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54470,"src":"5402:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207265747269657665205756617261","id":54481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5411:26:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""},"value":"failed to retrieve WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""}],"id":54479,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5394:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5394:44:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54483,"nodeType":"ExpressionStatement","src":"5394:44:80"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrieveValueToRouter","nameLocation":"5122:22:80","parameters":{"id":54451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54450,"mutability":"mutable","name":"_value","nameLocation":"5153:6:80","nodeType":"VariableDeclaration","scope":54485,"src":"5145:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54449,"name":"uint128","nodeType":"ElementaryTypeName","src":"5145:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5144:16:80"},"returnParameters":{"id":54452,"nodeType":"ParameterList","parameters":[],"src":"5169:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":54523,"nodeType":"FunctionDefinition","src":"5451:316:80","nodes":[],"body":{"id":54522,"nodeType":"Block","src":"5517:250:80","nodes":[],"statements":[{"assignments":[54494],"declarations":[{"constant":false,"id":54494,"mutability":"mutable","name":"wrappedVara","nameLocation":"5540:11:80","nodeType":"VariableDeclaration","scope":54522,"src":"5527:24:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"},"typeName":{"id":54493,"nodeType":"UserDefinedTypeName","pathNode":{"id":54492,"name":"IWrappedVara","nameLocations":["5527:12:80"],"nodeType":"IdentifierPath","referencedDeclaration":54024,"src":"5527:12:80"},"referencedDeclaration":54024,"src":"5527:12:80","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":54503,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54497,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54061,"src":"5575:6:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5575:8:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54496,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"5567:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$54013_$","typeString":"type(contract IRouter)"}},"id":54499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5567:17:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$54013","typeString":"contract IRouter"}},"id":54500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5585:11:80","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53857,"src":"5567:29:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":54501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5567:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54495,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54024,"src":"5554:12:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$54024_$","typeString":"type(contract IWrappedVara)"}},"id":54502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5554:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"5527:72:80"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":54506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54504,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"5614:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":54505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5623:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5614:10:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54521,"nodeType":"IfStatement","src":"5610:151:80","trueBody":{"id":54520,"nodeType":"Block","src":"5626:135:80","statements":[{"assignments":[54508],"declarations":[{"constant":false,"id":54508,"mutability":"mutable","name":"success","nameLocation":"5645:7:80","nodeType":"VariableDeclaration","scope":54520,"src":"5640:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54507,"name":"bool","nodeType":"ElementaryTypeName","src":"5640:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":54514,"initialValue":{"arguments":[{"id":54511,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"5676:11:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54512,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"5689:5:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":54509,"name":"wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54494,"src":"5655:11:80","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"id":54510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5667:8:80","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":41873,"src":"5655:20:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":54513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5655:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5640:55:80"},{"expression":{"arguments":[{"id":54516,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54508,"src":"5718:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f2073656e64205756617261","id":54517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5727:22:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ec034c4b2ac47d4229390ddbbb751ebe057cb836b00500cd6f2ff2a9adb713a","typeString":"literal_string \"failed to send WVara\""},"value":"failed to send WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8ec034c4b2ac47d4229390ddbbb751ebe057cb836b00500cd6f2ff2a9adb713a","typeString":"literal_string \"failed to send WVara\""}],"id":54515,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5710:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5710:40:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54519,"nodeType":"ExpressionStatement","src":"5710:40:80"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendValueTo","nameLocation":"5460:12:80","parameters":{"id":54490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54487,"mutability":"mutable","name":"destination","nameLocation":"5481:11:80","nodeType":"VariableDeclaration","scope":54523,"src":"5473:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54486,"name":"address","nodeType":"ElementaryTypeName","src":"5473:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54489,"mutability":"mutable","name":"value","nameLocation":"5502:5:80","nodeType":"VariableDeclaration","scope":54523,"src":"5494:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":54488,"name":"uint128","nodeType":"ElementaryTypeName","src":"5494:7:80","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5472:36:80"},"returnParameters":{"id":54491,"nodeType":"ParameterList","parameters":[],"src":"5517:0:80"},"scope":54524,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":54039,"name":"IMirror","nameLocations":["422:7:80"],"nodeType":"IdentifierPath","referencedDeclaration":53648,"src":"422:7:80"},"id":54040,"nodeType":"InheritanceSpecifier","src":"422:7:80"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54524,53648],"name":"Mirror","nameLocation":"412:6:80","scope":54525,"usedErrors":[42267,42273],"usedEvents":[53475,53486,53497,53504,53509,53520,53531,53538]}],"license":"UNLICENSED"},"id":80} \ No newline at end of file diff --git a/ethexe/ethereum/MirrorProxy.json b/ethexe/ethereum/MirrorProxy.json index 4672f1ff3cd..c7a71277a11 100644 --- a/ethexe/ethereum/MirrorProxy.json +++ b/ethexe/ethereum/MirrorProxy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a034606b57601f61021038819003918201601f19168301916001600160401b03831184841017606f57808492602094604052833981010312606b57516001600160a01b0381168103606b5760805260405161018c908161008482396080518181816023015260e10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608060405260043610156100c0575b632226c8b960e11b60809081526020906004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100b5575f9015610139575060203d6020116100ae575b601f19601f820116608001906080821067ffffffffffffffff83111761009a5761009591604052608001610117565b610139565b634e487b7160e01b5f52604160045260245ffd5b503d610066565b6040513d5f823e3d90fd5b5f3560e01c63f887ea400361000e5734610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b5f80fd5b602090607f190112610113576080516001600160a01b03811681036101135790565b5f8091368280378136915af43d5f803e15610152573d5ff35b3d5ffdfea26469706673582212200d2bcdedbe1beaf7811d4f4adf51ebb40fe8b39397206b218e1622ab168fe8b764736f6c634300081a0033","sourceMap":"259:282:81:-:0;;;;;;;;;;;;;-1:-1:-1;;259:282:81;;;;-1:-1:-1;;;;;259:282:81;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:282:81;;;;;;386:16;;259:282;;;;;;;;386:16;259:282;;;;;;;;;;;;-1:-1:-1;259:282:81;;;;;;-1:-1:-1;259:282:81;;;;;-1:-1:-1;259:282:81","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610156100c0575b632226c8b960e11b60809081526020906004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100b5575f9015610139575060203d6020116100ae575b601f19601f820116608001906080821067ffffffffffffffff83111761009a5761009591604052608001610117565b610139565b634e487b7160e01b5f52604160045260245ffd5b503d610066565b6040513d5f823e3d90fd5b5f3560e01c63f887ea400361000e5734610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b5f80fd5b602090607f190112610113576080516001600160a01b03811681036101135790565b5f8091368280378136915af43d5f803e15610152573d5ff35b3d5ffdfea26469706673582212200d2bcdedbe1beaf7811d4f4adf51ebb40fe8b39397206b218e1622ab168fe8b764736f6c634300081a0033","sourceMap":"259:282:81:-:0;;;;;;;;;-1:-1:-1;;;;259:282:81;508:24;;;;;259:282;;516:6;-1:-1:-1;;;;;259:282:81;508:24;;;;;;-1:-1:-1;508:24:81;;2381:17:39;508:24:81;;;;;;;;;259:282;;;;;;;;;;;;;;;;;;508:24;259:282;;;;508:24;;:::i;:::-;2381:17:39;:::i;259:282:81:-;;;;-1:-1:-1;259:282:81;;;;;-1:-1:-1;259:282:81;508:24;;;;;;259:282;;;-1:-1:-1;259:282:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:282:81;;;;309:31;-1:-1:-1;;;;;259:282:81;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:282:81;;;;;;;:::o;949:895:39:-;1019:819;949:895;;1019:819;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"54538":[{"start":35,"length":32},{"start":225,"length":32}]}},"methodIdentifiers":{"router()":"f887ea40"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MirrorProxy.sol\":\"MirrorProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421\",\"dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s\"]},\"src/MirrorProxy.sol\":{\"keccak256\":\"0xbb15dbe1f5a0bb2168af590f1aee9748d3a96b4f7423f3428fe6fd24a9796c30\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d17ae2869b3fbfcc3a03754bedffcd798f70bf53b771f95d1f2f0b8f113662a8\",\"dweb:/ipfs/QmdUwWV5MdYzsxXaq1R2zLAttW5XwEKX6SSTpVo6pRynwq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MirrorProxy.sol":"MirrorProxy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a","urls":["bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421","dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s"],"license":"UNLICENSED"},"src/MirrorProxy.sol":{"keccak256":"0xbb15dbe1f5a0bb2168af590f1aee9748d3a96b4f7423f3428fe6fd24a9796c30","urls":["bzz-raw://d17ae2869b3fbfcc3a03754bedffcd798f70bf53b771f95d1f2f0b8f113662a8","dweb:/ipfs/QmdUwWV5MdYzsxXaq1R2zLAttW5XwEKX6SSTpVo6pRynwq"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/MirrorProxy.sol","id":54563,"exportedSymbols":{"IMirrorProxy":[53691],"IRouter":[54013],"MirrorProxy":[54562],"Proxy":[41489]},"nodeType":"SourceUnit","src":"39:503:81","nodes":[{"id":54526,"nodeType":"PragmaDirective","src":"39:24:81","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":54528,"nodeType":"ImportDirective","src":"65:62:81","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol","file":"@openzeppelin/contracts/proxy/Proxy.sol","nameLocation":"-1:-1:-1","scope":54563,"sourceUnit":41490,"symbolAliases":[{"foreign":{"id":54527,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41489,"src":"73:5:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54530,"nodeType":"ImportDirective","src":"128:48:81","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":54563,"sourceUnit":53692,"symbolAliases":[{"foreign":{"id":54529,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53691,"src":"136:12:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54532,"nodeType":"ImportDirective","src":"177:38:81","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":54563,"sourceUnit":54014,"symbolAliases":[{"foreign":{"id":54531,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"185:7:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54562,"nodeType":"ContractDefinition","src":"259:282:81","nodes":[{"id":54538,"nodeType":"VariableDeclaration","src":"309:31:81","nodes":[],"baseFunctions":[53690],"constant":false,"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"334:6:81","scope":54562,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54537,"name":"address","nodeType":"ElementaryTypeName","src":"309:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":54548,"nodeType":"FunctionDefinition","src":"347:62:81","nodes":[],"body":{"id":54547,"nodeType":"Block","src":"376:33:81","nodes":[],"statements":[{"expression":{"id":54545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54543,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54538,"src":"386:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54544,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"395:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"386:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54546,"nodeType":"ExpressionStatement","src":"386:16:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54540,"mutability":"mutable","name":"_router","nameLocation":"367:7:81","nodeType":"VariableDeclaration","scope":54548,"src":"359:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54539,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"358:17:81"},"returnParameters":{"id":54542,"nodeType":"ParameterList","parameters":[],"src":"376:0:81"},"scope":54562,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54561,"nodeType":"FunctionDefinition","src":"415:124:81","nodes":[],"body":{"id":54560,"nodeType":"Block","src":"491:48:81","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":54555,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54538,"src":"516:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54554,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"508:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$54013_$","typeString":"type(contract IRouter)"}},"id":54556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$54013","typeString":"contract IRouter"}},"id":54557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"524:6:81","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53867,"src":"508:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":54558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54553,"id":54559,"nodeType":"Return","src":"501:31:81"}]},"baseFunctions":[41470],"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"424:15:81","overrides":{"id":54550,"nodeType":"OverrideSpecifier","overrides":[],"src":"464:8:81"},"parameters":{"id":54549,"nodeType":"ParameterList","parameters":[],"src":"439:2:81"},"returnParameters":{"id":54553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54561,"src":"482:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54551,"name":"address","nodeType":"ElementaryTypeName","src":"482:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"481:9:81"},"scope":54562,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":54533,"name":"IMirrorProxy","nameLocations":["283:12:81"],"nodeType":"IdentifierPath","referencedDeclaration":53691,"src":"283:12:81"},"id":54534,"nodeType":"InheritanceSpecifier","src":"283:12:81"},{"baseName":{"id":54535,"name":"Proxy","nameLocations":["297:5:81"],"nodeType":"IdentifierPath","referencedDeclaration":41489,"src":"297:5:81"},"id":54536,"nodeType":"InheritanceSpecifier","src":"297:5:81"}],"canonicalName":"MirrorProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54562,41489,53691],"name":"MirrorProxy","nameLocation":"268:11:81","scope":54563,"usedErrors":[],"usedEvents":[]}],"license":"UNLICENSED"},"id":81} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a034606b57601f61021038819003918201601f19168301916001600160401b03831184841017606f57808492602094604052833981010312606b57516001600160a01b0381168103606b5760805260405161018c908161008482396080518181816023015260e10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608060405260043610156100c0575b632226c8b960e11b60809081526020906004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100b5575f9015610139575060203d6020116100ae575b601f19601f820116608001906080821067ffffffffffffffff83111761009a5761009591604052608001610117565b610139565b634e487b7160e01b5f52604160045260245ffd5b503d610066565b6040513d5f823e3d90fd5b5f3560e01c63f887ea400361000e5734610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b5f80fd5b602090607f190112610113576080516001600160a01b03811681036101135790565b5f8091368280378136915af43d5f803e15610152573d5ff35b3d5ffdfea26469706673582212207395defe08345fda7fa0275e94c4547716017484d822753fbfc88698d6fef96464736f6c634300081a0033","sourceMap":"259:282:81:-:0;;;;;;;;;;;;;-1:-1:-1;;259:282:81;;;;-1:-1:-1;;;;;259:282:81;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:282:81;;;;;;386:16;;259:282;;;;;;;;386:16;259:282;;;;;;;;;;;;-1:-1:-1;259:282:81;;;;;;-1:-1:-1;259:282:81;;;;;-1:-1:-1;259:282:81","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610156100c0575b632226c8b960e11b60809081526020906004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100b5575f9015610139575060203d6020116100ae575b601f19601f820116608001906080821067ffffffffffffffff83111761009a5761009591604052608001610117565b610139565b634e487b7160e01b5f52604160045260245ffd5b503d610066565b6040513d5f823e3d90fd5b5f3560e01c63f887ea400361000e5734610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b5f80fd5b602090607f190112610113576080516001600160a01b03811681036101135790565b5f8091368280378136915af43d5f803e15610152573d5ff35b3d5ffdfea26469706673582212207395defe08345fda7fa0275e94c4547716017484d822753fbfc88698d6fef96464736f6c634300081a0033","sourceMap":"259:282:81:-:0;;;;;;;;;-1:-1:-1;;;;259:282:81;508:24;;;;;259:282;;516:6;-1:-1:-1;;;;;259:282:81;508:24;;;;;;-1:-1:-1;508:24:81;;2381:17:39;508:24:81;;;;;;;;;259:282;;;;;;;;;;;;;;;;;;508:24;259:282;;;;508:24;;:::i;:::-;2381:17:39;:::i;259:282:81:-;;;;-1:-1:-1;259:282:81;;;;;-1:-1:-1;259:282:81;508:24;;;;;;259:282;;;-1:-1:-1;259:282:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:282:81;;;;309:31;-1:-1:-1;;;;;259:282:81;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:282:81;;;;;;;:::o;949:895:39:-;1019:819;949:895;;1019:819;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"54538":[{"start":35,"length":32},{"start":225,"length":32}]}},"methodIdentifiers":{"router()":"f887ea40"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MirrorProxy.sol\":\"MirrorProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421\",\"dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s\"]},\"src/MirrorProxy.sol\":{\"keccak256\":\"0xbb15dbe1f5a0bb2168af590f1aee9748d3a96b4f7423f3428fe6fd24a9796c30\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d17ae2869b3fbfcc3a03754bedffcd798f70bf53b771f95d1f2f0b8f113662a8\",\"dweb:/ipfs/QmdUwWV5MdYzsxXaq1R2zLAttW5XwEKX6SSTpVo6pRynwq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MirrorProxy.sol":"MirrorProxy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a","urls":["bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421","dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s"],"license":"UNLICENSED"},"src/MirrorProxy.sol":{"keccak256":"0xbb15dbe1f5a0bb2168af590f1aee9748d3a96b4f7423f3428fe6fd24a9796c30","urls":["bzz-raw://d17ae2869b3fbfcc3a03754bedffcd798f70bf53b771f95d1f2f0b8f113662a8","dweb:/ipfs/QmdUwWV5MdYzsxXaq1R2zLAttW5XwEKX6SSTpVo6pRynwq"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/MirrorProxy.sol","id":54563,"exportedSymbols":{"IMirrorProxy":[53691],"IRouter":[54013],"MirrorProxy":[54562],"Proxy":[41489]},"nodeType":"SourceUnit","src":"39:503:81","nodes":[{"id":54526,"nodeType":"PragmaDirective","src":"39:24:81","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":54528,"nodeType":"ImportDirective","src":"65:62:81","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol","file":"@openzeppelin/contracts/proxy/Proxy.sol","nameLocation":"-1:-1:-1","scope":54563,"sourceUnit":41490,"symbolAliases":[{"foreign":{"id":54527,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41489,"src":"73:5:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54530,"nodeType":"ImportDirective","src":"128:48:81","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":54563,"sourceUnit":53692,"symbolAliases":[{"foreign":{"id":54529,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53691,"src":"136:12:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54532,"nodeType":"ImportDirective","src":"177:38:81","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":54563,"sourceUnit":54014,"symbolAliases":[{"foreign":{"id":54531,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"185:7:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54562,"nodeType":"ContractDefinition","src":"259:282:81","nodes":[{"id":54538,"nodeType":"VariableDeclaration","src":"309:31:81","nodes":[],"baseFunctions":[53690],"constant":false,"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"334:6:81","scope":54562,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54537,"name":"address","nodeType":"ElementaryTypeName","src":"309:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":54548,"nodeType":"FunctionDefinition","src":"347:62:81","nodes":[],"body":{"id":54547,"nodeType":"Block","src":"376:33:81","nodes":[],"statements":[{"expression":{"id":54545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54543,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54538,"src":"386:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54544,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"395:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"386:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54546,"nodeType":"ExpressionStatement","src":"386:16:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54540,"mutability":"mutable","name":"_router","nameLocation":"367:7:81","nodeType":"VariableDeclaration","scope":54548,"src":"359:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54539,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"358:17:81"},"returnParameters":{"id":54542,"nodeType":"ParameterList","parameters":[],"src":"376:0:81"},"scope":54562,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54561,"nodeType":"FunctionDefinition","src":"415:124:81","nodes":[],"body":{"id":54560,"nodeType":"Block","src":"491:48:81","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":54555,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54538,"src":"516:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54554,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"508:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$54013_$","typeString":"type(contract IRouter)"}},"id":54556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$54013","typeString":"contract IRouter"}},"id":54557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"524:6:81","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53867,"src":"508:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":54558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54553,"id":54559,"nodeType":"Return","src":"501:31:81"}]},"baseFunctions":[41470],"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"424:15:81","overrides":{"id":54550,"nodeType":"OverrideSpecifier","overrides":[],"src":"464:8:81"},"parameters":{"id":54549,"nodeType":"ParameterList","parameters":[],"src":"439:2:81"},"returnParameters":{"id":54553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54561,"src":"482:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54551,"name":"address","nodeType":"ElementaryTypeName","src":"482:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"481:9:81"},"scope":54562,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":54533,"name":"IMirrorProxy","nameLocations":["283:12:81"],"nodeType":"IdentifierPath","referencedDeclaration":53691,"src":"283:12:81"},"id":54534,"nodeType":"InheritanceSpecifier","src":"283:12:81"},{"baseName":{"id":54535,"name":"Proxy","nameLocations":["297:5:81"],"nodeType":"IdentifierPath","referencedDeclaration":41489,"src":"297:5:81"},"id":54536,"nodeType":"InheritanceSpecifier","src":"297:5:81"}],"canonicalName":"MirrorProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54562,41489,53691],"name":"MirrorProxy","nameLocation":"268:11:81","scope":54563,"usedErrors":[],"usedEvents":[]}],"license":"UNLICENSED"},"id":81} \ No newline at end of file diff --git a/ethexe/ethereum/Router.json b/ethexe/ethereum/Router.json index 510ce3deba3..021dfd707a3 100644 --- a/ethexe/ethereum/Router.json +++ b/ethexe/ethereum/Router.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"baseFee","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"baseWeight","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IRouter.CodeState"}],"stateMutability":"view"},{"type":"function","name":"commitBlocks","inputs":[{"name":"blockCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.BlockCommitment[]","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"prevCommitmentHash","type":"bytes32","internalType":"bytes32"},{"name":"predBlockHash","type":"bytes32","internalType":"bytes32"},{"name":"transitions","type":"tuple[]","internalType":"struct IRouter.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueClaims","type":"tuple[]","internalType":"struct IRouter.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct IRouter.OutgoingMessage[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct IRouter.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]}]}]}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitCodes","inputs":[{"name":"codeCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createProgram","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createProgramWithDecoder","inputs":[{"name":"decoderImplementation","type":"address","internalType":"address"},{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStorageSlot","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_mirrorProxy","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_validatorsKeys","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastBlockCommitmentHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"mirror","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorProxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"program","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidation","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"blobTxHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBaseWeight","inputs":[{"name":"_baseWeight","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"_mirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStorageSlot","inputs":[{"name":"namespace","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setValuePerWeight","inputs":[{"name":"_valuePerWeight","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdPercentage","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateValidators","inputs":[{"name":"validatorsAddressArray","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorExists","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"valuePerWeight","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BaseWeightChanged","inputs":[{"name":"baseWeight","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlockCommitted","inputs":[{"name":"blockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"valid","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"CodeValidationRequested","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"blobTxHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProgramCreated","inputs":[{"name":"actorId","type":"address","indexed":false,"internalType":"address"},{"name":"codeId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StorageSlotChanged","inputs":[],"anonymous":false},{"type":"event","name":"ValidatorsSetChanged","inputs":[],"anonymous":false},{"type":"event","name":"ValuePerWeightChanged","inputs":[{"name":"valuePerWeight","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b604051612a5d90816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6101a0806040526004361015610013575f80fd5b5f610180525f3560e01c9081627a32e714611e5b575080630834fecc14611e245780631c149d8a14611cc857806328e24b3d14611c9e5780632dacfb6914611c715780633d43b41814611c1f578063444d917214611be75780635686cad514611b21578063666d124c14611a0b5780636c2eb350146117f55780636ef25c3a146117c7578063715018a61461175557806378ee5dec1461171a5780638028861a146116985780638074b455146115d557806388f50cf01461159a5780638da5cb5b146115635780638febbd59146115165780639067088e146114ce57806396708226146114a257806396a2ddfa14611472578063a6bbbe1c146113c2578063c13911e814611376578063ca1e7819146112f9578063d3fd6364146112c0578063e71731e4146111ae578063e97d3eb314610f5f578063ed612f8c14610f2f578063edc8722514610f0a578063efd81abc14610eda578063f2fde38b14610eb6578063f8453e7c14610ba75763fa97ed6d1461018c575f80fd5b34610580576040366003190112610580576004356001600160401b038111610580576101bc903690600401611f42565b6024356001600160401b038111610580576101db903690600401611f42565b907f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b9257838360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d610180516080526060915b816080511015610b535760805160051b8101359136829003607e19018312156105805760045f805160206129e8833981519152540180546020858501013503610b0f57610285604085850101356127f6565b15610abe5782840180359091556101805161016052606096919590870194915b6102b18686860161277e565b9050610160511015610a36576102c98686860161277e565b9060c052610160511015610595576101605160051b60c051013560a052609e1960c05136030160a0511215610580575f805160206129e88339815191525461031660a05160c05101612839565b6001600160a01b03165f908152600b82016020526040902054156109d95760206001600160801b0391600360018060a01b0391015416604461035d60a05160c05101612839565b61036f604060a05160c051010161284d565b60405163a9059cbb60e01b81526001600160a01b0390921660048301529490941660248501526101805184928391905af18015610587576109ad575b5060a05160c0519297926001600160a01b03916103c89101612839565b166101205261018051606061010081905260a05160c051010197905b6103f48960a05160c05101612861565b90508110156105af5761040d8960a05160c05101612861565b90610140528110156105955761042d602060608302610140510101612839565b6104ce61044460406060850261014051010161284d565b6040519060208201936060860261014051013585526001600160601b03199060601b1660408301526001600160801b03199060801b1660548201526044815261048e606482611e9b565b60206040519384926101005151808461010051018587015e84019083820190610180518252519283915e010161018051815203601f198101835282611e9b565b610100526104e6602060608302610140510101612839565b6104fa60406060840261014051010161284d565b610120513b15610580576040516314503e5160e01b81526101405160608502013560048201526001600160a01b0390921660248301526001600160801b0316604482015261018051610120518290606490829084905af1801561058757610565575b506001016103e4565b6101805161057291611e9b565b61018051610580578a61055c565b6101805180fd5b6040513d61018051823e3d90fd5b634e487b7160e01b61018051526032600452602461018051fd5b509190929496509492946101805160e052606060e052610180515b60a05160c0516105df9101608081019061277e565b90508110156108925760a05160c0516105fd9101608081019061277e565b821015610595578160051b81013560be1982360301811215610580576106d48261062b602084830101612839565b6106c96034605461064285880160408101906125c7565b61065360608a89989498010161284d565b9061066260a08b8a0101612896565b90806040519889958d602088019c01358c526001600160601b03199060601b166040870152868601378301916001600160801b03199060801b168483015260808a8c010135606483015263ffffffff60e01b16608482015203016014810184520182611e9b565b51902060e0516120c8565b60e052818101608001356107ab576106f0602082840101612839565b61070083830160408101906125c7565b929061071060608387010161284d565b93610120513b156105805760405163c2df600960e01b8152959092013560048601526001600160a01b039092166024850152608060448501526001600160801b0391610760916084860191611fd6565b9116606483015281806101805192038161018051610120515af1801561058757610790575b506001905b016105ca565b6101805161079d91611e9b565b610180516105805789610785565b906107ba602083830101612839565b916107cb82820160408101906125c7565b90916107db60608286010161284d565b936107ea60a083830101612896565b93610120513b156105805760405163c78bde7760e01b81526001600160a01b03909716600488015260a060248801526080936001600160801b03916108339160a48a0191611fd6565b95166044870152010135606484015263ffffffff60e01b16608483015281806101805192038161018051610120515af1801561058757610877575b5060019061078a565b6101805161088491611e9b565b61018051610580578961086e565b509190969593949295610120513b1561058057604051638ea59e1d60e01b8152602060a05160c0510101356004820152610180518160248161018051610120515af1801561058757610992575b5061097c906108f360a05160c05101612839565b610905604060a05160c051010161284d565b6101005151602061010051012060e05151602060e0510120906040519260208401946001600160601b03199060601b168552602060a05160c05101013560348501526001600160801b03199060801b166054840152606483015260848201526084815261097360a482611e9b565b519020906120c8565b96600161016051016101605290959491956102a5565b6101805161099f91611e9b565b6101805161058057886108df565b6109cd9060203d81116109d2575b6109c58183611e9b565b8101906127b3565b6103ab565b503d6109bb565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b945092610aab92967fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051848b01358152a1602081519101206040519060406020830193808b013585526020818c010135828501528a010135606083015260808201526080815261097360a082611e9b565b9260016080510160805290929193610233565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b610b65858585602081519101206125f9565b610180517f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d6101805180f35b633ee5aeb560e01b6101805152600461018051fd5b346105805760a036600319011261058057610bc0611e85565b602435906001600160a01b038216820361058057604435916001600160a01b038316830361058057606435926001600160a01b0384168403610580576084356001600160401b038111610580573660238201121561058057610c2c903690602481600401359101611f72565b905f80516020612a088339815191525460ff8160401c1615946001600160401b03821680159081610eae575b6001149081610ea4575b159081610e9b575b50610e865767ffffffffffffffff1982166001175f80516020612a0883398151915255610cad9186610e5a575b50610ca06127cb565b610ca86127cb565b61214e565b6040948551610cbc8782611e9b565b6017815260208101907f726f757465722e73746f726167652e526f7574657256310000000000000000008252610cf06121bf565b5190205f198101908111610e40578651906020820190815260208252610d168883611e9b565b60ff19915190201690815f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc6101805161018051a15f19430192438411610e4057924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60058301556006919091018054680a000000009502f9006001600160c01b0319909116179055610ddf90612486565b610deb575b6101805180f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f80516020612a0883398151915254165f80516020612a08833981519152555160018152a180610de4565b634e487b7160e01b61018051526011600452602461018051fd5b68ffffffffffffffffff191668010000000000000001175f80516020612a088339815191525587610c97565b63f92ee8a960e01b6101805152600461018051fd5b90501588610c6a565b303b159150610c62565b879150610c58565b3461058057602036600319011261058057610de4610ed2611e85565b610ca86121bf565b34610580576101805136600319011261058057602060055f805160206129e8833981519152540154604051908152f35b346105805761018051366003190112610580576020610f27612110565b604051908152f35b34610580576101805136600319011261058057602060085f805160206129e8833981519152540154604051908152f35b34610580576040366003190112610580576004356001600160401b0381116105805736602382011215610580578060040135906001600160401b038211610580573660248360061b83010111610580576024356001600160401b03811161058057610fcf83913690600401611f42565b5f805160206129e883398151915254610180519460098201939192909160605b8688101561119d5761018051508760061b84019761103d604460248b01359a0192611019846120f5565b60405160208101918d8352151560f81b604082015260218152610973604182611e9b565b988061018051528760205260ff60406101805120541660038110156111835760010361112e5761106e6001936120f5565b156110dc577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c9602082859361018051528a82526040610180512061018051506101805150600260ff19825416179055600a8a016110cb8154612102565b9055604051908152a25b0196610fef565b80610180515287602052604061018051208054610180515060ff191690556040519081527f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960206101805192a26110d5565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b61018051526021600452602461018051fd5b610de49350602081519101206125f9565b34610580576020366003190112610580576004356001600160401b038111610580576111de903690600401611f42565b6111e66121bf565b5f805160206129e883398151915254610180516007820191600801905b8154811015611243576101808051839052516020908190208201546001600160a01b03165f9081529084905260409020805460ff19169055600101611203565b50610180518154908255915081611299575b611268611263368587611f72565b612486565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f516101805161018051a16101805180f35b610180515260206101805120908101905b81811015611255576101805181556001016112aa565b3461058057610180513660031901126105805760206001600160401b0360065f805160206129e883398151915254015416604051908152f35b3461058057610180513660031901126105805761132660085f805160206129e88339815191525401612033565b604051809160208201602083528151809152602060408401920190610180515b818110611354575050500390f35b82516001600160a01b0316845285945060209384019390920191600101611346565b346105805760203660031901126105805760095f805160206129e88339815191525401600435610180515260205260ff6040610180512054166040516003821015611183576020918152f35b34610580576020366003190112610580576004356001600160801b03811690818103610580577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d740916020916114156121bf565b5f805160206129e883398151915254600601805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a16101805180f35b346105805761018051366003190112610580576020600c5f805160206129e8833981519152540154604051908152f35b3461058057610180513660031901126105805760205f805160206129e883398151915254604051908152f35b34610580576020366003190112610580576114e7611e85565b600b5f805160206129e883398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b346105805760203660031901126105805761152f611e85565b60075f805160206129e883398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346105805761018051366003190112610580575f805160206129c8833981519152546040516001600160a01b039091168152602090f35b346105805761018051366003190112610580575f805160206129e883398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610580576044356001600160401b03811161058057611600903690600401611f15565b90606435906001600160801b03821682036105805761162482602435600435612212565b6001600160a01b0390911693909290843b156105805761165e60405194859384936306f0ee9760e51b855261018051963260048701611ff6565b038161018051865af180156105875761167d575b602082604051908152f35b6101805161168a91611e9b565b610180516105805781611672565b34610580576020366003190112610580576004356001600160401b0381168091036105805760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c7916116e96121bf565b5f805160206129e883398151915254600601805467ffffffffffffffff191682179055604051908152a16101805180f35b346105805761018051366003190112610580575f805160206129e883398151915254600201546040516001600160a01b039091168152602090f35b346105805761018051366003190112610580576117706121bf565b5f805160206129c883398151915280546001600160a01b0319811690915561018051906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a36101805180f35b3461058057610180513660031901126105805760206117e4612086565b6001600160801b0360405191168152f35b346105805761018051366003190112610580576118106121bf565b5f80516020612a088339815191525460ff8160401c1680156119f7575b610e865768ffffffffffffffffff191668010000000000000002175f80516020612a08833981519152555f805160206129e8833981519152546001810154600282015460038301546001600160a01b039081169391811692169061189390600801612033565b9060409182516118a38482611e9b565b6017815260208101907f726f757465722e73746f726167652e526f75746572563200000000000000000082526118d76121bf565b5190205f198101908111610e405783519060208201908152602082526118fd8583611e9b565b60ff19915190201694855f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc6101805161018051a15f194301438111610e40574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291602091906119c590612486565b60ff60401b195f80516020612a0883398151915254165f80516020612a08833981519152555160028152a16101805180f35b5060026001600160401b038216101561182d565b60a0366003190112611b1d57611a1f611e85565b602435604435916064356001600160401b038111611b1d57611a45903690600401611f15565b909160843591906001600160801b0383168303611b1d57611a67838787612212565b959060018060a01b0316966040519060208201928352604082015260408152611a91606082611e9b565b519020863b15611b1d57604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f81604481838a5af18015611b1257611afd575b50843b156105805761165e60405194859384936306f0ee9760e51b855261018051963260048701611ff6565b5f611b0791611e9b565b5f6101805285611ad1565b6040513d5f823e3d90fd5b5f80fd5b34611b1d576020366003190112611b1d576004356001600160401b038111611b1d5736602382011215611b1d57611b62903690602481600401359101611ed0565b611b6a6121bf565b602081519101205f198101908111611bd357604051906020820190815260208252611b96604083611e9b565b9051902060ff19165f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b634e487b7160e01b5f52601160045260245ffd5b34611b1d575f366003190112611b1d575f805160206129e883398151915254600101546040516001600160a01b039091168152602090f35b34611b1d576020366003190112611b1d57611c38611e85565b611c406121bf565b5f805160206129e88339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34611b1d575f366003190112611b1d57602060045f805160206129e8833981519152540154604051908152f35b34611b1d575f366003190112611b1d5760205f805160206129e88339815191525454604051908152f35b34611b1d576040366003190112611b1d576024356004358115801590611e1a575b15611dd55760095f805160206129e8833981519152540190805f528160205260ff60405f2054166003811015611dc157611d63577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f491515611ce9565b34611b1d575f366003190112611b1d5760206117e46001600160801b0360065f805160206129e883398151915254015460401c1690565b34611b1d575f366003190112611b1d57602090600a5f805160206129e88339815191525401548152f35b600435906001600160a01b0382168203611b1d57565b90601f801991011681019081106001600160401b03821117611ebc57604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611ebc5760405191611ef9601f8201601f191660200184611e9b565b829481845281830111611b1d578281602093845f960137010152565b9181601f84011215611b1d578235916001600160401b038311611b1d5760208381860195010111611b1d57565b9181601f84011215611b1d578235916001600160401b038311611b1d576020808501948460051b010111611b1d57565b9092916001600160401b038411611ebc578360051b916020604051611f9982860182611e9b565b8096815201928101918211611b1d57915b818310611fb657505050565b82356001600160a01b0381168103611b1d57815260209283019201611faa565b908060209392818452848401375f828201840152601f01601f1916010190565b939594906120266001600160801b0393606095859360018060a01b03168852608060208901526080880191611fd6565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b81811061206457505061206292500383611e9b565b565b84546001600160a01b031683526001948501948794506020909301920161204d565b5f805160206129e883398151915254600601546001600160401b038116906001600160801b039060401c811616026001600160801b038116908103611bd35790565b602080612062928195946040519682889351918291018585015e8201908382015203018085520183611e9b565b358015158103611b1d5790565b5f198114611bd35760010190565b5f805160206129e8833981519152546005600882015491015490818102918183041490151715611bd35761270f8101809111611bd357612710900490565b6001600160a01b031680156121ac575f805160206129c883398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f805160206129c8833981519152546001600160a01b031633036121df57565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b038211611bd357565b9291925f805160206129e88339815191525491815f526009830160205260ff60405f2054166003811015611dc15760020361242a5761224f612086565b600a6001600160801b03821602956001600160801b038716968703611bd35761227b87612280936121f2565b6121f2565b60038401546040516323b872dd60e01b81523260048201523060248201526001600160801b03929092166044830152602090829060649082905f906001600160a01b03165af1908115611b12575f9161240b575b50156123c6576e5af43d82803e903d91602b57fd5bf3600284015491604051602081019185835260408201526040815261230f606082611e9b565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b0383169081156123b7577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600c602092825f52600b810184528560405f2055016123aa8154612102565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b612424915060203d6020116109d2576109c58183611e9b565b5f6122d4565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f805160206129e8833981519152549060088201908154612576579091600701905f5b81518110156124e857600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff19166001908117909155016124a9565b5080519291506001600160401b038311611ebc57680100000000000000008311611ebc578154838355808410612550575b50602001905f5260205f205f5b8381106125335750505050565b82516001600160a01b031681830155602090920191600101612526565b825f528360205f2091820191015b81811061256b5750612519565b5f815560010161255e565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001918136038313611b1d57565b905f805160206129e88339815191525490612612612110565b9260405190602082019081526020825261262d604083611e9b565b612669603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611e9b565b5190205f9260070191835b86851015612772576126aa6126a161269b6126948860051b8601866125c7565b3691611ed0565b856128ab565b909291926128e5565b6001600160a01b03165f9081526020859052604090205460ff1615612737576126d290612102565b938585146126e35760010193612674565b505050509091505b106126f257565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b949550505050506126eb565b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001918160051b36038313611b1d57565b90816020910312611b1d57518015158103611b1d5790565b60ff5f80516020612a088339815191525460401c16156127e757565b631afcd79f60e31b5f5260045ffd5b905f194301438111611bd357805b61280f575b505f9150565b804083810361282057506001925050565b15612834578015611bd3575f190180612804565b612809565b356001600160a01b0381168103611b1d5790565b356001600160801b0381168103611b1d5790565b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001916060820236038313611b1d57565b356001600160e01b031981168103611b1d5790565b81519190604183036128db576128d49250602082015190606060408401519301515f1a90612945565b9192909190565b50505f9160029190565b6004811015611dc157806128f7575050565b6001810361290e5763f645eedf60e01b5f5260045ffd5b60028103612929575063fce698f760e01b5f5260045260245ffd5b6003146129335750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116129bc579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611b12575f516001600160a01b038116156129b257905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122025142c4247973ace538229710a16b8d93c116d4a13a1ea339b84583d4e45c29664736f6c634300081a0033","sourceMap":"781:17497:82:-:0;;;;;;;8837:64:25;781:17497:82;;;;;;7896:76:25;;-1:-1:-1;;;;;;;;;;;781:17497:82;;7985:34:25;7981:146;;-1:-1:-1;781:17497:82;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;781:17497:82;-1:-1:-1;;;;;781:17497:82;;;8837:64:25;781:17497:82;;;8087:29:25;;781:17497:82;;8087:29:25;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:25;;-1:-1:-1;7938:23:25;781:17497:82;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6101a0806040526004361015610013575f80fd5b5f610180525f3560e01c9081627a32e714611e5b575080630834fecc14611e245780631c149d8a14611cc857806328e24b3d14611c9e5780632dacfb6914611c715780633d43b41814611c1f578063444d917214611be75780635686cad514611b21578063666d124c14611a0b5780636c2eb350146117f55780636ef25c3a146117c7578063715018a61461175557806378ee5dec1461171a5780638028861a146116985780638074b455146115d557806388f50cf01461159a5780638da5cb5b146115635780638febbd59146115165780639067088e146114ce57806396708226146114a257806396a2ddfa14611472578063a6bbbe1c146113c2578063c13911e814611376578063ca1e7819146112f9578063d3fd6364146112c0578063e71731e4146111ae578063e97d3eb314610f5f578063ed612f8c14610f2f578063edc8722514610f0a578063efd81abc14610eda578063f2fde38b14610eb6578063f8453e7c14610ba75763fa97ed6d1461018c575f80fd5b34610580576040366003190112610580576004356001600160401b038111610580576101bc903690600401611f42565b6024356001600160401b038111610580576101db903690600401611f42565b907f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b9257838360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d610180516080526060915b816080511015610b535760805160051b8101359136829003607e19018312156105805760045f805160206129e8833981519152540180546020858501013503610b0f57610285604085850101356127f6565b15610abe5782840180359091556101805161016052606096919590870194915b6102b18686860161277e565b9050610160511015610a36576102c98686860161277e565b9060c052610160511015610595576101605160051b60c051013560a052609e1960c05136030160a0511215610580575f805160206129e88339815191525461031660a05160c05101612839565b6001600160a01b03165f908152600b82016020526040902054156109d95760206001600160801b0391600360018060a01b0391015416604461035d60a05160c05101612839565b61036f604060a05160c051010161284d565b60405163a9059cbb60e01b81526001600160a01b0390921660048301529490941660248501526101805184928391905af18015610587576109ad575b5060a05160c0519297926001600160a01b03916103c89101612839565b166101205261018051606061010081905260a05160c051010197905b6103f48960a05160c05101612861565b90508110156105af5761040d8960a05160c05101612861565b90610140528110156105955761042d602060608302610140510101612839565b6104ce61044460406060850261014051010161284d565b6040519060208201936060860261014051013585526001600160601b03199060601b1660408301526001600160801b03199060801b1660548201526044815261048e606482611e9b565b60206040519384926101005151808461010051018587015e84019083820190610180518252519283915e010161018051815203601f198101835282611e9b565b610100526104e6602060608302610140510101612839565b6104fa60406060840261014051010161284d565b610120513b15610580576040516314503e5160e01b81526101405160608502013560048201526001600160a01b0390921660248301526001600160801b0316604482015261018051610120518290606490829084905af1801561058757610565575b506001016103e4565b6101805161057291611e9b565b61018051610580578a61055c565b6101805180fd5b6040513d61018051823e3d90fd5b634e487b7160e01b61018051526032600452602461018051fd5b509190929496509492946101805160e052606060e052610180515b60a05160c0516105df9101608081019061277e565b90508110156108925760a05160c0516105fd9101608081019061277e565b821015610595578160051b81013560be1982360301811215610580576106d48261062b602084830101612839565b6106c96034605461064285880160408101906125c7565b61065360608a89989498010161284d565b9061066260a08b8a0101612896565b90806040519889958d602088019c01358c526001600160601b03199060601b166040870152868601378301916001600160801b03199060801b168483015260808a8c010135606483015263ffffffff60e01b16608482015203016014810184520182611e9b565b51902060e0516120c8565b60e052818101608001356107ab576106f0602082840101612839565b61070083830160408101906125c7565b929061071060608387010161284d565b93610120513b156105805760405163c2df600960e01b8152959092013560048601526001600160a01b039092166024850152608060448501526001600160801b0391610760916084860191611fd6565b9116606483015281806101805192038161018051610120515af1801561058757610790575b506001905b016105ca565b6101805161079d91611e9b565b610180516105805789610785565b906107ba602083830101612839565b916107cb82820160408101906125c7565b90916107db60608286010161284d565b936107ea60a083830101612896565b93610120513b156105805760405163c78bde7760e01b81526001600160a01b03909716600488015260a060248801526080936001600160801b03916108339160a48a0191611fd6565b95166044870152010135606484015263ffffffff60e01b16608483015281806101805192038161018051610120515af1801561058757610877575b5060019061078a565b6101805161088491611e9b565b61018051610580578961086e565b509190969593949295610120513b1561058057604051638ea59e1d60e01b8152602060a05160c0510101356004820152610180518160248161018051610120515af1801561058757610992575b5061097c906108f360a05160c05101612839565b610905604060a05160c051010161284d565b6101005151602061010051012060e05151602060e0510120906040519260208401946001600160601b03199060601b168552602060a05160c05101013560348501526001600160801b03199060801b166054840152606483015260848201526084815261097360a482611e9b565b519020906120c8565b96600161016051016101605290959491956102a5565b6101805161099f91611e9b565b6101805161058057886108df565b6109cd9060203d81116109d2575b6109c58183611e9b565b8101906127b3565b6103ab565b503d6109bb565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b945092610aab92967fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051848b01358152a1602081519101206040519060406020830193808b013585526020818c010135828501528a010135606083015260808201526080815261097360a082611e9b565b9260016080510160805290929193610233565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b610b65858585602081519101206125f9565b610180517f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d6101805180f35b633ee5aeb560e01b6101805152600461018051fd5b346105805760a036600319011261058057610bc0611e85565b602435906001600160a01b038216820361058057604435916001600160a01b038316830361058057606435926001600160a01b0384168403610580576084356001600160401b038111610580573660238201121561058057610c2c903690602481600401359101611f72565b905f80516020612a088339815191525460ff8160401c1615946001600160401b03821680159081610eae575b6001149081610ea4575b159081610e9b575b50610e865767ffffffffffffffff1982166001175f80516020612a0883398151915255610cad9186610e5a575b50610ca06127cb565b610ca86127cb565b61214e565b6040948551610cbc8782611e9b565b6017815260208101907f726f757465722e73746f726167652e526f7574657256310000000000000000008252610cf06121bf565b5190205f198101908111610e40578651906020820190815260208252610d168883611e9b565b60ff19915190201690815f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc6101805161018051a15f19430192438411610e4057924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60058301556006919091018054680a000000009502f9006001600160c01b0319909116179055610ddf90612486565b610deb575b6101805180f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f80516020612a0883398151915254165f80516020612a08833981519152555160018152a180610de4565b634e487b7160e01b61018051526011600452602461018051fd5b68ffffffffffffffffff191668010000000000000001175f80516020612a088339815191525587610c97565b63f92ee8a960e01b6101805152600461018051fd5b90501588610c6a565b303b159150610c62565b879150610c58565b3461058057602036600319011261058057610de4610ed2611e85565b610ca86121bf565b34610580576101805136600319011261058057602060055f805160206129e8833981519152540154604051908152f35b346105805761018051366003190112610580576020610f27612110565b604051908152f35b34610580576101805136600319011261058057602060085f805160206129e8833981519152540154604051908152f35b34610580576040366003190112610580576004356001600160401b0381116105805736602382011215610580578060040135906001600160401b038211610580573660248360061b83010111610580576024356001600160401b03811161058057610fcf83913690600401611f42565b5f805160206129e883398151915254610180519460098201939192909160605b8688101561119d5761018051508760061b84019761103d604460248b01359a0192611019846120f5565b60405160208101918d8352151560f81b604082015260218152610973604182611e9b565b988061018051528760205260ff60406101805120541660038110156111835760010361112e5761106e6001936120f5565b156110dc577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c9602082859361018051528a82526040610180512061018051506101805150600260ff19825416179055600a8a016110cb8154612102565b9055604051908152a25b0196610fef565b80610180515287602052604061018051208054610180515060ff191690556040519081527f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960206101805192a26110d5565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b61018051526021600452602461018051fd5b610de49350602081519101206125f9565b34610580576020366003190112610580576004356001600160401b038111610580576111de903690600401611f42565b6111e66121bf565b5f805160206129e883398151915254610180516007820191600801905b8154811015611243576101808051839052516020908190208201546001600160a01b03165f9081529084905260409020805460ff19169055600101611203565b50610180518154908255915081611299575b611268611263368587611f72565b612486565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f516101805161018051a16101805180f35b610180515260206101805120908101905b81811015611255576101805181556001016112aa565b3461058057610180513660031901126105805760206001600160401b0360065f805160206129e883398151915254015416604051908152f35b3461058057610180513660031901126105805761132660085f805160206129e88339815191525401612033565b604051809160208201602083528151809152602060408401920190610180515b818110611354575050500390f35b82516001600160a01b0316845285945060209384019390920191600101611346565b346105805760203660031901126105805760095f805160206129e88339815191525401600435610180515260205260ff6040610180512054166040516003821015611183576020918152f35b34610580576020366003190112610580576004356001600160801b03811690818103610580577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d740916020916114156121bf565b5f805160206129e883398151915254600601805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a16101805180f35b346105805761018051366003190112610580576020600c5f805160206129e8833981519152540154604051908152f35b3461058057610180513660031901126105805760205f805160206129e883398151915254604051908152f35b34610580576020366003190112610580576114e7611e85565b600b5f805160206129e883398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b346105805760203660031901126105805761152f611e85565b60075f805160206129e883398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346105805761018051366003190112610580575f805160206129c8833981519152546040516001600160a01b039091168152602090f35b346105805761018051366003190112610580575f805160206129e883398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610580576044356001600160401b03811161058057611600903690600401611f15565b90606435906001600160801b03821682036105805761162482602435600435612212565b6001600160a01b0390911693909290843b156105805761165e60405194859384936306f0ee9760e51b855261018051963260048701611ff6565b038161018051865af180156105875761167d575b602082604051908152f35b6101805161168a91611e9b565b610180516105805781611672565b34610580576020366003190112610580576004356001600160401b0381168091036105805760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c7916116e96121bf565b5f805160206129e883398151915254600601805467ffffffffffffffff191682179055604051908152a16101805180f35b346105805761018051366003190112610580575f805160206129e883398151915254600201546040516001600160a01b039091168152602090f35b346105805761018051366003190112610580576117706121bf565b5f805160206129c883398151915280546001600160a01b0319811690915561018051906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a36101805180f35b3461058057610180513660031901126105805760206117e4612086565b6001600160801b0360405191168152f35b346105805761018051366003190112610580576118106121bf565b5f80516020612a088339815191525460ff8160401c1680156119f7575b610e865768ffffffffffffffffff191668010000000000000002175f80516020612a08833981519152555f805160206129e8833981519152546001810154600282015460038301546001600160a01b039081169391811692169061189390600801612033565b9060409182516118a38482611e9b565b6017815260208101907f726f757465722e73746f726167652e526f75746572563200000000000000000082526118d76121bf565b5190205f198101908111610e405783519060208201908152602082526118fd8583611e9b565b60ff19915190201694855f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc6101805161018051a15f194301438111610e40574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291602091906119c590612486565b60ff60401b195f80516020612a0883398151915254165f80516020612a08833981519152555160028152a16101805180f35b5060026001600160401b038216101561182d565b60a0366003190112611b1d57611a1f611e85565b602435604435916064356001600160401b038111611b1d57611a45903690600401611f15565b909160843591906001600160801b0383168303611b1d57611a67838787612212565b959060018060a01b0316966040519060208201928352604082015260408152611a91606082611e9b565b519020863b15611b1d57604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f81604481838a5af18015611b1257611afd575b50843b156105805761165e60405194859384936306f0ee9760e51b855261018051963260048701611ff6565b5f611b0791611e9b565b5f6101805285611ad1565b6040513d5f823e3d90fd5b5f80fd5b34611b1d576020366003190112611b1d576004356001600160401b038111611b1d5736602382011215611b1d57611b62903690602481600401359101611ed0565b611b6a6121bf565b602081519101205f198101908111611bd357604051906020820190815260208252611b96604083611e9b565b9051902060ff19165f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b634e487b7160e01b5f52601160045260245ffd5b34611b1d575f366003190112611b1d575f805160206129e883398151915254600101546040516001600160a01b039091168152602090f35b34611b1d576020366003190112611b1d57611c38611e85565b611c406121bf565b5f805160206129e88339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34611b1d575f366003190112611b1d57602060045f805160206129e8833981519152540154604051908152f35b34611b1d575f366003190112611b1d5760205f805160206129e88339815191525454604051908152f35b34611b1d576040366003190112611b1d576024356004358115801590611e1a575b15611dd55760095f805160206129e8833981519152540190805f528160205260ff60405f2054166003811015611dc157611d63577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f491515611ce9565b34611b1d575f366003190112611b1d5760206117e46001600160801b0360065f805160206129e883398151915254015460401c1690565b34611b1d575f366003190112611b1d57602090600a5f805160206129e88339815191525401548152f35b600435906001600160a01b0382168203611b1d57565b90601f801991011681019081106001600160401b03821117611ebc57604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611ebc5760405191611ef9601f8201601f191660200184611e9b565b829481845281830111611b1d578281602093845f960137010152565b9181601f84011215611b1d578235916001600160401b038311611b1d5760208381860195010111611b1d57565b9181601f84011215611b1d578235916001600160401b038311611b1d576020808501948460051b010111611b1d57565b9092916001600160401b038411611ebc578360051b916020604051611f9982860182611e9b565b8096815201928101918211611b1d57915b818310611fb657505050565b82356001600160a01b0381168103611b1d57815260209283019201611faa565b908060209392818452848401375f828201840152601f01601f1916010190565b939594906120266001600160801b0393606095859360018060a01b03168852608060208901526080880191611fd6565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b81811061206457505061206292500383611e9b565b565b84546001600160a01b031683526001948501948794506020909301920161204d565b5f805160206129e883398151915254600601546001600160401b038116906001600160801b039060401c811616026001600160801b038116908103611bd35790565b602080612062928195946040519682889351918291018585015e8201908382015203018085520183611e9b565b358015158103611b1d5790565b5f198114611bd35760010190565b5f805160206129e8833981519152546005600882015491015490818102918183041490151715611bd35761270f8101809111611bd357612710900490565b6001600160a01b031680156121ac575f805160206129c883398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f805160206129c8833981519152546001600160a01b031633036121df57565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b038211611bd357565b9291925f805160206129e88339815191525491815f526009830160205260ff60405f2054166003811015611dc15760020361242a5761224f612086565b600a6001600160801b03821602956001600160801b038716968703611bd35761227b87612280936121f2565b6121f2565b60038401546040516323b872dd60e01b81523260048201523060248201526001600160801b03929092166044830152602090829060649082905f906001600160a01b03165af1908115611b12575f9161240b575b50156123c6576e5af43d82803e903d91602b57fd5bf3600284015491604051602081019185835260408201526040815261230f606082611e9b565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b0383169081156123b7577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600c602092825f52600b810184528560405f2055016123aa8154612102565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b612424915060203d6020116109d2576109c58183611e9b565b5f6122d4565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f805160206129e8833981519152549060088201908154612576579091600701905f5b81518110156124e857600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff19166001908117909155016124a9565b5080519291506001600160401b038311611ebc57680100000000000000008311611ebc578154838355808410612550575b50602001905f5260205f205f5b8381106125335750505050565b82516001600160a01b031681830155602090920191600101612526565b825f528360205f2091820191015b81811061256b5750612519565b5f815560010161255e565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001918136038313611b1d57565b905f805160206129e88339815191525490612612612110565b9260405190602082019081526020825261262d604083611e9b565b612669603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611e9b565b5190205f9260070191835b86851015612772576126aa6126a161269b6126948860051b8601866125c7565b3691611ed0565b856128ab565b909291926128e5565b6001600160a01b03165f9081526020859052604090205460ff1615612737576126d290612102565b938585146126e35760010193612674565b505050509091505b106126f257565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b949550505050506126eb565b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001918160051b36038313611b1d57565b90816020910312611b1d57518015158103611b1d5790565b60ff5f80516020612a088339815191525460401c16156127e757565b631afcd79f60e31b5f5260045ffd5b905f194301438111611bd357805b61280f575b505f9150565b804083810361282057506001925050565b15612834578015611bd3575f190180612804565b612809565b356001600160a01b0381168103611b1d5790565b356001600160801b0381168103611b1d5790565b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001916060820236038313611b1d57565b356001600160e01b031981168103611b1d5790565b81519190604183036128db576128d49250602082015190606060408401519301515f1a90612945565b9192909190565b50505f9160029190565b6004811015611dc157806128f7575050565b6001810361290e5763f645eedf60e01b5f5260045ffd5b60028103612929575063fce698f760e01b5f5260045260245ffd5b6003146129335750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116129bc579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611b12575f516001600160a01b038116156129b257905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122025142c4247973ace538229710a16b8d93c116d4a13a1ea339b84583d4e45c29664736f6c634300081a0033","sourceMap":"781:17497:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;:::i;:::-;7368:53:53;516:66:52;7368:53:53;1292:93:52;;7628:52:53;;1503:4:52;516:66;7628:52:53;781:17497:82;;9664:13;;781:17497;;9713:3;9679:32;;;;;;;781:17497;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;12083:30;781:17497;;;;;;12117:34;781:17497;12083:68;781:17497;;12215:49;781:17497;;;;12234:29;781:17497;12215:49;:::i;:::-;781:17497;;;;;;;;1072:66;;;781:17497;;12559:13;;781:17497;;;;12578:27;;;;781:17497;12614:3;12578:27;781:17497;;;;12578:27;:::i;:::-;12574:38;;;;;;;;12676:27;781:17497;;;;12676:27;:::i;:::-;;;;781:17497;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;13686:23;781:17497;;;;;13686:23;:::i;:::-;-1:-1:-1;;;;;781:17497:82;-1:-1:-1;781:17497:82;;;13670:15;;;781:17497;;;;;;13670:45;781:17497;;;-1:-1:-1;;;;;781:17497:82;13823:18;781:17497;;;;;13823:18;;781:17497;;;13878:23;781:17497;;;;;13878:23;:::i;:::-;13903:30;781:17497;;;;;;13903:30;;:::i;:::-;781:17497;;-1:-1:-1;;;13852:82:82;;-1:-1:-1;;;;;781:17497:82;;;;13852:82;;781:17497;;;;;;;;;;;;;;;;13852:82;;;;;;;;12614:3;-1:-1:-1;781:17497:82;;;;;;;-1:-1:-1;;;;;781:17497:82;13975:23;;781:17497;13975:23;:::i;:::-;781:17497;;;;;;14010:29;;;;781:17497;;;;;14074:27;;781:17497;14110:3;14074:27;781:17497;;;;;;14074:27;:::i;:::-;14070:38;;;;;;;14162:27;781:17497;;;;;;14162:27;:::i;:::-;;;;781:17497;;;;;14313:22;781:17497;;;;;;;14313:22;;:::i;:::-;781:17497;14337:16;781:17497;;;;;;;14337:16;;:::i;:::-;781:17497;;14274:80;781:17497;14274:80;;781:17497;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;14274:80;;;781:17497;14274:80;;:::i;:::-;781:17497;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14274:80;;781:17497;;;;;;:::i;:::-;14207:161;;14430:22;781:17497;;;;;;;14313:22;14430;:::i;:::-;14454:16;781:17497;;;;;;;14337:16;14454;:::i;:::-;14383:88;;;;;;781:17497;;-1:-1:-1;;;14383:88:82;;781:17497;;;;;;;;14383:88;;781:17497;-1:-1:-1;;;;;781:17497:82;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;14383:88;;781:17497;;;;;;;;14383:88;;;;;;;;14110:3;;1503:4:52;781:17497:82;14055:13;;14383:88;781:17497;;14383:88;;;:::i;:::-;781:17497;;;;14383:88;;;781:17497;;;;;14383:88;781:17497;;;;;;;;;;;;;;;;;;;;;;;;14070:38;;;;;;;;;;;781:17497;;14492:27;;781:17497;14492:27;;781:17497;;14587:3;781:17497;;;;14554:24;;781:17497;;14554:24;;;;:::i;:::-;14550:35;;;;;;;781:17497;;;;14649:24;;781:17497;;14554:24;;;14649;:::i;:::-;781:17497;;;;;;;;;;;;;;;;;;;;;;14708:67;781:17497;16578:27;781:17497;;;;16578:27;;:::i;:::-;16508:291;781:17497;;16623:23;781:17497;;;;16623:23;;;;:::i;:::-;16664:21;781:17497;;;;;;;16664:21;;:::i;:::-;781:17497;16752:33;15910:85;781:17497;;;16752:33;;:::i;:::-;781:17497;;;;16508:291;;;;781:17497;16508:291;;781:17497;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;16703:28;781:17497;;;;;;;;;;;;;16508:291;;;;;;;;;;:::i;:::-;781:17497;16485:324;;14708:67;;;:::i;:::-;14691:84;;781:17497;;;;16703:28;781:17497;;;14915:27;781:17497;;;;16578:27;14915;:::i;:::-;14944:23;781:17497;;;;16623:23;;;14944;:::i;:::-;781:17497;;14969:21;781:17497;;;;16664:21;14969;:::i;:::-;14850:158;;;;;;;781:17497;;-1:-1:-1;;;14850:158:82;;781:17497;;;;;;14850:158;;781:17497;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;:::i;:::-;;;;;;;;;;;14850:158;;781:17497;;;14850:158;;;;;;;;;;14790:556;;1503:4:52;14790:556:82;;781:17497;14535:13;;14850:158;781:17497;;14850:158;;;:::i;:::-;781:17497;;;;14850:158;;;14790:556;781:17497;15090:27;781:17497;;;;16578:27;15090;:::i;:::-;781:17497;15139:23;781:17497;;;;16623:23;;;15139;:::i;:::-;781:17497;;15184:21;781:17497;;;;16664:21;15184;:::i;:::-;781:17497;15280:33;15910:85;781:17497;;;16752:33;15280;:::i;:::-;15047:284;;;;;;;781:17497;;-1:-1:-1;;;15047:284:82;;-1:-1:-1;;;;;781:17497:82;;;;15047:284;;781:17497;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;16259:92;781:17497;;;;:::i;:::-;;;;;;;;16703:28;781:17497;;;;;;;;;;;;;;;;;15047:284;;781:17497;;;15047:284;;;;;;;;;;14790:556;;1503:4:52;14790:556:82;;;15047:284;781:17497;;15047:284;;;:::i;:::-;781:17497;;;;15047:284;;;14550:35;;;;;;;;;;15366:53;;;;;;781:17497;;;;;15366:53;;781:17497;;;;;;15390:28;781:17497;;15366:53;;781:17497;;;;;;;;15366:53;;;;;;;;;;14530:826;781:17497;12816:47;781:17497;15471:23;781:17497;;;;;15471:23;:::i;:::-;15550:30;781:17497;;;;;;13903:30;15550;:::i;:::-;15594:27;;781:17497;;15594:27;;781:17497;15594:27;15635:25;;781:17497;;15635:25;;781:17497;15635:25;781:17497;;;16259:92;781:17497;16259:92;;781:17497;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;15390:28;781:17497;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;;16259:92;;;;;;:::i;:::-;781:17497;16249:103;;12816:47;;:::i;:::-;12614:3;1503:4:52;12614:3:82;;781:17497;12614:3;;12559:13;;;;;;;15366:53;781:17497;;15366:53;;;:::i;:::-;781:17497;;;;15366:53;;;13852:82;;;781:17497;13852:82;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;781:17497;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;12574:38;;;;9913:57;12574:38;;12889:41;781:17497;;;;;;;;;12889:41;781:17497;;;;;13112:28;781:17497;;15910:85;781:17497;;15910:85;;781:17497;;;;;;;;;;;12117:34;781:17497;;;;;;;12234:29;781:17497;;;;;;;;;;15910:85;;;;;;:::i;9913:57::-;9713:3;1503:4:52;9713:3:82;;781:17497;9713:3;;9664:13;;;;;;781:17497;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9679:32;10046:10;9679:32;;;781:17497;;;;;10011:33;10046:10;:::i;:::-;781:17497;;516:66:52;7628:52:53;781:17497:82;;;;1292:93:52;1344:30;;;781:17497:82;;1344:30:52;781:17497:82;;;1344:30:52;781:17497:82;;;;;;-1:-1:-1;;781:17497:82;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;;;4301:16:25;781:17497:82;-1:-1:-1;;;;;781:17497:82;;4726:16:25;;:34;;;;781:17497:82;4805:1:25;4790:16;:50;;;;781:17497:82;4855:13:25;:30;;;;781:17497:82;4851:91:25;;;-1:-1:-1;;781:17497:82;;4805:1:25;781:17497:82;-1:-1:-1;;;;;;;;;;;781:17497:82;6961:1:25;;781:17497:82;4979:67:25;;781:17497:82;6893:76:25;;;:::i;:::-;;;:::i;:::-;6961:1;:::i;:::-;781:17497:82;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:24;;:::i;:::-;781:17497:82;2944:27;;-1:-1:-1;;781:17497:82;;;;;;;;;2925:52;781:17497;2925:52;;781:17497;;;;2925:52;;;;;;:::i;:::-;781:17497;;;;2915:63;;:89;1072:66;;-1:-1:-1;;;;;;;;;;;1072:66:82;3084:20;781:17497;;;;3084:20;781:17497;;1644:12;781:17497;1644:12;;781:17497;;;;1634:27;;1072:66;;4805:1:25;1671:13:82;;781:17497;;-1:-1:-1;;;;;;781:17497:82;;;-1:-1:-1;;;;;781:17497:82;;;;;;;1704:18;;;781:17497;;;;;;;;;;;;;;1747:18;;;781:17497;;;;;;;;;;;;;1826:4;1790:33;;;1072:66;1868:17;;;;;781:17497;;;-1:-1:-1;;;;;;781:17497:82;;;;;;1962:15;;;:::i;:::-;5066:101:25;;781:17497:82;;;;;5066:101:25;781:17497:82;5142:14:25;781:17497:82;-1:-1:-1;;;781:17497:82;-1:-1:-1;;;;;;;;;;;781:17497:82;;-1:-1:-1;;;;;;;;;;;781:17497:82;;4805:1:25;781:17497:82;;5142:14:25;5066:101;;;781:17497:82;;;;;;;;;;;;;;4979:67:25;-1:-1:-1;;781:17497:82;;;-1:-1:-1;;;;;;;;;;;781:17497:82;4979:67:25;;;4851:91;6498:23;;;781:17497:82;;4908:23:25;781:17497:82;;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;781:17497:82;;;;;;-1:-1:-1;;781:17497:82;;;;2357:1:24;781:17497:82;;:::i;:::-;2303:62:24;;:::i;781:17497:82:-;;;;;;;-1:-1:-1;;781:17497:82;;;;;4918:33;-1:-1:-1;;;;;;;;;;;781:17497:82;4918:33;781:17497;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;5296:21;-1:-1:-1;;;;;;;;;;;781:17497:82;5296:21;781:17497;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;8928:12;;;;781:17497;;;;;8601:3;8568:31;;;;;;-1:-1:-1;;781:17497:82;;;;;;;8802:55;16985:20;781:17497;;;;16985:20;;;;;;:::i;:::-;781:17497;;;16949:57;;781:17497;;;;;;;;;;;;;16949:57;;;;;;:::i;8802:55::-;781:17497;;;;;;;;;;;;;;;;;;;;;;8928:53;781:17497;;9044:20;781:17497;9044:20;;:::i;:::-;;;;9196:30;781:17497;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;9107:19;781:17497;;;;;;;;9144:26;;;:28;781:17497;;9144:28;:::i;:::-;1072:66;;781:17497;;;;;9196:30;9040:322;781:17497;8553:13;;;9040:322;781:17497;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;;;;;9316:31;781:17497;;;9316:31;;9040:322;;781:17497;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;8568:31;9436:10;8568:31;;781:17497;;;;;9402:32;9436:10;:::i;781:17497::-;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;;;17516:17;;;;17402:21;;;17432:3;781:17497;;17398:32;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;-1:-1:-1;781:17497:82;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;17383:13;;17398:32;-1:-1:-1;781:17497:82;;;;;;;;-1:-1:-1;781:17497:82;;;17378:177;5857:38;781:17497;;;;;:::i;:::-;5857:38;:::i;:::-;5911:22;781:17497;;;;5911:22;781:17497;;;;;-1:-1:-1;;781:17497:82;;-1:-1:-1;;781:17497:82;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;-1:-1:-1;;;;;6110:17:82;-1:-1:-1;;;;;;;;;;;781:17497:82;6110:17;781:17497;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;5640:21;-1:-1:-1;;;;;;;;;;;781:17497:82;5640:21;781:17497;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;4382:12;-1:-1:-1;;;;;;;;;;;781:17497:82;4382:12;781:17497;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;6689:38;2303:62:24;781:17497:82;2303:62:24;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;6634:21;;781:17497;;-1:-1:-1;;781:17497:82;;;;;;;;;;;;;;6689:38;781:17497;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;4535:20;-1:-1:-1;;;;;;;;;;;781:17497:82;4535:20;781:17497;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;:::i;:::-;4703:15;-1:-1:-1;;;;;;;;;;;781:17497:82;4703:15;:24;781:17497;;;;;;-1:-1:-1;781:17497:82;;;;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;:::i;:::-;5473:17;-1:-1:-1;;;;;;;;;;;781:17497:82;5473:17;:28;781:17497;;;;;;-1:-1:-1;781:17497:82;;;;;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;3567:18;;781:17497;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;:::i;:::-;-1:-1:-1;781:17497:82;;;-1:-1:-1;;;;;781:17497:82;;;;;;7561:50;781:17497;;;;;7561:50;:::i;:::-;-1:-1:-1;;;;;781:17497:82;;;;;;;7622:75;;;;;;781:17497;;;;;;;;;;7622:75;;781:17497;;7651:9;;781:17497;7622:75;;;:::i;:::-;;781:17497;;;7622:75;;;;;;;;;781:17497;;;;;;;;;7622:75;781:17497;;7622:75;;;:::i;:::-;781:17497;;;;7622:75;;;781:17497;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;6307:30;2303:62:24;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;6260:17;;781:17497;;-1:-1:-1;;781:17497:82;;;;;;;;;;6307:30;781:17497;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;3716:18;;781:17497;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;;-1:-1:-1;;;;;;781:17497:82;;;;;;;;-1:-1:-1;;;;;781:17497:82;3975:40:24;781:17497:82;;3975:40:24;781:17497:82;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;:::i;:::-;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;;;6431:44:25;;;;781:17497:82;6427:105:25;;-1:-1:-1;;781:17497:82;;;-1:-1:-1;;;;;;;;;;;781:17497:82;-1:-1:-1;;;;;;;;;;;781:17497:82;;2129:16;;781:17497;2046:1;2178:21;;781:17497;2232:21;;;781:17497;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;2298:24;;781:17497;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:24;;:::i;:::-;781:17497:82;2944:27;;-1:-1:-1;;781:17497:82;;;;;;;;;2925:52;781:17497;2925:52;;781:17497;;;;2925:52;;;;;;:::i;:::-;781:17497;;;;2915:63;;:89;1072:66;;-1:-1:-1;;;;;;;;;;;1072:66:82;3084:20;781:17497;;;;3084:20;781:17497;;2469:12;781:17497;2469:12;781:17497;;;;2459:27;1072:66;;6593:4:25;2496:13:82;;781:17497;;-1:-1:-1;;;;;;781:17497:82;;;-1:-1:-1;;;;;781:17497:82;;;;;;;2046:1;2529:18;;781:17497;;;;;;;;;;;;;;2232:21;2572:18;;;781:17497;;;;;;;;;;;;;;;;6656:20:25;;781:17497:82;;-1:-1:-1;2630:15:82;;;:::i;:::-;-1:-1:-1;;;781:17497:82;-1:-1:-1;;;;;;;;;;;781:17497:82;;-1:-1:-1;;;;;;;;;;;781:17497:82;;2046:1;781:17497;;6656:20:25;781:17497:82;;;;6431:44:25;781:17497:82;2046:1;-1:-1:-1;;;;;781:17497:82;;6450:25:25;;6431:44;;781:17497:82;;;-1:-1:-1;;781:17497:82;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;781:17497:82;;;;;;8008:50;;;;;:::i;:::-;781:17497;;;;;;;;;;;8183:30;781:17497;8183:30;;781:17497;;;;;;;;8183:30;;;781:17497;8183:30;;:::i;:::-;781:17497;8173:41;;8121:94;;;;;781:17497;;-1:-1:-1;;;8121:94:82;;-1:-1:-1;;;;;781:17497:82;;;;8121:94;;781:17497;;;;;-1:-1:-1;781:17497:82;;;-1:-1:-1;8121:94:82;;;;;;;;;781:17497;8226:73;;;;;;;781:17497;;;;;;;;;;8226:73;;781:17497;;8253:9;;781:17497;8226:73;;;:::i;8121:94::-;781:17497;8121:94;;;:::i;:::-;781:17497;;;8121:94;;;;781:17497;;;;;;;;;8121:94;781:17497;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;781:17497:82;;;;;2944:27;781:17497;;;;;;;;;;;2925:52;781:17497;2925:52;;781:17497;;;;2925:52;;;781:17497;2925:52;;:::i;:::-;781:17497;;2915:63;;-1:-1:-1;;2915:89:82;-1:-1:-1;;;;;;;;;;;1072:66:82;3084:20;781:17497;;3084:20;781:17497;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;;3860:13;781:17497;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;3999:13;;781:17497;;-1:-1:-1;;;;;;781:17497:82;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;3406:30;781:17497;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;;6983:15;;;;;:35;;781:17497;;;;7119:12;-1:-1:-1;;;;;;;;;;;781:17497:82;7119:12;781:17497;;;;;;;;;;;;;;;;;;;;;7292:43;781:17497;;;;;;;;;;;7247:29;781:17497;;;;;;;;;;;;;;;;;7292:43;781:17497;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;;;;6983:35;7002:11;781:17497;7002:11;:16;;6983:35;;781:17497;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;6471:21:82;-1:-1:-1;;;;;;;;;;;781:17497:82;6471:21;781:17497;;;;6350:149;;781:17497;;;;;;-1:-1:-1;;781:17497:82;;;;;;4211:26;-1:-1:-1;;;;;;;;;;;781:17497:82;4211:26;781:17497;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;:::o;:::-;;;14274:80;;781:17497;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;:::o;:::-;;;;-1:-1:-1;781:17497:82;;;;;-1:-1:-1;781:17497:82;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;14274:80;781:17497;;-1:-1:-1;;781:17497:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;;;;;;;-1:-1:-1;;781:17497:82;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;-1:-1:-1;781:17497:82;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;-1:-1:-1;781:17497:82;;;;;;;;6740:113;-1:-1:-1;;;;;;;;;;;781:17497:82;6110:17;;781:17497;-1:-1:-1;;;;;781:17497:82;;;-1:-1:-1;;;;;781:17497:82;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;6740:113;:::o;781:17497::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;781:17497:82;;;;;;;:::o;4964:204::-;-1:-1:-1;;;;;;;;;;;781:17497:82;4918:33;5296:21;;;781:17497;4918:33;;781:17497;;;;;;;;;;;;;;;;5148:4;781:17497;;;;;;;5156:5;781:17497;;4964:204;:::o;3405:215:24:-;-1:-1:-1;;;;;781:17497:82;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;781:17497:82;;-1:-1:-1;;;;;;781:17497:82;;;;;;;-1:-1:-1;;;;;781:17497:82;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;781:17497:82;;3509:1:24;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;781:17497:82;-1:-1:-1;;;;;781:17497:82;966:10:29;2717:23:24;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:24;966:10:29;2763:40:24;781:17497:82;;-1:-1:-1;2763:40:24;781:17497:82;;-1:-1:-1;;;;;781:17497:82;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;:::o;10106:951::-;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;;;-1:-1:-1;781:17497:82;10312:12;;;781:17497;;;;-1:-1:-1;781:17497:82;;;;;;;;;10336:19;10312:43;781:17497;;10440:9;;:::i;:::-;781:17497;-1:-1:-1;;;;;781:17497:82;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;10536:32;;:41;:32;;:::i;:::-;:41;:::i;:::-;781:17497;17149:18;;781:17497;;;-1:-1:-1;;;17142:73:82;;17182:9;17142:73;;;781:17497;17201:4;781:17497;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;17142:73;;781:17497;;-1:-1:-1;;;;;;;781:17497:82;17142:73;;;;;;;-1:-1:-1;17142:73:82;;;10106:951;781:17497;;;;3743:569:36;10336:19:82;10819:18;;781:17497;;;;;10849:30;;781:17497;;;;;;;;;10849:30;;;781:17497;10849:30;;:::i;:::-;781:17497;10839:41;;3743:569:36;;;;;;;;-1:-1:-1;3743:569:36;;;;;;;;781:17497:82;3743:569:36;;10312:12:82;-1:-1:-1;3743:569:36;781:17497:82;-1:-1:-1;;;;;781:17497:82;;;4325:22:36;;4321:85;;10973:31:82;10892:24;10935:20;781:17497;10892:24;781:17497;-1:-1:-1;781:17497:82;10892:15;;;781:17497;;;;-1:-1:-1;781:17497:82;1072:66;10935:20;:22;781:17497;;10935:22;:::i;:::-;1072:66;;781:17497;;;;;10973:31;11015:35;10106:951;:::o;4321:85:36:-;4370:25;;;-1:-1:-1;4370:25:36;17142:73:82;-1:-1:-1;4370:25:36;781:17497:82;;;-1:-1:-1;;;781:17497:82;;;17142:73;781:17497;;;;;;;;;;;;;17142:73;;781:17497;17142:73;;;;781:17497;17142:73;781:17497;17142:73;;;;;;;:::i;:::-;;;;781:17497;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;17606:442;-1:-1:-1;;;;;;;;;;;781:17497:82;17740:21;;;;781:17497;;;;;17829:13;;17945:17;;;-1:-1:-1;17873:3:82;781:17497;;17844:27;;;;;781:17497;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;-1:-1:-1;781:17497:82;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;;;17829:13;;17844:27;-1:-1:-1;781:17497:82;;;17844:27;-1:-1:-1;;;;;;781:17497:82;;;;;;;;;;;;;;;;;;;17824:167;781:17497;;;;-1:-1:-1;781:17497:82;;-1:-1:-1;781:17497:82;-1:-1:-1;781:17497:82;;;;;;17606:442;;;;:::o;781:17497::-;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;:::o;11063:844::-;;-1:-1:-1;;;;;;;;;;;781:17497:82;11231:21;;;:::i;:::-;781:17497;;;11331:26;;;;781:17497;;;11331:26;;;;781:17497;11331:26;;:::i;:::-;2858:45:56;781:17497:82;;;2858:45:56;;11331:26:82;2858:45:56;;781:17497:82;;;;;;11293:4;781:17497;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;;;2858:45:56;;14274:80:82;;2858:45:56;;;;;;:::i;:::-;781:17497:82;2848:56:56;;-1:-1:-1;;11592:17:82;;;-1:-1:-1;11449:3:82;11426:21;;;;;;3915:8:55;3859:27;781:17497:82;;;;;;;;;:::i;:::-;;;;:::i;:::-;3859:27:55;;:::i;:::-;3915:8;;;;;:::i;:::-;-1:-1:-1;;;;;781:17497:82;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;;;11644:17;;;:::i;:::-;:30;;;;11640:82;;781:17497;;11411:13;;;11640:82;11698:5;;;;;;;11406:416;11840:28;781:17497;;11063:844::o;781:17497::-;;;-1:-1:-1;;;781:17497:82;;11331:26;781:17497;;;;;;;;;;;;;;;;;11588:224;781:17497;;-1:-1:-1;;;781:17497:82;;11331:26;781:17497;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;11426:21;;;;;;;;;;781:17497;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;7084:141:25:-;781:17497:82;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:25;;-1:-1:-1;7191:17:25;13163:338:82;;781:17497;;13260:12;781:17497;13260:12;781:17497;;;;13243:230;13278:5;;;13243:230;-1:-1:-1;781:17497:82;;-1:-1:-1;13163:338:82:o;13285:3::-;13318:12;;13348:11;;;;;-1:-1:-1;13275:1:82;;-1:-1:-1;;13379:11:82:o;13344:119::-;13415:8;13411:52;;781:17497;;;;-1:-1:-1;;781:17497:82;;13248:28;;13411:52;13443:5;;781:17497;;-1:-1:-1;;;;;781:17497:82;;;;;;;:::o;:::-;;-1:-1:-1;;;;;781:17497:82;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;781:17497:82;;;;;;;:::o;2129:766:55:-;781:17497:82;;;2129:766:55;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:55;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;7196:532::-;781:17497:82;;;;;;7282:29:55;;;7327:7;;:::o;7278:444::-;781:17497:82;7378:38:55;;781:17497:82;;7439:23:55;;;7291:20;7439:23;781:17497:82;7291:20:55;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;781:17497:82;;;7291:20:55;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;781:17497:82;;;7291:20:55;7679:32;5140:1530;;;6199:66;6186:79;;6182:164;;781:17497:82;;;;;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;;;;;;6457:24:55;;;;;;;;;-1:-1:-1;6457:24:55;-1:-1:-1;;;;;781:17497:82;;6495:20:55;6491:113;;6614:49;-1:-1:-1;6614:49:55;-1:-1:-1;5140:1530:55;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:55;6457:24;6531:62;-1:-1:-1;6531:62:55;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o","linkReferences":{}},"methodIdentifiers":{"baseFee()":"6ef25c3a","baseWeight()":"d3fd6364","codeState(bytes32)":"c13911e8","commitBlocks((bytes32,bytes32,bytes32,(address,bytes32,uint128,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4))[])[])[],bytes[])":"fa97ed6d","commitCodes((bytes32,bool)[],bytes[])":"e97d3eb3","createProgram(bytes32,bytes32,bytes,uint128)":"8074b455","createProgramWithDecoder(address,bytes32,bytes32,bytes,uint128)":"666d124c","genesisBlockHash()":"28e24b3d","getStorageSlot()":"96708226","initialize(address,address,address,address,address[])":"f8453e7c","lastBlockCommitmentHash()":"2dacfb69","mirror()":"444d9172","mirrorProxy()":"78ee5dec","owner()":"8da5cb5b","programCodeId(address)":"9067088e","programsCount()":"96a2ddfa","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,bytes32)":"1c149d8a","setBaseWeight(uint64)":"8028861a","setMirror(address)":"3d43b418","setStorageSlot(string)":"5686cad5","setValuePerWeight(uint128)":"a6bbbe1c","signingThresholdPercentage()":"efd81abc","transferOwnership(address)":"f2fde38b","updateValidators(address[])":"e71731e4","validatedCodesCount()":"007a32e7","validatorExists(address)":"8febbd59","validators()":"ca1e7819","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","valuePerWeight()":"0834fecc","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"baseWeight\",\"type\":\"uint64\"}],\"name\":\"BaseWeightChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"BlockCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"CodeGotValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ValidatorsSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"ValuePerWeightChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"baseFee\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum IRouter.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"prevCommitmentHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"predBlockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct IRouter.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct IRouter.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"}],\"internalType\":\"struct IRouter.OutgoingMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.BlockCommitment[]\",\"name\":\"blockCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct IRouter.CodeCommitment[]\",\"name\":\"codeCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitCodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"decoderImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgramWithDecoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStorageSlot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirrorProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_validatorsKeys\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBlockCommitmentHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirror\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorProxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"programsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_baseWeight\",\"type\":\"uint64\"}],\"name\":\"setBaseWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"namespace\",\"type\":\"string\"}],\"name\":\"setStorageSlot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"setValuePerWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validatorsAddressArray\",\"type\":\"address[]\"}],\"name\":\"updateValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"validatorExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"valuePerWeight\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"BaseWeightChanged(uint64)\":{\"details\":\"Emitted when the tx's base weight is changed. NOTE: It's event for USERS: it informs about new value of commission for each message sending. NOTE: It's event for NODES: it requires to update commission in programs execution parameters.\"},\"BlockCommitted(bytes32)\":{\"details\":\"Emitted when a new state transitions are applied. NOTE: It's event for USERS: it informs about new block outcome committed.\"},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"Emitted when a code, previously requested to be validated, gets validated. NOTE: It's event for USERS: it informs about validation results of previously requested code.\"},\"CodeValidationRequested(bytes32,bytes32)\":{\"details\":\"Emitted when a new code validation request submitted. NOTE: It's event for NODES: it requires to download and validate code from blob.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"Emitted when a new program created. NOTE: It's event for USERS: it informs about new program creation and it's availability on Ethereum. NOTE: It's event for NODES: it requires to create associated gear program in local storage.\"},\"StorageSlotChanged()\":{\"details\":\"Emitted when the storage slot is changed. NOTE: It's event for USERS: it informs about router being wiped and all programs and codes deletion. NOTE: It's event for NODES: it requires to clean the local storage.\"},\"ValidatorsSetChanged()\":{\"details\":\"Emitted when the validators set is changed. NOTE: It's event for USERS: it informs about validators rotation. NOTE: It's event for NODES: it requires to update authorities that sign outcomes.\"},\"ValuePerWeightChanged(uint128)\":{\"details\":\"Emitted when the value per executable weight is changed. NOTE: It's event for USERS: it informs about new conversion rate between weight and it's WVara price. NOTE: It's event for NODES: it requires to update conversion rate in programs execution parameters.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"programCodeId(address)\":{\"details\":\"Returns bytes32(0) in case of inexistent program.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64\",\"dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58\",\"dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x82d8c114d8e994851d5fb8b21ce02fb48907eec690df5f3af4111451a3390f89\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c08f1764a6263ea9bc4a8c4afe14cdc2f9486157ceafc9fa6f0a5ca6c58ba37\",\"dweb:/ipfs/QmWNZJmyp6M7JrdLE1cNKC8sGdZ3YdeHvujgyVqnQp7ubC\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421\",\"dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Router.sol\":{\"keccak256\":\"0x27ed0744c7feb1e69a78ed56fe5902d5b41f2c3b84ff3ed6ea1e0aab6673eaeb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3a0eb6b4ce45e9adb4136713f2d706d6bdc6472e191ca6f7bcb1d239a112e16c\",\"dweb:/ipfs/QmNh1qhFQESAb5Jzb2Lk41v2x1zoLLdioqxtMm23ouhko5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"baseWeight","type":"uint64","indexed":false}],"type":"event","name":"BaseWeightChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32","indexed":false}],"type":"event","name":"BlockCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"bool","name":"valid","type":"bool","indexed":true}],"type":"event","name":"CodeGotValidated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[],"type":"event","name":"ValidatorsSetChanged","anonymous":false},{"inputs":[{"internalType":"uint128","name":"valuePerWeight","type":"uint128","indexed":false}],"type":"event","name":"ValuePerWeightChanged","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFee","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseWeight","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum IRouter.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct IRouter.BlockCommitment[]","name":"blockCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"bytes32","name":"prevCommitmentHash","type":"bytes32"},{"internalType":"bytes32","name":"predBlockHash","type":"bytes32"},{"internalType":"struct IRouter.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"struct IRouter.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct IRouter.OutgoingMessage[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct IRouter.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]}]}]}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBlocks"},{"inputs":[{"internalType":"struct IRouter.CodeCommitment[]","name":"codeCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitCodes"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"decoderImplementation","type":"address"},{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgramWithDecoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStorageSlot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_mirrorProxy","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address[]","name":"_validatorsKeys","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBlockCommitmentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirror","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorProxy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"program","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[{"internalType":"uint64","name":"_baseWeight","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setBaseWeight"},{"inputs":[{"internalType":"address","name":"_mirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"string","name":"namespace","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setStorageSlot"},{"inputs":[{"internalType":"uint128","name":"_valuePerWeight","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setValuePerWeight"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address[]","name":"validatorsAddressArray","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"updateValidators"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"validatorExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"valuePerWeight","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"programCodeId(address)":{"details":"Returns bytes32(0) in case of inexistent program."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6","urls":["bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64","dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9","urls":["bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58","dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4","urls":["bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097","dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x82d8c114d8e994851d5fb8b21ce02fb48907eec690df5f3af4111451a3390f89","urls":["bzz-raw://3c08f1764a6263ea9bc4a8c4afe14cdc2f9486157ceafc9fa6f0a5ca6c58ba37","dweb:/ipfs/QmWNZJmyp6M7JrdLE1cNKC8sGdZ3YdeHvujgyVqnQp7ubC"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a","urls":["bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421","dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Router.sol":{"keccak256":"0x27ed0744c7feb1e69a78ed56fe5902d5b41f2c3b84ff3ed6ea1e0aab6673eaeb","urls":["bzz-raw://3a0eb6b4ce45e9adb4136713f2d706d6bdc6472e191ca6f7bcb1d239a112e16c","dweb:/ipfs/QmNh1qhFQESAb5Jzb2Lk41v2x1zoLLdioqxtMm23ouhko5"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":56270,"exportedSymbols":{"Clones":[41121],"ECDSA":[43387],"IERC20":[41906],"IMirror":[53648],"IRouter":[54013],"IWrappedVara":[54024],"MessageHashUtils":[43461],"OwnableUpgradeable":[39024],"ReentrancyGuardTransient":[42400],"Router":[56269],"StorageSlot":[42719]},"nodeType":"SourceUnit","src":"39:18240:82","nodes":[{"id":54564,"nodeType":"PragmaDirective","src":"39:24:82","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":54566,"nodeType":"ImportDirective","src":"65:74:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":42720,"symbolAliases":[{"foreign":{"id":54565,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42719,"src":"73:11:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54568,"nodeType":"ImportDirective","src":"140:101:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":39025,"symbolAliases":[{"foreign":{"id":54567,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39024,"src":"148:18:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54570,"nodeType":"ImportDirective","src":"242:64:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":41122,"symbolAliases":[{"foreign":{"id":54569,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"250:6:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54572,"nodeType":"ImportDirective","src":"307:75:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":43388,"symbolAliases":[{"foreign":{"id":54571,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43387,"src":"315:5:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54574,"nodeType":"ImportDirective","src":"383:97:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":43462,"symbolAliases":[{"foreign":{"id":54573,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43461,"src":"391:16:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54576,"nodeType":"ImportDirective","src":"481:100:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":42401,"symbolAliases":[{"foreign":{"id":54575,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42400,"src":"489:24:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54578,"nodeType":"ImportDirective","src":"582:38:82","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":54014,"symbolAliases":[{"foreign":{"id":54577,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"590:7:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54580,"nodeType":"ImportDirective","src":"621:38:82","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":53649,"symbolAliases":[{"foreign":{"id":54579,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"629:7:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54582,"nodeType":"ImportDirective","src":"660:48:82","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":54025,"symbolAliases":[{"foreign":{"id":54581,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54024,"src":"668:12:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54584,"nodeType":"ImportDirective","src":"709:70:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":41907,"symbolAliases":[{"foreign":{"id":54583,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41906,"src":"717:6:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56269,"nodeType":"ContractDefinition","src":"781:17497:82","nodes":[{"id":54593,"nodeType":"UsingForDirective","src":"860:24:82","nodes":[],"global":false,"libraryName":{"id":54591,"name":"ECDSA","nameLocations":["866:5:82"],"nodeType":"IdentifierPath","referencedDeclaration":43387,"src":"866:5:82"},"typeName":{"id":54592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"876:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":54596,"nodeType":"UsingForDirective","src":"889:35:82","nodes":[],"global":false,"libraryName":{"id":54594,"name":"MessageHashUtils","nameLocations":["895:16:82"],"nodeType":"IdentifierPath","referencedDeclaration":43461,"src":"895:16:82"},"typeName":{"id":54595,"name":"address","nodeType":"ElementaryTypeName","src":"916:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":54599,"nodeType":"VariableDeclaration","src":"1032:106:82","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1057:12:82","scope":56269,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1032:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":54598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1072:66:82","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":54607,"nodeType":"FunctionDefinition","src":"1198:53:82","nodes":[],"body":{"id":54606,"nodeType":"Block","src":"1212:39:82","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":54603,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39246,"src":"1222:20:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":54604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1222:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54605,"nodeType":"ExpressionStatement","src":"1222:22:82"}]},"documentation":{"id":54600,"nodeType":"StructuredDocumentation","src":"1145:48:82","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54601,"nodeType":"ParameterList","parameters":[],"src":"1209:2:82"},"returnParameters":{"id":54602,"nodeType":"ParameterList","parameters":[],"src":"1212:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54689,"nodeType":"FunctionDefinition","src":"1257:728:82","nodes":[],"body":{"id":54688,"nodeType":"Block","src":"1459:526:82","nodes":[],"statements":[{"expression":{"arguments":[{"id":54624,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"1484:12:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54623,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38884,"src":"1469:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1469:28:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54626,"nodeType":"ExpressionStatement","src":"1469:28:82"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":54628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1523:25:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""},"value":"router.storage.RouterV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""}],"id":54627,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54830,"src":"1508:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":54629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1508:41:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54630,"nodeType":"ExpressionStatement","src":"1508:41:82"},{"assignments":[54633],"declarations":[{"constant":false,"id":54633,"mutability":"mutable","name":"router","nameLocation":"1575:6:82","nodeType":"VariableDeclaration","scope":54688,"src":"1559:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54632,"nodeType":"UserDefinedTypeName","pathNode":{"id":54631,"name":"Storage","nameLocations":["1559:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"1559:7:82"},"referencedDeclaration":53731,"src":"1559:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54636,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54634,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"1584:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1584:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1559:38:82"},{"expression":{"id":54646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54637,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1608:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1615:16:82","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":53696,"src":"1608:23:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54641,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1644:5:82","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1650:6:82","memberName":"number","nodeType":"MemberAccess","src":"1644:12:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":54643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1659:1:82","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1644:16:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54640,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"1634:9:82","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1634:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1608:53:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54647,"nodeType":"ExpressionStatement","src":"1608:53:82"},{"expression":{"id":54652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54648,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1671:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1678:6:82","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53698,"src":"1671:13:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54651,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"1687:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1671:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54653,"nodeType":"ExpressionStatement","src":"1671:23:82"},{"expression":{"id":54658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54654,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1704:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1711:11:82","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":53700,"src":"1704:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54657,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"1725:12:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1704:33:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54659,"nodeType":"ExpressionStatement","src":"1704:33:82"},{"expression":{"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54660,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1747:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1754:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"1747:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54663,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54615,"src":"1768:12:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1747:33:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54665,"nodeType":"ExpressionStatement","src":"1747:33:82"},{"expression":{"id":54670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54666,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1790:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1797:26:82","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":53706,"src":"1790:33:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"36363636","id":54669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1826:4:82","typeDescriptions":{"typeIdentifier":"t_rational_6666_by_1","typeString":"int_const 6666"},"value":"6666"},"src":"1790:40:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54671,"nodeType":"ExpressionStatement","src":"1790:40:82"},{"expression":{"id":54676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54672,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1868:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1875:10:82","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":53708,"src":"1868:17:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"325f3530305f3030305f303030","id":54675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1888:13:82","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"src":"1868:33:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54677,"nodeType":"ExpressionStatement","src":"1868:33:82"},{"expression":{"id":54682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54678,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1911:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1918:14:82","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":53710,"src":"1911:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130","id":54681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1935:2:82","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1911:26:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":54683,"nodeType":"ExpressionStatement","src":"1911:26:82"},{"expression":{"arguments":[{"id":54685,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54618,"src":"1962:15:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":54684,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56255,"src":"1947:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":54686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1947:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54687,"nodeType":"ExpressionStatement","src":"1947:31:82"}]},"functionSelector":"f8453e7c","implemented":true,"kind":"function","modifiers":[{"id":54621,"kind":"modifierInvocation","modifierName":{"id":54620,"name":"initializer","nameLocations":["1447:11:82"],"nodeType":"IdentifierPath","referencedDeclaration":39132,"src":"1447:11:82"},"nodeType":"ModifierInvocation","src":"1447:11:82"}],"name":"initialize","nameLocation":"1266:10:82","parameters":{"id":54619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54609,"mutability":"mutable","name":"initialOwner","nameLocation":"1294:12:82","nodeType":"VariableDeclaration","scope":54689,"src":"1286:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54608,"name":"address","nodeType":"ElementaryTypeName","src":"1286:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54611,"mutability":"mutable","name":"_mirror","nameLocation":"1324:7:82","nodeType":"VariableDeclaration","scope":54689,"src":"1316:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54610,"name":"address","nodeType":"ElementaryTypeName","src":"1316:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54613,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"1349:12:82","nodeType":"VariableDeclaration","scope":54689,"src":"1341:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54612,"name":"address","nodeType":"ElementaryTypeName","src":"1341:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54615,"mutability":"mutable","name":"_wrappedVara","nameLocation":"1379:12:82","nodeType":"VariableDeclaration","scope":54689,"src":"1371:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54614,"name":"address","nodeType":"ElementaryTypeName","src":"1371:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54618,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"1418:15:82","nodeType":"VariableDeclaration","scope":54689,"src":"1401:32:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54616,"name":"address","nodeType":"ElementaryTypeName","src":"1401:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54617,"nodeType":"ArrayTypeName","src":"1401:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1276:163:82"},"returnParameters":{"id":54622,"nodeType":"ParameterList","parameters":[],"src":"1459:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54770,"nodeType":"FunctionDefinition","src":"1991:662:82","nodes":[],"body":{"id":54769,"nodeType":"Block","src":"2049:604:82","nodes":[],"statements":[{"assignments":[54699],"declarations":[{"constant":false,"id":54699,"mutability":"mutable","name":"oldRouter","nameLocation":"2075:9:82","nodeType":"VariableDeclaration","scope":54769,"src":"2059:25:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54698,"nodeType":"UserDefinedTypeName","pathNode":{"id":54697,"name":"Storage","nameLocations":["2059:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"2059:7:82"},"referencedDeclaration":53731,"src":"2059:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54702,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54700,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"2087:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2087:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2059:41:82"},{"assignments":[54704],"declarations":[{"constant":false,"id":54704,"mutability":"mutable","name":"_mirror","nameLocation":"2119:7:82","nodeType":"VariableDeclaration","scope":54769,"src":"2111:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54703,"name":"address","nodeType":"ElementaryTypeName","src":"2111:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":54707,"initialValue":{"expression":{"id":54705,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"2129:9:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2139:6:82","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53698,"src":"2129:16:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2111:34:82"},{"assignments":[54709],"declarations":[{"constant":false,"id":54709,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"2163:12:82","nodeType":"VariableDeclaration","scope":54769,"src":"2155:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54708,"name":"address","nodeType":"ElementaryTypeName","src":"2155:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":54712,"initialValue":{"expression":{"id":54710,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"2178:9:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2188:11:82","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":53700,"src":"2178:21:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2155:44:82"},{"assignments":[54714],"declarations":[{"constant":false,"id":54714,"mutability":"mutable","name":"_wrappedVara","nameLocation":"2217:12:82","nodeType":"VariableDeclaration","scope":54769,"src":"2209:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54713,"name":"address","nodeType":"ElementaryTypeName","src":"2209:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":54717,"initialValue":{"expression":{"id":54715,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"2232:9:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2242:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"2232:21:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2209:44:82"},{"assignments":[54722],"declarations":[{"constant":false,"id":54722,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"2280:15:82","nodeType":"VariableDeclaration","scope":54769,"src":"2263:32:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54720,"name":"address","nodeType":"ElementaryTypeName","src":"2263:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54721,"nodeType":"ArrayTypeName","src":"2263:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54725,"initialValue":{"expression":{"id":54723,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"2298:9:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2308:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"2298:24:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2263:59:82"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":54727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2348:25:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""},"value":"router.storage.RouterV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""}],"id":54726,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54830,"src":"2333:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":54728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2333:41:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54729,"nodeType":"ExpressionStatement","src":"2333:41:82"},{"assignments":[54732],"declarations":[{"constant":false,"id":54732,"mutability":"mutable","name":"router","nameLocation":"2400:6:82","nodeType":"VariableDeclaration","scope":54769,"src":"2384:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54731,"nodeType":"UserDefinedTypeName","pathNode":{"id":54730,"name":"Storage","nameLocations":["2384:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"2384:7:82"},"referencedDeclaration":53731,"src":"2384:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54733,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"2409:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2409:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2384:38:82"},{"expression":{"id":54745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54736,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54732,"src":"2433:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2440:16:82","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":53696,"src":"2433:23:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54740,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2469:5:82","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2475:6:82","memberName":"number","nodeType":"MemberAccess","src":"2469:12:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":54742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2484:1:82","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2469:16:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54739,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"2459:9:82","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":54744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2459:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2433:53:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54746,"nodeType":"ExpressionStatement","src":"2433:53:82"},{"expression":{"id":54751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54747,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54732,"src":"2496:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2503:6:82","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53698,"src":"2496:13:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54750,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54704,"src":"2512:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2496:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54752,"nodeType":"ExpressionStatement","src":"2496:23:82"},{"expression":{"id":54757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54753,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54732,"src":"2529:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2536:11:82","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":53700,"src":"2529:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54756,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54709,"src":"2550:12:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2529:33:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54758,"nodeType":"ExpressionStatement","src":"2529:33:82"},{"expression":{"id":54763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54759,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54732,"src":"2572:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2579:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"2572:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54762,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54714,"src":"2593:12:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2572:33:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54764,"nodeType":"ExpressionStatement","src":"2572:33:82"},{"expression":{"arguments":[{"id":54766,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54722,"src":"2630:15:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":54765,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56255,"src":"2615:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":54767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2615:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54768,"nodeType":"ExpressionStatement","src":"2615:31:82"}]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":54692,"kind":"modifierInvocation","modifierName":{"id":54691,"name":"onlyOwner","nameLocations":["2022:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"2022:9:82"},"nodeType":"ModifierInvocation","src":"2022:9:82"},{"arguments":[{"hexValue":"32","id":54694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:1:82","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":54695,"kind":"modifierInvocation","modifierName":{"id":54693,"name":"reinitializer","nameLocations":["2032:13:82"],"nodeType":"IdentifierPath","referencedDeclaration":39179,"src":"2032:13:82"},"nodeType":"ModifierInvocation","src":"2032:16:82"}],"name":"reinitialize","nameLocation":"2000:12:82","parameters":{"id":54690,"nodeType":"ParameterList","parameters":[],"src":"2012:2:82"},"returnParameters":{"id":54696,"nodeType":"ParameterList","parameters":[],"src":"2049:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54782,"nodeType":"FunctionDefinition","src":"2692:126:82","nodes":[],"body":{"id":54781,"nodeType":"Block","src":"2748:70:82","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":54777,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"2792:12:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":54775,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42719,"src":"2765:11:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$42719_$","typeString":"type(library StorageSlot)"}},"id":54776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2777:14:82","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":42457,"src":"2765:26:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$42412_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":54778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:40:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$42412_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":54779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2806:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":42411,"src":"2765:46:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54774,"id":54780,"nodeType":"Return","src":"2758:53:82"}]},"baseFunctions":[53837],"functionSelector":"96708226","implemented":true,"kind":"function","modifiers":[],"name":"getStorageSlot","nameLocation":"2701:14:82","parameters":{"id":54771,"nodeType":"ParameterList","parameters":[],"src":"2715:2:82"},"returnParameters":{"id":54774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54782,"src":"2739:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2739:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2738:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54830,"nodeType":"FunctionDefinition","src":"2824:287:82","nodes":[],"body":{"id":54829,"nodeType":"Block","src":"2890:221:82","nodes":[],"statements":[{"assignments":[54790],"declarations":[{"constant":false,"id":54790,"mutability":"mutable","name":"slot","nameLocation":"2908:4:82","nodeType":"VariableDeclaration","scope":54829,"src":"2900:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2900:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":54816,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":54815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":54799,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54784,"src":"2960:9:82","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":54798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2954:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":54797,"name":"bytes","nodeType":"ElementaryTypeName","src":"2954:5:82","typeDescriptions":{}}},"id":54800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2954:16:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54796,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2944:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2944:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2936:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":54794,"name":"uint256","nodeType":"ElementaryTypeName","src":"2936:7:82","typeDescriptions":{}}},"id":54802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2936:36:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2975:1:82","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2936:40:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54792,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2925:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2929:6:82","memberName":"encode","nodeType":"MemberAccess","src":"2925:10:82","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:52:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54791,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2915:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2915:63:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":54814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"2981:23:82","subExpression":{"arguments":[{"arguments":[{"hexValue":"30786666","id":54811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2998:4:82","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":54810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2990:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":54809,"name":"uint256","nodeType":"ElementaryTypeName","src":"2990:7:82","typeDescriptions":{}}},"id":54812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2990:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2982:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2982:7:82","typeDescriptions":{}}},"id":54813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2982:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2915:89:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2900:104:82"},{"expression":{"id":54824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":54820,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"3042:12:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":54817,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42719,"src":"3015:11:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$42719_$","typeString":"type(library StorageSlot)"}},"id":54819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3027:14:82","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":42457,"src":"3015:26:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$42412_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":54821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3015:40:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$42412_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":54822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3056:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":42411,"src":"3015:46:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54823,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54790,"src":"3064:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3015:53:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54825,"nodeType":"ExpressionStatement","src":"3015:53:82"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":54826,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53822,"src":"3084:18:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":54827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3084:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54828,"nodeType":"EmitStatement","src":"3079:25:82"}]},"baseFunctions":[53842],"functionSelector":"5686cad5","implemented":true,"kind":"function","modifiers":[{"id":54787,"kind":"modifierInvocation","modifierName":{"id":54786,"name":"onlyOwner","nameLocations":["2880:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"2880:9:82"},"nodeType":"ModifierInvocation","src":"2880:9:82"}],"name":"setStorageSlot","nameLocation":"2833:14:82","parameters":{"id":54785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54784,"mutability":"mutable","name":"namespace","nameLocation":"2862:9:82","nodeType":"VariableDeclaration","scope":54830,"src":"2848:23:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54783,"name":"string","nodeType":"ElementaryTypeName","src":"2848:6:82","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2847:25:82"},"returnParameters":{"id":54788,"nodeType":"ParameterList","parameters":[],"src":"2890:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54845,"nodeType":"FunctionDefinition","src":"3117:153:82","nodes":[],"body":{"id":54844,"nodeType":"Block","src":"3175:95:82","nodes":[],"statements":[{"assignments":[54837],"declarations":[{"constant":false,"id":54837,"mutability":"mutable","name":"router","nameLocation":"3201:6:82","nodeType":"VariableDeclaration","scope":54844,"src":"3185:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54836,"nodeType":"UserDefinedTypeName","pathNode":{"id":54835,"name":"Storage","nameLocations":["3185:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3185:7:82"},"referencedDeclaration":53731,"src":"3185:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54840,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54838,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3210:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3210:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3185:38:82"},{"expression":{"expression":{"id":54841,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54837,"src":"3240:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3247:16:82","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":53696,"src":"3240:23:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54834,"id":54843,"nodeType":"Return","src":"3233:30:82"}]},"baseFunctions":[53847],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"3126:16:82","parameters":{"id":54831,"nodeType":"ParameterList","parameters":[],"src":"3142:2:82"},"returnParameters":{"id":54834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54845,"src":"3166:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3166:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3165:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54860,"nodeType":"FunctionDefinition","src":"3276:167:82","nodes":[],"body":{"id":54859,"nodeType":"Block","src":"3341:102:82","nodes":[],"statements":[{"assignments":[54852],"declarations":[{"constant":false,"id":54852,"mutability":"mutable","name":"router","nameLocation":"3367:6:82","nodeType":"VariableDeclaration","scope":54859,"src":"3351:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54851,"nodeType":"UserDefinedTypeName","pathNode":{"id":54850,"name":"Storage","nameLocations":["3351:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3351:7:82"},"referencedDeclaration":53731,"src":"3351:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54855,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54853,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3376:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3376:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3351:38:82"},{"expression":{"expression":{"id":54856,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54852,"src":"3406:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3413:23:82","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":53704,"src":"3406:30:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54849,"id":54858,"nodeType":"Return","src":"3399:37:82"}]},"baseFunctions":[53852],"functionSelector":"2dacfb69","implemented":true,"kind":"function","modifiers":[],"name":"lastBlockCommitmentHash","nameLocation":"3285:23:82","parameters":{"id":54846,"nodeType":"ParameterList","parameters":[],"src":"3308:2:82"},"returnParameters":{"id":54849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54848,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54860,"src":"3332:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3332:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3331:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54875,"nodeType":"FunctionDefinition","src":"3449:143:82","nodes":[],"body":{"id":54874,"nodeType":"Block","src":"3502:90:82","nodes":[],"statements":[{"assignments":[54867],"declarations":[{"constant":false,"id":54867,"mutability":"mutable","name":"router","nameLocation":"3528:6:82","nodeType":"VariableDeclaration","scope":54874,"src":"3512:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54866,"nodeType":"UserDefinedTypeName","pathNode":{"id":54865,"name":"Storage","nameLocations":["3512:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3512:7:82"},"referencedDeclaration":53731,"src":"3512:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54870,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54868,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3537:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3537:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3512:38:82"},{"expression":{"expression":{"id":54871,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"3567:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3574:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"3567:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54864,"id":54873,"nodeType":"Return","src":"3560:25:82"}]},"baseFunctions":[53857],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"3458:11:82","parameters":{"id":54861,"nodeType":"ParameterList","parameters":[],"src":"3469:2:82"},"returnParameters":{"id":54864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54863,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54875,"src":"3493:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54862,"name":"address","nodeType":"ElementaryTypeName","src":"3493:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3492:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54890,"nodeType":"FunctionDefinition","src":"3598:143:82","nodes":[],"body":{"id":54889,"nodeType":"Block","src":"3651:90:82","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"router","nameLocation":"3677:6:82","nodeType":"VariableDeclaration","scope":54889,"src":"3661:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54881,"nodeType":"UserDefinedTypeName","pathNode":{"id":54880,"name":"Storage","nameLocations":["3661:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3661:7:82"},"referencedDeclaration":53731,"src":"3661:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54885,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54883,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3686:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3686:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3661:38:82"},{"expression":{"expression":{"id":54886,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"3716:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3723:11:82","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":53700,"src":"3716:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54879,"id":54888,"nodeType":"Return","src":"3709:25:82"}]},"baseFunctions":[53862],"functionSelector":"78ee5dec","implemented":true,"kind":"function","modifiers":[],"name":"mirrorProxy","nameLocation":"3607:11:82","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[],"src":"3618:2:82"},"returnParameters":{"id":54879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54890,"src":"3642:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54877,"name":"address","nodeType":"ElementaryTypeName","src":"3642:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3641:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54905,"nodeType":"FunctionDefinition","src":"3747:133:82","nodes":[],"body":{"id":54904,"nodeType":"Block","src":"3795:85:82","nodes":[],"statements":[{"assignments":[54897],"declarations":[{"constant":false,"id":54897,"mutability":"mutable","name":"router","nameLocation":"3821:6:82","nodeType":"VariableDeclaration","scope":54904,"src":"3805:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54896,"nodeType":"UserDefinedTypeName","pathNode":{"id":54895,"name":"Storage","nameLocations":["3805:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3805:7:82"},"referencedDeclaration":53731,"src":"3805:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54900,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54898,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3830:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3830:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3805:38:82"},{"expression":{"expression":{"id":54901,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54897,"src":"3860:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3867:6:82","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53698,"src":"3860:13:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54894,"id":54903,"nodeType":"Return","src":"3853:20:82"}]},"baseFunctions":[53867],"functionSelector":"444d9172","implemented":true,"kind":"function","modifiers":[],"name":"mirror","nameLocation":"3756:6:82","parameters":{"id":54891,"nodeType":"ParameterList","parameters":[],"src":"3762:2:82"},"returnParameters":{"id":54894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54893,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54905,"src":"3786:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54892,"name":"address","nodeType":"ElementaryTypeName","src":"3786:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3785:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54925,"nodeType":"FunctionDefinition","src":"3886:143:82","nodes":[],"body":{"id":54924,"nodeType":"Block","src":"3941:88:82","nodes":[],"statements":[{"assignments":[54914],"declarations":[{"constant":false,"id":54914,"mutability":"mutable","name":"router","nameLocation":"3967:6:82","nodeType":"VariableDeclaration","scope":54924,"src":"3951:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54913,"nodeType":"UserDefinedTypeName","pathNode":{"id":54912,"name":"Storage","nameLocations":["3951:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3951:7:82"},"referencedDeclaration":53731,"src":"3951:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54915,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3976:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3976:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3951:38:82"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54918,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54914,"src":"3999:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4006:6:82","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53698,"src":"3999:13:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54907,"src":"4015:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3999:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54923,"nodeType":"ExpressionStatement","src":"3999:23:82"}]},"baseFunctions":[53872],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":54910,"kind":"modifierInvocation","modifierName":{"id":54909,"name":"onlyOwner","nameLocations":["3931:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"3931:9:82"},"nodeType":"ModifierInvocation","src":"3931:9:82"}],"name":"setMirror","nameLocation":"3895:9:82","parameters":{"id":54908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54907,"mutability":"mutable","name":"_mirror","nameLocation":"3913:7:82","nodeType":"VariableDeclaration","scope":54925,"src":"3905:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54906,"name":"address","nodeType":"ElementaryTypeName","src":"3905:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3904:17:82"},"returnParameters":{"id":54911,"nodeType":"ParameterList","parameters":[],"src":"3941:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54940,"nodeType":"FunctionDefinition","src":"4085:159:82","nodes":[],"body":{"id":54939,"nodeType":"Block","src":"4146:98:82","nodes":[],"statements":[{"assignments":[54932],"declarations":[{"constant":false,"id":54932,"mutability":"mutable","name":"router","nameLocation":"4172:6:82","nodeType":"VariableDeclaration","scope":54939,"src":"4156:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54931,"nodeType":"UserDefinedTypeName","pathNode":{"id":54930,"name":"Storage","nameLocations":["4156:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"4156:7:82"},"referencedDeclaration":53731,"src":"4156:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54935,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54933,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"4181:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4181:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4156:38:82"},{"expression":{"expression":{"id":54936,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54932,"src":"4211:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4218:19:82","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":53724,"src":"4211:26:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54929,"id":54938,"nodeType":"Return","src":"4204:33:82"}]},"baseFunctions":[53877],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"4094:19:82","parameters":{"id":54926,"nodeType":"ParameterList","parameters":[],"src":"4113:2:82"},"returnParameters":{"id":54929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54940,"src":"4137:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54927,"name":"uint256","nodeType":"ElementaryTypeName","src":"4137:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4136:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54960,"nodeType":"FunctionDefinition","src":"4250:159:82","nodes":[],"body":{"id":54959,"nodeType":"Block","src":"4317:92:82","nodes":[],"statements":[{"assignments":[54950],"declarations":[{"constant":false,"id":54950,"mutability":"mutable","name":"router","nameLocation":"4343:6:82","nodeType":"VariableDeclaration","scope":54959,"src":"4327:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54949,"nodeType":"UserDefinedTypeName","pathNode":{"id":54948,"name":"Storage","nameLocations":["4327:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"4327:7:82"},"referencedDeclaration":53731,"src":"4327:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54953,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54951,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"4352:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4352:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4327:38:82"},{"expression":{"baseExpression":{"expression":{"id":54954,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54950,"src":"4382:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4389:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"4382:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":54957,"indexExpression":{"id":54956,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54942,"src":"4395:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4382:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"functionReturnParameters":54947,"id":54958,"nodeType":"Return","src":"4375:27:82"}]},"baseFunctions":[53885],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"4259:9:82","parameters":{"id":54943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54942,"mutability":"mutable","name":"codeId","nameLocation":"4277:6:82","nodeType":"VariableDeclaration","scope":54960,"src":"4269:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54941,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4269:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4268:16:82"},"returnParameters":{"id":54947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54946,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54960,"src":"4306:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"},"typeName":{"id":54945,"nodeType":"UserDefinedTypeName","pathNode":{"id":54944,"name":"CodeState","nameLocations":["4306:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":53735,"src":"4306:9:82"},"referencedDeclaration":53735,"src":"4306:9:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"visibility":"internal"}],"src":"4305:11:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54975,"nodeType":"FunctionDefinition","src":"4415:147:82","nodes":[],"body":{"id":54974,"nodeType":"Block","src":"4470:92:82","nodes":[],"statements":[{"assignments":[54967],"declarations":[{"constant":false,"id":54967,"mutability":"mutable","name":"router","nameLocation":"4496:6:82","nodeType":"VariableDeclaration","scope":54974,"src":"4480:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54966,"nodeType":"UserDefinedTypeName","pathNode":{"id":54965,"name":"Storage","nameLocations":["4480:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"4480:7:82"},"referencedDeclaration":53731,"src":"4480:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54970,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54968,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"4505:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4480:38:82"},{"expression":{"expression":{"id":54971,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54967,"src":"4535:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4542:13:82","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":53730,"src":"4535:20:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54964,"id":54973,"nodeType":"Return","src":"4528:27:82"}]},"baseFunctions":[53890],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"4424:13:82","parameters":{"id":54961,"nodeType":"ParameterList","parameters":[],"src":"4437:2:82"},"returnParameters":{"id":54964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54975,"src":"4461:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54962,"name":"uint256","nodeType":"ElementaryTypeName","src":"4461:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4460:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54994,"nodeType":"FunctionDefinition","src":"4568:166:82","nodes":[],"body":{"id":54993,"nodeType":"Block","src":"4638:96:82","nodes":[],"statements":[{"assignments":[54984],"declarations":[{"constant":false,"id":54984,"mutability":"mutable","name":"router","nameLocation":"4664:6:82","nodeType":"VariableDeclaration","scope":54993,"src":"4648:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54983,"nodeType":"UserDefinedTypeName","pathNode":{"id":54982,"name":"Storage","nameLocations":["4648:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"4648:7:82"},"referencedDeclaration":53731,"src":"4648:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54987,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54985,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"4673:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4673:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4648:38:82"},{"expression":{"baseExpression":{"expression":{"id":54988,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54984,"src":"4703:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4710:8:82","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":53728,"src":"4703:15:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":54991,"indexExpression":{"id":54990,"name":"program","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54977,"src":"4719:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4703:24:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54981,"id":54992,"nodeType":"Return","src":"4696:31:82"}]},"baseFunctions":[53898],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"4577:13:82","parameters":{"id":54978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54977,"mutability":"mutable","name":"program","nameLocation":"4599:7:82","nodeType":"VariableDeclaration","scope":54994,"src":"4591:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54976,"name":"address","nodeType":"ElementaryTypeName","src":"4591:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4590:17:82"},"returnParameters":{"id":54981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54994,"src":"4629:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54979,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4629:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4628:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55009,"nodeType":"FunctionDefinition","src":"4785:173:82","nodes":[],"body":{"id":55008,"nodeType":"Block","src":"4853:105:82","nodes":[],"statements":[{"assignments":[55001],"declarations":[{"constant":false,"id":55001,"mutability":"mutable","name":"router","nameLocation":"4879:6:82","nodeType":"VariableDeclaration","scope":55008,"src":"4863:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55000,"nodeType":"UserDefinedTypeName","pathNode":{"id":54999,"name":"Storage","nameLocations":["4863:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"4863:7:82"},"referencedDeclaration":53731,"src":"4863:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55004,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55002,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"4888:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4888:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4863:38:82"},{"expression":{"expression":{"id":55005,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55001,"src":"4918:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4925:26:82","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":53706,"src":"4918:33:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54998,"id":55007,"nodeType":"Return","src":"4911:40:82"}]},"baseFunctions":[53903],"functionSelector":"efd81abc","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdPercentage","nameLocation":"4794:26:82","parameters":{"id":54995,"nodeType":"ParameterList","parameters":[],"src":"4820:2:82"},"returnParameters":{"id":54998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55009,"src":"4844:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54996,"name":"uint256","nodeType":"ElementaryTypeName","src":"4844:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4843:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55026,"nodeType":"FunctionDefinition","src":"4964:204:82","nodes":[],"body":{"id":55025,"nodeType":"Block","src":"5025:143:82","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":55014,"name":"validatorsCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"5097:15:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":55015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5097:17:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":55016,"name":"signingThresholdPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55009,"src":"5117:26:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":55017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5117:28:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5097:48:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"39393939","id":55019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5148:4:82","typeDescriptions":{"typeIdentifier":"t_rational_9999_by_1","typeString":"int_const 9999"},"value":"9999"},"src":"5097:55:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55021,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5096:57:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":55022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5156:5:82","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"5096:65:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55013,"id":55024,"nodeType":"Return","src":"5089:72:82"}]},"baseFunctions":[53908],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"4973:19:82","parameters":{"id":55010,"nodeType":"ParameterList","parameters":[],"src":"4992:2:82"},"returnParameters":{"id":55013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55026,"src":"5016:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55011,"name":"uint256","nodeType":"ElementaryTypeName","src":"5016:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5015:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55042,"nodeType":"FunctionDefinition","src":"5174:157:82","nodes":[],"body":{"id":55041,"nodeType":"Block","src":"5231:100:82","nodes":[],"statements":[{"assignments":[55033],"declarations":[{"constant":false,"id":55033,"mutability":"mutable","name":"router","nameLocation":"5257:6:82","nodeType":"VariableDeclaration","scope":55041,"src":"5241:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55032,"nodeType":"UserDefinedTypeName","pathNode":{"id":55031,"name":"Storage","nameLocations":["5241:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"5241:7:82"},"referencedDeclaration":53731,"src":"5241:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55036,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55034,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"5266:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5266:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5241:38:82"},{"expression":{"expression":{"expression":{"id":55037,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55033,"src":"5296:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5303:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"5296:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":55039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5318:6:82","memberName":"length","nodeType":"MemberAccess","src":"5296:28:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55030,"id":55040,"nodeType":"Return","src":"5289:35:82"}]},"baseFunctions":[53913],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"5183:15:82","parameters":{"id":55027,"nodeType":"ParameterList","parameters":[],"src":"5198:2:82"},"returnParameters":{"id":55030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55042,"src":"5222:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55028,"name":"uint256","nodeType":"ElementaryTypeName","src":"5222:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5221:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55061,"nodeType":"FunctionDefinition","src":"5337:171:82","nodes":[],"body":{"id":55060,"nodeType":"Block","src":"5408:100:82","nodes":[],"statements":[{"assignments":[55051],"declarations":[{"constant":false,"id":55051,"mutability":"mutable","name":"router","nameLocation":"5434:6:82","nodeType":"VariableDeclaration","scope":55060,"src":"5418:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55050,"nodeType":"UserDefinedTypeName","pathNode":{"id":55049,"name":"Storage","nameLocations":["5418:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"5418:7:82"},"referencedDeclaration":53731,"src":"5418:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55054,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55052,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"5443:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5443:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5418:38:82"},{"expression":{"baseExpression":{"expression":{"id":55055,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55051,"src":"5473:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5480:10:82","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":53714,"src":"5473:17:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":55058,"indexExpression":{"id":55057,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55044,"src":"5491:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5473:28:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":55048,"id":55059,"nodeType":"Return","src":"5466:35:82"}]},"baseFunctions":[53920],"functionSelector":"8febbd59","implemented":true,"kind":"function","modifiers":[],"name":"validatorExists","nameLocation":"5346:15:82","parameters":{"id":55045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55044,"mutability":"mutable","name":"validator","nameLocation":"5370:9:82","nodeType":"VariableDeclaration","scope":55061,"src":"5362:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55043,"name":"address","nodeType":"ElementaryTypeName","src":"5362:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5361:19:82"},"returnParameters":{"id":55048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55047,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55061,"src":"5402:4:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55046,"name":"bool","nodeType":"ElementaryTypeName","src":"5402:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5401:6:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55077,"nodeType":"FunctionDefinition","src":"5514:154:82","nodes":[],"body":{"id":55076,"nodeType":"Block","src":"5575:93:82","nodes":[],"statements":[{"assignments":[55069],"declarations":[{"constant":false,"id":55069,"mutability":"mutable","name":"router","nameLocation":"5601:6:82","nodeType":"VariableDeclaration","scope":55076,"src":"5585:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55068,"nodeType":"UserDefinedTypeName","pathNode":{"id":55067,"name":"Storage","nameLocations":["5585:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"5585:7:82"},"referencedDeclaration":53731,"src":"5585:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55072,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55070,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"5610:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5610:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5585:38:82"},{"expression":{"expression":{"id":55073,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55069,"src":"5640:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5647:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"5640:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":55066,"id":55075,"nodeType":"Return","src":"5633:28:82"}]},"baseFunctions":[53926],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"5523:10:82","parameters":{"id":55062,"nodeType":"ParameterList","parameters":[],"src":"5533:2:82"},"returnParameters":{"id":55066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55065,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55077,"src":"5557:16:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55063,"name":"address","nodeType":"ElementaryTypeName","src":"5557:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55064,"nodeType":"ArrayTypeName","src":"5557:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5556:18:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55096,"nodeType":"FunctionDefinition","src":"5731:209:82","nodes":[],"body":{"id":55095,"nodeType":"Block","src":"5819:121:82","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":55085,"name":"_cleanValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56200,"src":"5829:16:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":55086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5829:18:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55087,"nodeType":"ExpressionStatement","src":"5829:18:82"},{"expression":{"arguments":[{"id":55089,"name":"validatorsAddressArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55080,"src":"5872:22:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":55088,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56255,"src":"5857:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":55090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5857:38:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55091,"nodeType":"ExpressionStatement","src":"5857:38:82"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":55092,"name":"ValidatorsSetChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53819,"src":"5911:20:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":55093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5911:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55094,"nodeType":"EmitStatement","src":"5906:27:82"}]},"baseFunctions":[53932],"functionSelector":"e71731e4","implemented":true,"kind":"function","modifiers":[{"id":55083,"kind":"modifierInvocation","modifierName":{"id":55082,"name":"onlyOwner","nameLocations":["5809:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"5809:9:82"},"nodeType":"ModifierInvocation","src":"5809:9:82"}],"name":"updateValidators","nameLocation":"5740:16:82","parameters":{"id":55081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55080,"mutability":"mutable","name":"validatorsAddressArray","nameLocation":"5776:22:82","nodeType":"VariableDeclaration","scope":55096,"src":"5757:41:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55078,"name":"address","nodeType":"ElementaryTypeName","src":"5757:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55079,"nodeType":"ArrayTypeName","src":"5757:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5756:43:82"},"returnParameters":{"id":55084,"nodeType":"ParameterList","parameters":[],"src":"5819:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55111,"nodeType":"FunctionDefinition","src":"5994:140:82","nodes":[],"body":{"id":55110,"nodeType":"Block","src":"6045:89:82","nodes":[],"statements":[{"assignments":[55103],"declarations":[{"constant":false,"id":55103,"mutability":"mutable","name":"router","nameLocation":"6071:6:82","nodeType":"VariableDeclaration","scope":55110,"src":"6055:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55102,"nodeType":"UserDefinedTypeName","pathNode":{"id":55101,"name":"Storage","nameLocations":["6055:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"6055:7:82"},"referencedDeclaration":53731,"src":"6055:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55106,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55104,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"6080:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6080:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6055:38:82"},{"expression":{"expression":{"id":55107,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55103,"src":"6110:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6117:10:82","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":53708,"src":"6110:17:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":55100,"id":55109,"nodeType":"Return","src":"6103:24:82"}]},"baseFunctions":[53937],"functionSelector":"d3fd6364","implemented":true,"kind":"function","modifiers":[],"name":"baseWeight","nameLocation":"6003:10:82","parameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"6013:2:82"},"returnParameters":{"id":55100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55111,"src":"6037:6:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55098,"name":"uint64","nodeType":"ElementaryTypeName","src":"6037:6:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6036:8:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55135,"nodeType":"FunctionDefinition","src":"6140:204:82","nodes":[],"body":{"id":55134,"nodeType":"Block","src":"6202:142:82","nodes":[],"statements":[{"assignments":[55120],"declarations":[{"constant":false,"id":55120,"mutability":"mutable","name":"router","nameLocation":"6228:6:82","nodeType":"VariableDeclaration","scope":55134,"src":"6212:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55119,"nodeType":"UserDefinedTypeName","pathNode":{"id":55118,"name":"Storage","nameLocations":["6212:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"6212:7:82"},"referencedDeclaration":53731,"src":"6212:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55123,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55121,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"6237:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6237:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6212:38:82"},{"expression":{"id":55128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55124,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55120,"src":"6260:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6267:10:82","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":53708,"src":"6260:17:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55127,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55113,"src":"6280:11:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6260:31:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":55129,"nodeType":"ExpressionStatement","src":"6260:31:82"},{"eventCall":{"arguments":[{"id":55131,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55113,"src":"6325:11:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55130,"name":"BaseWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53827,"src":"6307:17:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":55132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6307:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55133,"nodeType":"EmitStatement","src":"6302:35:82"}]},"baseFunctions":[53942],"functionSelector":"8028861a","implemented":true,"kind":"function","modifiers":[{"id":55116,"kind":"modifierInvocation","modifierName":{"id":55115,"name":"onlyOwner","nameLocations":["6192:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"6192:9:82"},"nodeType":"ModifierInvocation","src":"6192:9:82"}],"name":"setBaseWeight","nameLocation":"6149:13:82","parameters":{"id":55114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55113,"mutability":"mutable","name":"_baseWeight","nameLocation":"6170:11:82","nodeType":"VariableDeclaration","scope":55135,"src":"6163:18:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55112,"name":"uint64","nodeType":"ElementaryTypeName","src":"6163:6:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6162:20:82"},"returnParameters":{"id":55117,"nodeType":"ParameterList","parameters":[],"src":"6202:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55150,"nodeType":"FunctionDefinition","src":"6350:149:82","nodes":[],"body":{"id":55149,"nodeType":"Block","src":"6406:93:82","nodes":[],"statements":[{"assignments":[55142],"declarations":[{"constant":false,"id":55142,"mutability":"mutable","name":"router","nameLocation":"6432:6:82","nodeType":"VariableDeclaration","scope":55149,"src":"6416:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55141,"nodeType":"UserDefinedTypeName","pathNode":{"id":55140,"name":"Storage","nameLocations":["6416:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"6416:7:82"},"referencedDeclaration":53731,"src":"6416:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55145,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55143,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"6441:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6416:38:82"},{"expression":{"expression":{"id":55146,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55142,"src":"6471:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6478:14:82","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":53710,"src":"6471:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":55139,"id":55148,"nodeType":"Return","src":"6464:28:82"}]},"baseFunctions":[53947],"functionSelector":"0834fecc","implemented":true,"kind":"function","modifiers":[],"name":"valuePerWeight","nameLocation":"6359:14:82","parameters":{"id":55136,"nodeType":"ParameterList","parameters":[],"src":"6373:2:82"},"returnParameters":{"id":55139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55150,"src":"6397:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55137,"name":"uint128","nodeType":"ElementaryTypeName","src":"6397:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6396:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55174,"nodeType":"FunctionDefinition","src":"6505:229:82","nodes":[],"body":{"id":55173,"nodeType":"Block","src":"6576:158:82","nodes":[],"statements":[{"assignments":[55159],"declarations":[{"constant":false,"id":55159,"mutability":"mutable","name":"router","nameLocation":"6602:6:82","nodeType":"VariableDeclaration","scope":55173,"src":"6586:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55158,"nodeType":"UserDefinedTypeName","pathNode":{"id":55157,"name":"Storage","nameLocations":["6586:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"6586:7:82"},"referencedDeclaration":53731,"src":"6586:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55162,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55160,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"6611:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6611:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6586:38:82"},{"expression":{"id":55167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55163,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"6634:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6641:14:82","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":53710,"src":"6634:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55166,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55152,"src":"6658:15:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6634:39:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":55168,"nodeType":"ExpressionStatement","src":"6634:39:82"},{"eventCall":{"arguments":[{"id":55170,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55152,"src":"6711:15:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":55169,"name":"ValuePerWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53832,"src":"6689:21:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6689:38:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"EmitStatement","src":"6684:43:82"}]},"baseFunctions":[53952],"functionSelector":"a6bbbe1c","implemented":true,"kind":"function","modifiers":[{"id":55155,"kind":"modifierInvocation","modifierName":{"id":55154,"name":"onlyOwner","nameLocations":["6566:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"6566:9:82"},"nodeType":"ModifierInvocation","src":"6566:9:82"}],"name":"setValuePerWeight","nameLocation":"6514:17:82","parameters":{"id":55153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55152,"mutability":"mutable","name":"_valuePerWeight","nameLocation":"6540:15:82","nodeType":"VariableDeclaration","scope":55174,"src":"6532:23:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55151,"name":"uint128","nodeType":"ElementaryTypeName","src":"6532:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6531:25:82"},"returnParameters":{"id":55156,"nodeType":"ParameterList","parameters":[],"src":"6576:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55189,"nodeType":"FunctionDefinition","src":"6740:113:82","nodes":[],"body":{"id":55188,"nodeType":"Block","src":"6789:64:82","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":55186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":55181,"name":"baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55111,"src":"6814:10:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":55182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6814:12:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6806:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":55179,"name":"uint128","nodeType":"ElementaryTypeName","src":"6806:7:82","typeDescriptions":{}}},"id":55183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:21:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":55184,"name":"valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55150,"src":"6830:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":55185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6830:16:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6806:40:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":55178,"id":55187,"nodeType":"Return","src":"6799:47:82"}]},"baseFunctions":[53957],"functionSelector":"6ef25c3a","implemented":true,"kind":"function","modifiers":[],"name":"baseFee","nameLocation":"6749:7:82","parameters":{"id":55175,"nodeType":"ParameterList","parameters":[],"src":"6756:2:82"},"returnParameters":{"id":55178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55189,"src":"6780:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55176,"name":"uint128","nodeType":"ElementaryTypeName","src":"6780:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6779:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55241,"nodeType":"FunctionDefinition","src":"6889:453:82","nodes":[],"body":{"id":55240,"nodeType":"Block","src":"6965:377:82","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55197,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55193,"src":"6983:10:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":55198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6997:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6983:15:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":55201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7011:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":55200,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"7002:8:82","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":55202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:11:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":55203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7017:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7002:16:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6983:35:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"626c6f6254784861736820636f756c646e277420626520666f756e64","id":55206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7020:30:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""},"value":"blobTxHash couldn't be found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""}],"id":55196,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6975:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6975:76:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55208,"nodeType":"ExpressionStatement","src":"6975:76:82"},{"assignments":[55211],"declarations":[{"constant":false,"id":55211,"mutability":"mutable","name":"router","nameLocation":"7078:6:82","nodeType":"VariableDeclaration","scope":55240,"src":"7062:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55210,"nodeType":"UserDefinedTypeName","pathNode":{"id":55209,"name":"Storage","nameLocations":["7062:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"7062:7:82"},"referencedDeclaration":53731,"src":"7062:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55214,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55212,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"7087:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7087:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7062:38:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"},"id":55222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":55216,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"7119:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7126:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"7119:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55219,"indexExpression":{"id":55218,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55191,"src":"7132:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7119:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55220,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"7143:9:82","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$53735_$","typeString":"type(enum IRouter.CodeState)"}},"id":55221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7153:7:82","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":53732,"src":"7143:17:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"src":"7119:41:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652077697468207375636820696420616c726561647920726571756573746564206f722076616c696461746564","id":55223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7162:50:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""},"value":"code with such id already requested or validated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""}],"id":55215,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7111:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7111:102:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55225,"nodeType":"ExpressionStatement","src":"7111:102:82"},{"expression":{"id":55233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":55226,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"7224:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7231:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"7224:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55230,"indexExpression":{"id":55228,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55191,"src":"7237:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7224:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55231,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"7247:9:82","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$53735_$","typeString":"type(enum IRouter.CodeState)"}},"id":55232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7257:19:82","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":53733,"src":"7247:29:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"src":"7224:52:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"id":55234,"nodeType":"ExpressionStatement","src":"7224:52:82"},{"eventCall":{"arguments":[{"id":55236,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55191,"src":"7316:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55237,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55193,"src":"7324:10:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55235,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53802,"src":"7292:23:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":55238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7292:43:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55239,"nodeType":"EmitStatement","src":"7287:48:82"}]},"baseFunctions":[53964],"functionSelector":"1c149d8a","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidation","nameLocation":"6898:21:82","parameters":{"id":55194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55191,"mutability":"mutable","name":"codeId","nameLocation":"6928:6:82","nodeType":"VariableDeclaration","scope":55241,"src":"6920:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6920:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55193,"mutability":"mutable","name":"blobTxHash","nameLocation":"6944:10:82","nodeType":"VariableDeclaration","scope":55241,"src":"6936:18:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6936:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6919:36:82"},"returnParameters":{"id":55195,"nodeType":"ParameterList","parameters":[],"src":"6965:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55278,"nodeType":"FunctionDefinition","src":"7348:381:82","nodes":[],"body":{"id":55277,"nodeType":"Block","src":"7504:225:82","nodes":[],"statements":[{"assignments":[55255,55257],"declarations":[{"constant":false,"id":55255,"mutability":"mutable","name":"actorId","nameLocation":"7523:7:82","nodeType":"VariableDeclaration","scope":55277,"src":"7515:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55254,"name":"address","nodeType":"ElementaryTypeName","src":"7515:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55257,"mutability":"mutable","name":"executableBalance","nameLocation":"7540:17:82","nodeType":"VariableDeclaration","scope":55277,"src":"7532:25:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55256,"name":"uint128","nodeType":"ElementaryTypeName","src":"7532:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":55263,"initialValue":{"arguments":[{"id":55259,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55243,"src":"7590:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55260,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"7598:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55261,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"7604:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":55258,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55598,"src":"7561:28:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":55262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7561:50:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"7514:97:82"},{"expression":{"arguments":[{"expression":{"id":55268,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"7651:2:82","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":55269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7654:6:82","memberName":"origin","nodeType":"MemberAccess","src":"7651:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55270,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55247,"src":"7662:7:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":55271,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"7671:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":55272,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55257,"src":"7679:17:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":55265,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55255,"src":"7630:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55264,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"7622:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$53648_$","typeString":"type(contract IMirror)"}},"id":55266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:16:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7639:11:82","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":53647,"src":"7622:28:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":55273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:75:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55274,"nodeType":"ExpressionStatement","src":"7622:75:82"},{"expression":{"id":55275,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55255,"src":"7715:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55253,"id":55276,"nodeType":"Return","src":"7708:14:82"}]},"baseFunctions":[53977],"functionSelector":"8074b455","implemented":true,"kind":"function","modifiers":[],"name":"createProgram","nameLocation":"7357:13:82","parameters":{"id":55250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55243,"mutability":"mutable","name":"codeId","nameLocation":"7379:6:82","nodeType":"VariableDeclaration","scope":55278,"src":"7371:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7371:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55245,"mutability":"mutable","name":"salt","nameLocation":"7395:4:82","nodeType":"VariableDeclaration","scope":55278,"src":"7387:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7387:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55247,"mutability":"mutable","name":"payload","nameLocation":"7416:7:82","nodeType":"VariableDeclaration","scope":55278,"src":"7401:22:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":55246,"name":"bytes","nodeType":"ElementaryTypeName","src":"7401:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":55249,"mutability":"mutable","name":"_value","nameLocation":"7433:6:82","nodeType":"VariableDeclaration","scope":55278,"src":"7425:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55248,"name":"uint128","nodeType":"ElementaryTypeName","src":"7425:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7370:70:82"},"returnParameters":{"id":55253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55278,"src":"7491:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55251,"name":"address","nodeType":"ElementaryTypeName","src":"7491:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7490:9:82"},"scope":56269,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":55336,"nodeType":"FunctionDefinition","src":"7735:596:82","nodes":[],"body":{"id":55335,"nodeType":"Block","src":"7951:380:82","nodes":[],"statements":[{"assignments":[55294,55296],"declarations":[{"constant":false,"id":55294,"mutability":"mutable","name":"actorId","nameLocation":"7970:7:82","nodeType":"VariableDeclaration","scope":55335,"src":"7962:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55293,"name":"address","nodeType":"ElementaryTypeName","src":"7962:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55296,"mutability":"mutable","name":"executableBalance","nameLocation":"7987:17:82","nodeType":"VariableDeclaration","scope":55335,"src":"7979:25:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55295,"name":"uint128","nodeType":"ElementaryTypeName","src":"7979:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":55302,"initialValue":{"arguments":[{"id":55298,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"8037:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55299,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"8045:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55300,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55288,"src":"8051:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":55297,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55598,"src":"8008:28:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":55301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8008:50:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"7961:97:82"},{"assignments":[55305],"declarations":[{"constant":false,"id":55305,"mutability":"mutable","name":"mirrorInstance","nameLocation":"8077:14:82","nodeType":"VariableDeclaration","scope":55335,"src":"8069:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"},"typeName":{"id":55304,"nodeType":"UserDefinedTypeName","pathNode":{"id":55303,"name":"IMirror","nameLocations":["8069:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53648,"src":"8069:7:82"},"referencedDeclaration":53648,"src":"8069:7:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"visibility":"internal"}],"id":55309,"initialValue":{"arguments":[{"id":55307,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55294,"src":"8102:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55306,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"8094:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$53648_$","typeString":"type(contract IMirror)"}},"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8094:16:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"8069:41:82"},{"expression":{"arguments":[{"id":55313,"name":"decoderImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55280,"src":"8150:21:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":55317,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"8200:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55318,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"8208:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55315,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8183:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8187:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"8183:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8183:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55314,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8173:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8173:41:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55310,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55305,"src":"8121:14:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8136:13:82","memberName":"createDecoder","nodeType":"MemberAccess","referencedDeclaration":53636,"src":"8121:28:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) external"}},"id":55321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8121:94:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55322,"nodeType":"ExpressionStatement","src":"8121:94:82"},{"expression":{"arguments":[{"expression":{"id":55326,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"8253:2:82","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8256:6:82","memberName":"origin","nodeType":"MemberAccess","src":"8253:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55328,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"8264:7:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":55329,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55288,"src":"8273:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":55330,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55296,"src":"8281:17:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":55323,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55305,"src":"8226:14:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8241:11:82","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":53647,"src":"8226:26:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":55331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8226:73:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55332,"nodeType":"ExpressionStatement","src":"8226:73:82"},{"expression":{"id":55333,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55294,"src":"8317:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55292,"id":55334,"nodeType":"Return","src":"8310:14:82"}]},"baseFunctions":[53992],"functionSelector":"666d124c","implemented":true,"kind":"function","modifiers":[],"name":"createProgramWithDecoder","nameLocation":"7744:24:82","parameters":{"id":55289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55280,"mutability":"mutable","name":"decoderImplementation","nameLocation":"7786:21:82","nodeType":"VariableDeclaration","scope":55336,"src":"7778:29:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55279,"name":"address","nodeType":"ElementaryTypeName","src":"7778:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55282,"mutability":"mutable","name":"codeId","nameLocation":"7825:6:82","nodeType":"VariableDeclaration","scope":55336,"src":"7817:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7817:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55284,"mutability":"mutable","name":"salt","nameLocation":"7849:4:82","nodeType":"VariableDeclaration","scope":55336,"src":"7841:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7841:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55286,"mutability":"mutable","name":"payload","nameLocation":"7878:7:82","nodeType":"VariableDeclaration","scope":55336,"src":"7863:22:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":55285,"name":"bytes","nodeType":"ElementaryTypeName","src":"7863:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":55288,"mutability":"mutable","name":"_value","nameLocation":"7903:6:82","nodeType":"VariableDeclaration","scope":55336,"src":"7895:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55287,"name":"uint128","nodeType":"ElementaryTypeName","src":"7895:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7768:147:82"},"returnParameters":{"id":55292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55336,"src":"7942:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55290,"name":"address","nodeType":"ElementaryTypeName","src":"7942:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7941:9:82"},"scope":56269,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":55449,"nodeType":"FunctionDefinition","src":"8337:1117:82","nodes":[],"body":{"id":55448,"nodeType":"Block","src":"8444:1010:82","nodes":[],"statements":[{"assignments":[55348],"declarations":[{"constant":false,"id":55348,"mutability":"mutable","name":"router","nameLocation":"8470:6:82","nodeType":"VariableDeclaration","scope":55448,"src":"8454:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55347,"nodeType":"UserDefinedTypeName","pathNode":{"id":55346,"name":"Storage","nameLocations":["8454:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"8454:7:82"},"referencedDeclaration":53731,"src":"8454:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55351,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55349,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"8479:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8479:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8454:38:82"},{"assignments":[55353],"declarations":[{"constant":false,"id":55353,"mutability":"mutable","name":"codeCommetmentsHashes","nameLocation":"8516:21:82","nodeType":"VariableDeclaration","scope":55448,"src":"8503:34:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55352,"name":"bytes","nodeType":"ElementaryTypeName","src":"8503:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55354,"nodeType":"VariableDeclarationStatement","src":"8503:34:82"},{"body":{"id":55439,"nodeType":"Block","src":"8606:766:82","statements":[{"assignments":[55368],"declarations":[{"constant":false,"id":55368,"mutability":"mutable","name":"codeCommitment","nameLocation":"8644:14:82","nodeType":"VariableDeclaration","scope":55439,"src":"8620:38:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":55367,"nodeType":"UserDefinedTypeName","pathNode":{"id":55366,"name":"CodeCommitment","nameLocations":["8620:14:82"],"nodeType":"IdentifierPath","referencedDeclaration":53740,"src":"8620:14:82"},"referencedDeclaration":53740,"src":"8620:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"id":55372,"initialValue":{"baseExpression":{"id":55369,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"8661:20:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$53740_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":55371,"indexExpression":{"id":55370,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55356,"src":"8682:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8661:23:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"8620:64:82"},{"assignments":[55374],"declarations":[{"constant":false,"id":55374,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"8707:18:82","nodeType":"VariableDeclaration","scope":55439,"src":"8699:26:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8699:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55378,"initialValue":{"arguments":[{"id":55376,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55368,"src":"8748:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}],"id":55375,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56126,"src":"8728:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CodeCommitment_$53740_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.CodeCommitment calldata) pure returns (bytes32)"}},"id":55377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8728:35:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8699:64:82"},{"expression":{"id":55386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55379,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55353,"src":"8778:21:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55383,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55353,"src":"8815:21:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":55384,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"8838:18:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8802:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55380,"name":"bytes","nodeType":"ElementaryTypeName","src":"8802:5:82","typeDescriptions":{}}},"id":55382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8808:6:82","memberName":"concat","nodeType":"MemberAccess","src":"8802:12:82","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8802:55:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8778:79:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55387,"nodeType":"ExpressionStatement","src":"8778:79:82"},{"assignments":[55389],"declarations":[{"constant":false,"id":55389,"mutability":"mutable","name":"codeId","nameLocation":"8880:6:82","nodeType":"VariableDeclaration","scope":55439,"src":"8872:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8872:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55392,"initialValue":{"expression":{"id":55390,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55368,"src":"8889:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":55391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8904:2:82","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":53737,"src":"8889:17:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8872:34:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"},"id":55400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":55394,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55348,"src":"8928:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8935:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"8928:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55397,"indexExpression":{"id":55396,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"8941:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8928:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55398,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"8952:9:82","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$53735_$","typeString":"type(enum IRouter.CodeState)"}},"id":55399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8962:19:82","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":53733,"src":"8952:29:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"src":"8928:53:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652073686f756c642062652072657175657374656420666f722076616c69646174696f6e","id":55401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8983:41:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""},"value":"code should be requested for validation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""}],"id":55393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8920:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8920:105:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55403,"nodeType":"ExpressionStatement","src":"8920:105:82"},{"condition":{"expression":{"id":55404,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55368,"src":"9044:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":55405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9059:5:82","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":53739,"src":"9044:20:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":55437,"nodeType":"Block","src":"9247:115:82","statements":[{"expression":{"id":55430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9265:27:82","subExpression":{"baseExpression":{"expression":{"id":55426,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55348,"src":"9272:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9279:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"9272:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55429,"indexExpression":{"id":55428,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"9285:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9272:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55431,"nodeType":"ExpressionStatement","src":"9265:27:82"},{"eventCall":{"arguments":[{"id":55433,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"9333:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":55434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9341:5:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":55432,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53809,"src":"9316:16:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":55435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9316:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55436,"nodeType":"EmitStatement","src":"9311:36:82"}]},"id":55438,"nodeType":"IfStatement","src":"9040:322:82","trueBody":{"id":55425,"nodeType":"Block","src":"9066:175:82","statements":[{"expression":{"id":55413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":55406,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55348,"src":"9084:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9091:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"9084:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55410,"indexExpression":{"id":55408,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"9097:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9084:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55411,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"9107:9:82","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$53735_$","typeString":"type(enum IRouter.CodeState)"}},"id":55412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9117:9:82","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":53734,"src":"9107:19:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"src":"9084:42:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"id":55414,"nodeType":"ExpressionStatement","src":"9084:42:82"},{"expression":{"id":55418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9144:28:82","subExpression":{"expression":{"id":55415,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55348,"src":"9144:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9151:19:82","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":53724,"src":"9144:26:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55419,"nodeType":"ExpressionStatement","src":"9144:28:82"},{"eventCall":{"arguments":[{"id":55421,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"9213:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":55422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9221:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":55420,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53809,"src":"9196:16:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":55423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55424,"nodeType":"EmitStatement","src":"9191:35:82"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55359,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55356,"src":"8568:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55360,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"8572:20:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$53740_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":55361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8593:6:82","memberName":"length","nodeType":"MemberAccess","src":"8572:27:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8568:31:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55440,"initializationExpression":{"assignments":[55356],"declarations":[{"constant":false,"id":55356,"mutability":"mutable","name":"i","nameLocation":"8561:1:82","nodeType":"VariableDeclaration","scope":55440,"src":"8553:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55355,"name":"uint256","nodeType":"ElementaryTypeName","src":"8553:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55358,"initialValue":{"hexValue":"30","id":55357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8565:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8553:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8601:3:82","subExpression":{"id":55363,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55356,"src":"8601:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55365,"nodeType":"ExpressionStatement","src":"8601:3:82"},"nodeType":"ForStatement","src":"8548:824:82"},{"expression":{"arguments":[{"arguments":[{"id":55443,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55353,"src":"9412:21:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55442,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9402:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9402:32:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55445,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55343,"src":"9436:10:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":55441,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55687,"src":"9382:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":55446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9382:65:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55447,"nodeType":"ExpressionStatement","src":"9382:65:82"}]},"baseFunctions":[54002],"functionSelector":"e97d3eb3","implemented":true,"kind":"function","modifiers":[],"name":"commitCodes","nameLocation":"8346:11:82","parameters":{"id":55344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55340,"mutability":"mutable","name":"codeCommitmentsArray","nameLocation":"8384:20:82","nodeType":"VariableDeclaration","scope":55449,"src":"8358:46:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$53740_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment[]"},"typeName":{"baseType":{"id":55338,"nodeType":"UserDefinedTypeName","pathNode":{"id":55337,"name":"CodeCommitment","nameLocations":["8358:14:82"],"nodeType":"IdentifierPath","referencedDeclaration":53740,"src":"8358:14:82"},"referencedDeclaration":53740,"src":"8358:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"id":55339,"nodeType":"ArrayTypeName","src":"8358:16:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$53740_storage_$dyn_storage_ptr","typeString":"struct IRouter.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":55343,"mutability":"mutable","name":"signatures","nameLocation":"8423:10:82","nodeType":"VariableDeclaration","scope":55449,"src":"8406:27:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55341,"name":"bytes","nodeType":"ElementaryTypeName","src":"8406:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55342,"nodeType":"ArrayTypeName","src":"8406:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"8357:77:82"},"returnParameters":{"id":55345,"nodeType":"ParameterList","parameters":[],"src":"8444:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55507,"nodeType":"FunctionDefinition","src":"9460:604:82","nodes":[],"body":{"id":55506,"nodeType":"Block","src":"9603:461:82","nodes":[],"statements":[{"assignments":[55462],"declarations":[{"constant":false,"id":55462,"mutability":"mutable","name":"blockCommitmentsHashes","nameLocation":"9626:22:82","nodeType":"VariableDeclaration","scope":55506,"src":"9613:35:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55461,"name":"bytes","nodeType":"ElementaryTypeName","src":"9613:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55463,"nodeType":"VariableDeclarationStatement","src":"9613:35:82"},{"body":{"id":55497,"nodeType":"Block","src":"9718:263:82","statements":[{"assignments":[55477],"declarations":[{"constant":false,"id":55477,"mutability":"mutable","name":"blockCommitment","nameLocation":"9757:15:82","nodeType":"VariableDeclaration","scope":55497,"src":"9732:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":55476,"nodeType":"UserDefinedTypeName","pathNode":{"id":55475,"name":"BlockCommitment","nameLocations":["9732:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53751,"src":"9732:15:82"},"referencedDeclaration":53751,"src":"9732:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"id":55481,"initialValue":{"baseExpression":{"id":55478,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55453,"src":"9775:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$53751_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":55480,"indexExpression":{"id":55479,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55465,"src":"9797:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9775:24:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"9732:67:82"},{"assignments":[55483],"declarations":[{"constant":false,"id":55483,"mutability":"mutable","name":"blockCommitmentHash","nameLocation":"9822:19:82","nodeType":"VariableDeclaration","scope":55497,"src":"9814:27:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9814:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55487,"initialValue":{"arguments":[{"id":55485,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55477,"src":"9857:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}],"id":55484,"name":"_commitBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55783,"src":"9844:12:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockCommitment_$53751_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.BlockCommitment calldata) returns (bytes32)"}},"id":55486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9844:29:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9814:59:82"},{"expression":{"id":55495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55488,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55462,"src":"9888:22:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55492,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55462,"src":"9926:22:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":55493,"name":"blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55483,"src":"9950:19:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9913:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55489,"name":"bytes","nodeType":"ElementaryTypeName","src":"9913:5:82","typeDescriptions":{}}},"id":55491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9919:6:82","memberName":"concat","nodeType":"MemberAccess","src":"9913:12:82","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9913:57:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9888:82:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55496,"nodeType":"ExpressionStatement","src":"9888:82:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55465,"src":"9679:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55469,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55453,"src":"9683:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$53751_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":55470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9705:6:82","memberName":"length","nodeType":"MemberAccess","src":"9683:28:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9679:32:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55498,"initializationExpression":{"assignments":[55465],"declarations":[{"constant":false,"id":55465,"mutability":"mutable","name":"i","nameLocation":"9672:1:82","nodeType":"VariableDeclaration","scope":55498,"src":"9664:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55464,"name":"uint256","nodeType":"ElementaryTypeName","src":"9664:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55467,"initialValue":{"hexValue":"30","id":55466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9676:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9664:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9713:3:82","subExpression":{"id":55472,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55465,"src":"9713:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55474,"nodeType":"ExpressionStatement","src":"9713:3:82"},"nodeType":"ForStatement","src":"9659:322:82"},{"expression":{"arguments":[{"arguments":[{"id":55501,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55462,"src":"10021:22:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55500,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10011:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10011:33:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55503,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55456,"src":"10046:10:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":55499,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55687,"src":"9991:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":55504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9991:66:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55505,"nodeType":"ExpressionStatement","src":"9991:66:82"}]},"baseFunctions":[54012],"functionSelector":"fa97ed6d","implemented":true,"kind":"function","modifiers":[{"id":55459,"kind":"modifierInvocation","modifierName":{"id":55458,"name":"nonReentrant","nameLocations":["9586:12:82"],"nodeType":"IdentifierPath","referencedDeclaration":42355,"src":"9586:12:82"},"nodeType":"ModifierInvocation","src":"9586:12:82"}],"name":"commitBlocks","nameLocation":"9469:12:82","parameters":{"id":55457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55453,"mutability":"mutable","name":"blockCommitmentsArray","nameLocation":"9509:21:82","nodeType":"VariableDeclaration","scope":55507,"src":"9482:48:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$53751_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment[]"},"typeName":{"baseType":{"id":55451,"nodeType":"UserDefinedTypeName","pathNode":{"id":55450,"name":"BlockCommitment","nameLocations":["9482:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53751,"src":"9482:15:82"},"referencedDeclaration":53751,"src":"9482:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"id":55452,"nodeType":"ArrayTypeName","src":"9482:17:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$53751_storage_$dyn_storage_ptr","typeString":"struct IRouter.BlockCommitment[]"}},"visibility":"internal"},{"constant":false,"id":55456,"mutability":"mutable","name":"signatures","nameLocation":"9549:10:82","nodeType":"VariableDeclaration","scope":55507,"src":"9532:27:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55454,"name":"bytes","nodeType":"ElementaryTypeName","src":"9532:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55455,"nodeType":"ArrayTypeName","src":"9532:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9481:79:82"},"returnParameters":{"id":55460,"nodeType":"ParameterList","parameters":[],"src":"9603:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55598,"nodeType":"FunctionDefinition","src":"10106:951:82","nodes":[],"body":{"id":55597,"nodeType":"Block","src":"10245:812:82","nodes":[],"statements":[{"assignments":[55522],"declarations":[{"constant":false,"id":55522,"mutability":"mutable","name":"router","nameLocation":"10271:6:82","nodeType":"VariableDeclaration","scope":55597,"src":"10255:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55521,"nodeType":"UserDefinedTypeName","pathNode":{"id":55520,"name":"Storage","nameLocations":["10255:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"10255:7:82"},"referencedDeclaration":53731,"src":"10255:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55525,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55523,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"10280:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10280:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10255:38:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"},"id":55533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":55527,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55522,"src":"10312:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10319:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"10312:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55530,"indexExpression":{"id":55529,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55509,"src":"10325:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10312:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55531,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"10336:9:82","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$53735_$","typeString":"type(enum IRouter.CodeState)"}},"id":55532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10346:9:82","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":53734,"src":"10336:19:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"src":"10312:43:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206d7573742062652076616c696461746564206265666f72652070726f6772616d206372656174696f6e","id":55534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10357:48:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""},"value":"code must be validated before program creation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""}],"id":55526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10304:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10304:102:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55536,"nodeType":"ExpressionStatement","src":"10304:102:82"},{"assignments":[55538],"declarations":[{"constant":false,"id":55538,"mutability":"mutable","name":"baseFeeValue","nameLocation":"10425:12:82","nodeType":"VariableDeclaration","scope":55597,"src":"10417:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55537,"name":"uint128","nodeType":"ElementaryTypeName","src":"10417:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":55541,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55539,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55189,"src":"10440:7:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":55540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10440:9:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10417:32:82"},{"assignments":[55543],"declarations":[{"constant":false,"id":55543,"mutability":"mutable","name":"executableBalance","nameLocation":"10467:17:82","nodeType":"VariableDeclaration","scope":55597,"src":"10459:25:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55542,"name":"uint128","nodeType":"ElementaryTypeName","src":"10459:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":55547,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":55546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55544,"name":"baseFeeValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55538,"src":"10487:12:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3130","id":55545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10502:2:82","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"10487:17:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10459:45:82"},{"assignments":[55549],"declarations":[{"constant":false,"id":55549,"mutability":"mutable","name":"totalValue","nameLocation":"10523:10:82","nodeType":"VariableDeclaration","scope":55597,"src":"10515:18:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55548,"name":"uint128","nodeType":"ElementaryTypeName","src":"10515:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":55555,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":55554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":55552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55550,"name":"baseFeeValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55538,"src":"10536:12:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55551,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55543,"src":"10551:17:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10536:32:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55553,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55513,"src":"10571:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10536:41:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10515:62:82"},{"expression":{"arguments":[{"id":55557,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55549,"src":"10603:10:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":55556,"name":"_retrieveValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56159,"src":"10588:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":55558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10588:26:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55559,"nodeType":"ExpressionStatement","src":"10588:26:82"},{"assignments":[55561],"declarations":[{"constant":false,"id":55561,"mutability":"mutable","name":"actorId","nameLocation":"10783:7:82","nodeType":"VariableDeclaration","scope":55597,"src":"10775:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55560,"name":"address","nodeType":"ElementaryTypeName","src":"10775:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":55574,"initialValue":{"arguments":[{"expression":{"id":55564,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55522,"src":"10819:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10826:11:82","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":53700,"src":"10819:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":55569,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55509,"src":"10866:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55570,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55511,"src":"10874:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55567,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10849:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10853:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"10849:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10849:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55566,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10839:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10839:41:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55562,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"10793:6:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$41121_$","typeString":"type(library Clones)"}},"id":55563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10800:18:82","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":41039,"src":"10793:25:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":55573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10793:88:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10775:106:82"},{"expression":{"id":55581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":55575,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55522,"src":"10892:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10899:8:82","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":53728,"src":"10892:15:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":55579,"indexExpression":{"id":55577,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"10908:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10892:24:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55580,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55509,"src":"10919:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10892:33:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55582,"nodeType":"ExpressionStatement","src":"10892:33:82"},{"expression":{"id":55586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10935:22:82","subExpression":{"expression":{"id":55583,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55522,"src":"10935:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10942:13:82","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":53730,"src":"10935:20:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55587,"nodeType":"ExpressionStatement","src":"10935:22:82"},{"eventCall":{"arguments":[{"id":55589,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"10988:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55590,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55509,"src":"10997:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55588,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53816,"src":"10973:14:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":55591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10973:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55592,"nodeType":"EmitStatement","src":"10968:36:82"},{"expression":{"components":[{"id":55593,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"11023:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55594,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55543,"src":"11032:17:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":55595,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11022:28:82","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"functionReturnParameters":55519,"id":55596,"nodeType":"Return","src":"11015:35:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgramWithoutMessage","nameLocation":"10115:28:82","parameters":{"id":55514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55509,"mutability":"mutable","name":"codeId","nameLocation":"10152:6:82","nodeType":"VariableDeclaration","scope":55598,"src":"10144:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10144:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55511,"mutability":"mutable","name":"salt","nameLocation":"10168:4:82","nodeType":"VariableDeclaration","scope":55598,"src":"10160:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10160:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55513,"mutability":"mutable","name":"_value","nameLocation":"10182:6:82","nodeType":"VariableDeclaration","scope":55598,"src":"10174:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55512,"name":"uint128","nodeType":"ElementaryTypeName","src":"10174:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10143:46:82"},"returnParameters":{"id":55519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55598,"src":"10223:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55515,"name":"address","nodeType":"ElementaryTypeName","src":"10223:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55598,"src":"10232:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55517,"name":"uint128","nodeType":"ElementaryTypeName","src":"10232:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10222:18:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":55687,"nodeType":"FunctionDefinition","src":"11063:844:82","nodes":[],"body":{"id":55686,"nodeType":"Block","src":"11152:755:82","nodes":[],"statements":[{"assignments":[55608],"declarations":[{"constant":false,"id":55608,"mutability":"mutable","name":"router","nameLocation":"11178:6:82","nodeType":"VariableDeclaration","scope":55686,"src":"11162:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55607,"nodeType":"UserDefinedTypeName","pathNode":{"id":55606,"name":"Storage","nameLocations":["11162:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"11162:7:82"},"referencedDeclaration":53731,"src":"11162:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55611,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55609,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"11187:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11187:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11162:38:82"},{"assignments":[55613],"declarations":[{"constant":false,"id":55613,"mutability":"mutable","name":"threshold","nameLocation":"11219:9:82","nodeType":"VariableDeclaration","scope":55686,"src":"11211:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55612,"name":"uint256","nodeType":"ElementaryTypeName","src":"11211:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55616,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55614,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55026,"src":"11231:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":55615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11231:21:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11211:41:82"},{"assignments":[55618],"declarations":[{"constant":false,"id":55618,"mutability":"mutable","name":"messageHash","nameLocation":"11271:11:82","nodeType":"VariableDeclaration","scope":55686,"src":"11263:19:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11263:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55629,"initialValue":{"arguments":[{"arguments":[{"id":55626,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55600,"src":"11348:8:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55624,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11331:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11335:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"11331:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11331:26:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":55621,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11293:4:82","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$56269","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$56269","typeString":"contract Router"}],"id":55620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11285:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55619,"name":"address","nodeType":"ElementaryTypeName","src":"11285:7:82","typeDescriptions":{}}},"id":55622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11285:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11299:31:82","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":43448,"src":"11285:45:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes memory) pure returns (bytes32)"}},"id":55628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11285:73:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11263:95:82"},{"assignments":[55631],"declarations":[{"constant":false,"id":55631,"mutability":"mutable","name":"validSignatures","nameLocation":"11376:15:82","nodeType":"VariableDeclaration","scope":55686,"src":"11368:23:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55630,"name":"uint256","nodeType":"ElementaryTypeName","src":"11368:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55633,"initialValue":{"hexValue":"30","id":55632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11394:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11368:27:82"},{"body":{"id":55677,"nodeType":"Block","src":"11454:368:82","statements":[{"assignments":[55646],"declarations":[{"constant":false,"id":55646,"mutability":"mutable","name":"signature","nameLocation":"11483:9:82","nodeType":"VariableDeclaration","scope":55677,"src":"11468:24:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":55645,"name":"bytes","nodeType":"ElementaryTypeName","src":"11468:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55650,"initialValue":{"baseExpression":{"id":55647,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55603,"src":"11495:10:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":55649,"indexExpression":{"id":55648,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"11506:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11495:13:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"11468:40:82"},{"assignments":[55652],"declarations":[{"constant":false,"id":55652,"mutability":"mutable","name":"validator","nameLocation":"11531:9:82","nodeType":"VariableDeclaration","scope":55677,"src":"11523:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55651,"name":"address","nodeType":"ElementaryTypeName","src":"11523:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":55657,"initialValue":{"arguments":[{"id":55655,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55646,"src":"11563:9:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":55653,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55618,"src":"11543:11:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11555:7:82","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":43143,"src":"11543:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":55656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11543:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11523:50:82"},{"condition":{"baseExpression":{"expression":{"id":55658,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55608,"src":"11592:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11599:10:82","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":53714,"src":"11592:17:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":55661,"indexExpression":{"id":55660,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"11610:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11592:28:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":55675,"nodeType":"Block","src":"11742:70:82","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":55671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11768:5:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"696e636f7272656374207369676e6174757265","id":55672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11775:21:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""},"value":"incorrect signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""}],"id":55670,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11760:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11760:37:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55674,"nodeType":"ExpressionStatement","src":"11760:37:82"}]},"id":55676,"nodeType":"IfStatement","src":"11588:224:82","trueBody":{"id":55669,"nodeType":"Block","src":"11622:114:82","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11644:17:82","subExpression":{"id":55662,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"11646:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55664,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55613,"src":"11665:9:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11644:30:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55668,"nodeType":"IfStatement","src":"11640:82:82","trueBody":{"id":55667,"nodeType":"Block","src":"11676:46:82","statements":[{"id":55666,"nodeType":"Break","src":"11698:5:82"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55638,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"11426:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55639,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55603,"src":"11430:10:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":55640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11441:6:82","memberName":"length","nodeType":"MemberAccess","src":"11430:17:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11426:21:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55678,"initializationExpression":{"assignments":[55635],"declarations":[{"constant":false,"id":55635,"mutability":"mutable","name":"i","nameLocation":"11419:1:82","nodeType":"VariableDeclaration","scope":55678,"src":"11411:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55634,"name":"uint256","nodeType":"ElementaryTypeName","src":"11411:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55637,"initialValue":{"hexValue":"30","id":55636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11423:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11411:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11449:3:82","subExpression":{"id":55642,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"11449:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55644,"nodeType":"ExpressionStatement","src":"11449:3:82"},"nodeType":"ForStatement","src":"11406:416:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55680,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"11840:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":55681,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55613,"src":"11859:9:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11840:28:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420656e6f7567682076616c6964207369676e617475726573","id":55683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11870:29:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""},"value":"not enough valid signatures"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""}],"id":55679,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11832:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11832:68:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55685,"nodeType":"ExpressionStatement","src":"11832:68:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateSignatures","nameLocation":"11072:19:82","parameters":{"id":55604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55600,"mutability":"mutable","name":"dataHash","nameLocation":"11100:8:82","nodeType":"VariableDeclaration","scope":55687,"src":"11092:16:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11092:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55603,"mutability":"mutable","name":"signatures","nameLocation":"11127:10:82","nodeType":"VariableDeclaration","scope":55687,"src":"11110:27:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55601,"name":"bytes","nodeType":"ElementaryTypeName","src":"11110:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55602,"nodeType":"ArrayTypeName","src":"11110:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11091:47:82"},"returnParameters":{"id":55605,"nodeType":"ParameterList","parameters":[],"src":"11152:0:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":55783,"nodeType":"FunctionDefinition","src":"11913:1244:82","nodes":[],"body":{"id":55782,"nodeType":"Block","src":"12003:1154:82","nodes":[],"statements":[{"assignments":[55697],"declarations":[{"constant":false,"id":55697,"mutability":"mutable","name":"router","nameLocation":"12029:6:82","nodeType":"VariableDeclaration","scope":55782,"src":"12013:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55696,"nodeType":"UserDefinedTypeName","pathNode":{"id":55695,"name":"Storage","nameLocations":["12013:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"12013:7:82"},"referencedDeclaration":53731,"src":"12013:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55700,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55698,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"12038:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12038:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12013:38:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55702,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55697,"src":"12083:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12090:23:82","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":53704,"src":"12083:30:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55704,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12117:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12133:18:82","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":53744,"src":"12117:34:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12083:68:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726576696f757320636f6d6d69746d656e742068617368","id":55707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12153:34:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""},"value":"invalid previous commitment hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""}],"id":55701,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12062:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12062:135:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55709,"nodeType":"ExpressionStatement","src":"12062:135:82"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55712,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12234:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12250:13:82","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":53746,"src":"12234:29:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55711,"name":"_isPredecessorHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55827,"src":"12215:18:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":55714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12215:49:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f756e64","id":55715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12266:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""},"value":"allowed predecessor block not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""}],"id":55710,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12207:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12207:97:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55717,"nodeType":"ExpressionStatement","src":"12207:97:82"},{"expression":{"id":55723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55718,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55697,"src":"12444:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12451:23:82","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":53704,"src":"12444:30:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55721,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12477:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12493:9:82","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":53742,"src":"12477:25:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12444:58:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55724,"nodeType":"ExpressionStatement","src":"12444:58:82"},{"assignments":[55726],"declarations":[{"constant":false,"id":55726,"mutability":"mutable","name":"transitionsHashes","nameLocation":"12526:17:82","nodeType":"VariableDeclaration","scope":55782,"src":"12513:30:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55725,"name":"bytes","nodeType":"ElementaryTypeName","src":"12513:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55727,"nodeType":"VariableDeclarationStatement","src":"12513:30:82"},{"body":{"id":55763,"nodeType":"Block","src":"12619:255:82","statements":[{"assignments":[55742],"declarations":[{"constant":false,"id":55742,"mutability":"mutable","name":"stateTransition","nameLocation":"12658:15:82","nodeType":"VariableDeclaration","scope":55763,"src":"12633:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":55741,"nodeType":"UserDefinedTypeName","pathNode":{"id":55740,"name":"StateTransition","nameLocations":["12633:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53766,"src":"12633:15:82"},"referencedDeclaration":53766,"src":"12633:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"id":55747,"initialValue":{"baseExpression":{"expression":{"id":55743,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12676:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12692:11:82","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":53750,"src":"12676:27:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$53766_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":55746,"indexExpression":{"id":55745,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55729,"src":"12704:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12676:30:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"12633:73:82"},{"assignments":[55749],"declarations":[{"constant":false,"id":55749,"mutability":"mutable","name":"transitionHash","nameLocation":"12729:14:82","nodeType":"VariableDeclaration","scope":55763,"src":"12721:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12721:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55753,"initialValue":{"arguments":[{"id":55751,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55742,"src":"12765:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}],"id":55750,"name":"_doStateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56027,"src":"12746:18:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StateTransition_$53766_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.StateTransition calldata) returns (bytes32)"}},"id":55752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12746:35:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12721:60:82"},{"expression":{"id":55761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55754,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55726,"src":"12796:17:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55758,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55726,"src":"12829:17:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":55759,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55749,"src":"12848:14:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55755,"name":"bytes","nodeType":"ElementaryTypeName","src":"12816:5:82","typeDescriptions":{}}},"id":55757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12822:6:82","memberName":"concat","nodeType":"MemberAccess","src":"12816:12:82","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:47:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12796:67:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55762,"nodeType":"ExpressionStatement","src":"12796:67:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55732,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55729,"src":"12574:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":55733,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12578:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12594:11:82","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":53750,"src":"12578:27:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$53766_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":55735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12606:6:82","memberName":"length","nodeType":"MemberAccess","src":"12578:34:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12574:38:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55764,"initializationExpression":{"assignments":[55729],"declarations":[{"constant":false,"id":55729,"mutability":"mutable","name":"i","nameLocation":"12567:1:82","nodeType":"VariableDeclaration","scope":55764,"src":"12559:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55728,"name":"uint256","nodeType":"ElementaryTypeName","src":"12559:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55731,"initialValue":{"hexValue":"30","id":55730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12571:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12559:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12614:3:82","subExpression":{"id":55737,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55729,"src":"12614:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55739,"nodeType":"ExpressionStatement","src":"12614:3:82"},"nodeType":"ForStatement","src":"12554:320:82"},{"eventCall":{"arguments":[{"expression":{"id":55766,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12904:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12920:9:82","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":53742,"src":"12904:25:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55765,"name":"BlockCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"12889:14:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":55768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12889:41:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55769,"nodeType":"EmitStatement","src":"12884:46:82"},{"expression":{"arguments":[{"expression":{"id":55771,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12982:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12998:9:82","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":53742,"src":"12982:25:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":55773,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"13021:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13037:18:82","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":53744,"src":"13021:34:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":55775,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"13069:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13085:13:82","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":53746,"src":"13069:29:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":55778,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55726,"src":"13122:17:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55777,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13112:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13112:28:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55770,"name":"_blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56051,"src":"12948:20:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":55780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12948:202:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":55694,"id":55781,"nodeType":"Return","src":"12941:209:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitBlock","nameLocation":"11922:12:82","parameters":{"id":55691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55690,"mutability":"mutable","name":"blockCommitment","nameLocation":"11960:15:82","nodeType":"VariableDeclaration","scope":55783,"src":"11935:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":55689,"nodeType":"UserDefinedTypeName","pathNode":{"id":55688,"name":"BlockCommitment","nameLocations":["11935:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53751,"src":"11935:15:82"},"referencedDeclaration":53751,"src":"11935:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"src":"11934:42:82"},"returnParameters":{"id":55694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55693,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55783,"src":"11994:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11994:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11993:9:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":55827,"nodeType":"FunctionDefinition","src":"13163:338:82","nodes":[],"body":{"id":55826,"nodeType":"Block","src":"13233:268:82","nodes":[],"statements":[{"body":{"id":55822,"nodeType":"Block","src":"13290:183:82","statements":[{"assignments":[55804],"declarations":[{"constant":false,"id":55804,"mutability":"mutable","name":"ret","nameLocation":"13312:3:82","nodeType":"VariableDeclaration","scope":55822,"src":"13304:11:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13304:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55808,"initialValue":{"arguments":[{"id":55806,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"13328:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55805,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"13318:9:82","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":55807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13318:12:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13304:26:82"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55809,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55804,"src":"13348:3:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55810,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55785,"src":"13355:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13348:11:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55815,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55804,"src":"13415:3:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13422:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13415:8:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55820,"nodeType":"IfStatement","src":"13411:52:82","trueBody":{"id":55819,"nodeType":"Block","src":"13425:38:82","statements":[{"id":55818,"nodeType":"Break","src":"13443:5:82"}]}},"id":55821,"nodeType":"IfStatement","src":"13344:119:82","trueBody":{"id":55814,"nodeType":"Block","src":"13361:44:82","statements":[{"expression":{"hexValue":"74727565","id":55812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13386:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":55789,"id":55813,"nodeType":"Return","src":"13379:11:82"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55797,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"13278:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":55798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13282:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13278:5:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55823,"initializationExpression":{"assignments":[55791],"declarations":[{"constant":false,"id":55791,"mutability":"mutable","name":"i","nameLocation":"13256:1:82","nodeType":"VariableDeclaration","scope":55823,"src":"13248:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55790,"name":"uint256","nodeType":"ElementaryTypeName","src":"13248:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55796,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55792,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13260:5:82","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":55793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13266:6:82","memberName":"number","nodeType":"MemberAccess","src":"13260:12:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13275:1:82","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13260:16:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13248:28:82"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":55801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13285:3:82","subExpression":{"id":55800,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"13285:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55802,"nodeType":"ExpressionStatement","src":"13285:3:82"},"nodeType":"ForStatement","src":"13243:230:82"},{"expression":{"hexValue":"66616c7365","id":55824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13489:5:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":55789,"id":55825,"nodeType":"Return","src":"13482:12:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isPredecessorHash","nameLocation":"13172:18:82","parameters":{"id":55786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55785,"mutability":"mutable","name":"hash","nameLocation":"13199:4:82","nodeType":"VariableDeclaration","scope":55827,"src":"13191:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13191:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13190:14:82"},"returnParameters":{"id":55789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55827,"src":"13227:4:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55787,"name":"bool","nodeType":"ElementaryTypeName","src":"13227:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13226:6:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":56027,"nodeType":"FunctionDefinition","src":"13507:2170:82","nodes":[],"body":{"id":56026,"nodeType":"Block","src":"13603:2074:82","nodes":[],"statements":[{"assignments":[55837],"declarations":[{"constant":false,"id":55837,"mutability":"mutable","name":"router","nameLocation":"13629:6:82","nodeType":"VariableDeclaration","scope":56026,"src":"13613:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55836,"nodeType":"UserDefinedTypeName","pathNode":{"id":55835,"name":"Storage","nameLocations":["13613:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"13613:7:82"},"referencedDeclaration":53731,"src":"13613:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55840,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55838,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"13638:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13638:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13613:38:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":55842,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55837,"src":"13670:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13677:8:82","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":53728,"src":"13670:15:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":55846,"indexExpression":{"expression":{"id":55844,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"13686:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13702:7:82","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":53753,"src":"13686:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13670:40:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":55847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13714:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13670:45:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f756c646e277420706572666f726d207472616e736974696f6e20666f7220756e6b6e6f776e2070726f6772616d","id":55849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13717:49:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""},"value":"couldn't perform transition for unknown program"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""}],"id":55841,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13662:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13662:105:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55851,"nodeType":"ExpressionStatement","src":"13662:105:82"},{"assignments":[55854],"declarations":[{"constant":false,"id":55854,"mutability":"mutable","name":"wrappedVaraActor","nameLocation":"13791:16:82","nodeType":"VariableDeclaration","scope":56026,"src":"13778:29:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"},"typeName":{"id":55853,"nodeType":"UserDefinedTypeName","pathNode":{"id":55852,"name":"IWrappedVara","nameLocations":["13778:12:82"],"nodeType":"IdentifierPath","referencedDeclaration":54024,"src":"13778:12:82"},"referencedDeclaration":54024,"src":"13778:12:82","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":55859,"initialValue":{"arguments":[{"expression":{"id":55856,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55837,"src":"13823:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13830:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"13823:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55855,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54024,"src":"13810:12:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$54024_$","typeString":"type(contract IWrappedVara)"}},"id":55858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13810:32:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"13778:64:82"},{"expression":{"arguments":[{"expression":{"id":55863,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"13878:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13894:7:82","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":53753,"src":"13878:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55865,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"13903:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13919:14:82","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":53757,"src":"13903:30:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":55860,"name":"wrappedVaraActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55854,"src":"13852:16:82","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"id":55862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13869:8:82","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":41873,"src":"13852:25:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":55867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13852:82:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55868,"nodeType":"ExpressionStatement","src":"13852:82:82"},{"assignments":[55871],"declarations":[{"constant":false,"id":55871,"mutability":"mutable","name":"mirrorActor","nameLocation":"13953:11:82","nodeType":"VariableDeclaration","scope":56026,"src":"13945:19:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"},"typeName":{"id":55870,"nodeType":"UserDefinedTypeName","pathNode":{"id":55869,"name":"IMirror","nameLocations":["13945:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53648,"src":"13945:7:82"},"referencedDeclaration":53648,"src":"13945:7:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"visibility":"internal"}],"id":55876,"initialValue":{"arguments":[{"expression":{"id":55873,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"13975:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13991:7:82","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":53753,"src":"13975:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55872,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"13967:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$53648_$","typeString":"type(contract IMirror)"}},"id":55875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:32:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"13945:54:82"},{"assignments":[55878],"declarations":[{"constant":false,"id":55878,"mutability":"mutable","name":"valueClaimsBytes","nameLocation":"14023:16:82","nodeType":"VariableDeclaration","scope":56026,"src":"14010:29:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55877,"name":"bytes","nodeType":"ElementaryTypeName","src":"14010:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55879,"nodeType":"VariableDeclarationStatement","src":"14010:29:82"},{"body":{"id":55928,"nodeType":"Block","src":"14115:367:82","statements":[{"assignments":[55894],"declarations":[{"constant":false,"id":55894,"mutability":"mutable","name":"valueClaim","nameLocation":"14149:10:82","nodeType":"VariableDeclaration","scope":55928,"src":"14129:30:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim"},"typeName":{"id":55893,"nodeType":"UserDefinedTypeName","pathNode":{"id":55892,"name":"ValueClaim","nameLocations":["14129:10:82"],"nodeType":"IdentifierPath","referencedDeclaration":53773,"src":"14129:10:82"},"referencedDeclaration":53773,"src":"14129:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_storage_ptr","typeString":"struct IRouter.ValueClaim"}},"visibility":"internal"}],"id":55899,"initialValue":{"baseExpression":{"expression":{"id":55895,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"14162:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14178:11:82","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":53761,"src":"14162:27:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$53773_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":55898,"indexExpression":{"id":55897,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55881,"src":"14190:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14162:30:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"14129:63:82"},{"expression":{"id":55915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55900,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55878,"src":"14207:16:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55904,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55878,"src":"14256:16:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":55907,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14291:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14302:9:82","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":53768,"src":"14291:20:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":55909,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14313:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14324:11:82","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":53770,"src":"14313:22:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55911,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14337:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14348:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":53772,"src":"14337:16:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":55905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14274:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14278:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"14274:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14274:80:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14226:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55901,"name":"bytes","nodeType":"ElementaryTypeName","src":"14226:5:82","typeDescriptions":{}}},"id":55903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14232:6:82","memberName":"concat","nodeType":"MemberAccess","src":"14226:12:82","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14226:142:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14207:161:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55916,"nodeType":"ExpressionStatement","src":"14207:161:82"},{"expression":{"arguments":[{"expression":{"id":55920,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14408:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14419:9:82","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":53768,"src":"14408:20:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":55922,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14430:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14441:11:82","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":53770,"src":"14430:22:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55924,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14454:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14465:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":53772,"src":"14454:16:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":55917,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55871,"src":"14383:11:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14395:12:82","memberName":"valueClaimed","nodeType":"MemberAccess","referencedDeclaration":53624,"src":"14383:24:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128) external"}},"id":55926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14383:88:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55927,"nodeType":"ExpressionStatement","src":"14383:88:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55884,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55881,"src":"14070:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":55885,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"14074:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14090:11:82","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":53761,"src":"14074:27:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$53773_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":55887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14102:6:82","memberName":"length","nodeType":"MemberAccess","src":"14074:34:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14070:38:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55929,"initializationExpression":{"assignments":[55881],"declarations":[{"constant":false,"id":55881,"mutability":"mutable","name":"i","nameLocation":"14063:1:82","nodeType":"VariableDeclaration","scope":55929,"src":"14055:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55880,"name":"uint256","nodeType":"ElementaryTypeName","src":"14055:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55883,"initialValue":{"hexValue":"30","id":55882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14067:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14055:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14110:3:82","subExpression":{"id":55889,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55881,"src":"14110:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55891,"nodeType":"ExpressionStatement","src":"14110:3:82"},"nodeType":"ForStatement","src":"14050:432:82"},{"assignments":[55931],"declarations":[{"constant":false,"id":55931,"mutability":"mutable","name":"messagesHashes","nameLocation":"14505:14:82","nodeType":"VariableDeclaration","scope":56026,"src":"14492:27:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55930,"name":"bytes","nodeType":"ElementaryTypeName","src":"14492:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55932,"nodeType":"VariableDeclarationStatement","src":"14492:27:82"},{"body":{"id":56002,"nodeType":"Block","src":"14592:764:82","statements":[{"assignments":[55947],"declarations":[{"constant":false,"id":55947,"mutability":"mutable","name":"outgoingMessage","nameLocation":"14631:15:82","nodeType":"VariableDeclaration","scope":56002,"src":"14606:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":55946,"nodeType":"UserDefinedTypeName","pathNode":{"id":55945,"name":"OutgoingMessage","nameLocations":["14606:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53785,"src":"14606:15:82"},"referencedDeclaration":53785,"src":"14606:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"id":55952,"initialValue":{"baseExpression":{"expression":{"id":55948,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"14649:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14665:8:82","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":53765,"src":"14649:24:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$53785_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":55951,"indexExpression":{"id":55950,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55934,"src":"14674:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14649:27:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"nodeType":"VariableDeclarationStatement","src":"14606:70:82"},{"expression":{"id":55962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55953,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55931,"src":"14691:14:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55957,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55931,"src":"14721:14:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":55959,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14758:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}],"id":55958,"name":"_outgoingMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56107,"src":"14737:20:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_OutgoingMessage_$53785_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.OutgoingMessage calldata) pure returns (bytes32)"}},"id":55960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14737:37:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14708:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55954,"name":"bytes","nodeType":"ElementaryTypeName","src":"14708:5:82","typeDescriptions":{}}},"id":55956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14714:6:82","memberName":"concat","nodeType":"MemberAccess","src":"14708:12:82","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14708:67:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14691:84:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55963,"nodeType":"ExpressionStatement","src":"14691:84:82"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":55964,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14794:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14810:12:82","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":53784,"src":"14794:28:82","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$53790_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":55966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14823:2:82","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":53787,"src":"14794:31:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14829:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14794:36:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":56000,"nodeType":"Block","src":"15029:317:82","statements":[{"expression":{"arguments":[{"expression":{"id":55986,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"15090:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15106:11:82","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":53777,"src":"15090:27:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55988,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"15139:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15155:7:82","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":53779,"src":"15139:23:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":55990,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"15184:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15200:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":53781,"src":"15184:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":55992,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"15227:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15243:12:82","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":53784,"src":"15227:28:82","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$53790_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":55994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15256:2:82","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":53787,"src":"15227:31:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":55995,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"15280:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15296:12:82","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":53784,"src":"15280:28:82","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$53790_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":55997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15309:4:82","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":53789,"src":"15280:33:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":55983,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55871,"src":"15047:11:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15059:9:82","memberName":"replySent","nodeType":"MemberAccess","referencedDeclaration":53615,"src":"15047:21:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (address,bytes memory,uint128,bytes32,bytes4) external"}},"id":55998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15047:284:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55999,"nodeType":"ExpressionStatement","src":"15047:284:82"}]},"id":56001,"nodeType":"IfStatement","src":"14790:556:82","trueBody":{"id":55982,"nodeType":"Block","src":"14832:191:82","statements":[{"expression":{"arguments":[{"expression":{"id":55972,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14895:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14911:2:82","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":53775,"src":"14895:18:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":55974,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14915:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14931:11:82","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":53777,"src":"14915:27:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55976,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14944:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14960:7:82","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":53779,"src":"14944:23:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":55978,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14969:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14985:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":53781,"src":"14969:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":55969,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55871,"src":"14850:11:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14862:11:82","memberName":"messageSent","nodeType":"MemberAccess","referencedDeclaration":53602,"src":"14850:23:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128) external"}},"id":55980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14850:158:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55981,"nodeType":"ExpressionStatement","src":"14850:158:82"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55934,"src":"14550:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":55938,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"14554:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14570:8:82","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":53765,"src":"14554:24:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$53785_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":55940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14579:6:82","memberName":"length","nodeType":"MemberAccess","src":"14554:31:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14550:35:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56003,"initializationExpression":{"assignments":[55934],"declarations":[{"constant":false,"id":55934,"mutability":"mutable","name":"i","nameLocation":"14543:1:82","nodeType":"VariableDeclaration","scope":56003,"src":"14535:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55933,"name":"uint256","nodeType":"ElementaryTypeName","src":"14535:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55936,"initialValue":{"hexValue":"30","id":55935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14547:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14535:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14587:3:82","subExpression":{"id":55942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55934,"src":"14587:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55944,"nodeType":"ExpressionStatement","src":"14587:3:82"},"nodeType":"ForStatement","src":"14530:826:82"},{"expression":{"arguments":[{"expression":{"id":56007,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"15390:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":56008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15406:12:82","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":53755,"src":"15390:28:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":56004,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55871,"src":"15366:11:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":56006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15378:11:82","memberName":"updateState","nodeType":"MemberAccess","referencedDeclaration":53591,"src":"15366:23:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":56009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15366:53:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56010,"nodeType":"ExpressionStatement","src":"15366:53:82"},{"expression":{"arguments":[{"expression":{"id":56012,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"15471:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":56013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15487:7:82","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":53753,"src":"15471:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":56014,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"15508:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":56015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15524:12:82","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":53755,"src":"15508:28:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":56016,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"15550:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":56017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15566:14:82","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":53757,"src":"15550:30:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":56019,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55878,"src":"15604:16:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56018,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15594:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15594:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":56022,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55931,"src":"15645:14:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56021,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15635:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15635:25:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":56011,"name":"_stateTransitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56078,"src":"15437:20:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_uint128_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,uint128,bytes32,bytes32) pure returns (bytes32)"}},"id":56024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15437:233:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":55834,"id":56025,"nodeType":"Return","src":"15430:240:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_doStateTransition","nameLocation":"13516:18:82","parameters":{"id":55831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55830,"mutability":"mutable","name":"stateTransition","nameLocation":"13560:15:82","nodeType":"VariableDeclaration","scope":56027,"src":"13535:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":55829,"nodeType":"UserDefinedTypeName","pathNode":{"id":55828,"name":"StateTransition","nameLocations":["13535:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53766,"src":"13535:15:82"},"referencedDeclaration":53766,"src":"13535:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"src":"13534:42:82"},"returnParameters":{"id":55834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56027,"src":"13594:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13594:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13593:9:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":56051,"nodeType":"FunctionDefinition","src":"15683:320:82","nodes":[],"body":{"id":56050,"nodeType":"Block","src":"15883:120:82","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":56043,"name":"blockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56029,"src":"15927:9:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56044,"name":"prevCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56031,"src":"15938:18:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56045,"name":"predBlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56033,"src":"15958:13:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56046,"name":"transitionsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56035,"src":"15973:21:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":56041,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15910:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15914:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"15910:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15910:85:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56040,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15900:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15900:96:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":56039,"id":56049,"nodeType":"Return","src":"15893:103:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_blockCommitmentHash","nameLocation":"15692:20:82","parameters":{"id":56036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56029,"mutability":"mutable","name":"blockHash","nameLocation":"15730:9:82","nodeType":"VariableDeclaration","scope":56051,"src":"15722:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56028,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15722:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56031,"mutability":"mutable","name":"prevCommitmentHash","nameLocation":"15757:18:82","nodeType":"VariableDeclaration","scope":56051,"src":"15749:26:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15749:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56033,"mutability":"mutable","name":"predBlockHash","nameLocation":"15793:13:82","nodeType":"VariableDeclaration","scope":56051,"src":"15785:21:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15785:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56035,"mutability":"mutable","name":"transitionsHashesHash","nameLocation":"15824:21:82","nodeType":"VariableDeclaration","scope":56051,"src":"15816:29:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15816:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15712:139:82"},"returnParameters":{"id":56039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56051,"src":"15874:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15874:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15873:9:82"},"scope":56269,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":56078,"nodeType":"FunctionDefinition","src":"16009:350:82","nodes":[],"body":{"id":56077,"nodeType":"Block","src":"16232:127:82","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":56069,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56053,"src":"16276:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56070,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56055,"src":"16285:12:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56071,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56057,"src":"16299:14:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":56072,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56059,"src":"16315:15:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56073,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56061,"src":"16332:18:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":56067,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16259:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16263:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"16259:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16259:92:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56066,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16249:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16249:103:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":56065,"id":56076,"nodeType":"Return","src":"16242:110:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_stateTransitionHash","nameLocation":"16018:20:82","parameters":{"id":56062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56053,"mutability":"mutable","name":"actorId","nameLocation":"16056:7:82","nodeType":"VariableDeclaration","scope":56078,"src":"16048:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56052,"name":"address","nodeType":"ElementaryTypeName","src":"16048:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56055,"mutability":"mutable","name":"newStateHash","nameLocation":"16081:12:82","nodeType":"VariableDeclaration","scope":56078,"src":"16073:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16073:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56057,"mutability":"mutable","name":"valueToReceive","nameLocation":"16111:14:82","nodeType":"VariableDeclaration","scope":56078,"src":"16103:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":56056,"name":"uint128","nodeType":"ElementaryTypeName","src":"16103:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":56059,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"16143:15:82","nodeType":"VariableDeclaration","scope":56078,"src":"16135:23:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16135:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56061,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"16176:18:82","nodeType":"VariableDeclaration","scope":56078,"src":"16168:26:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16168:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16038:162:82"},"returnParameters":{"id":56065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56078,"src":"16223:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16223:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16222:9:82"},"scope":56269,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":56107,"nodeType":"FunctionDefinition","src":"16365:451:82","nodes":[],"body":{"id":56106,"nodeType":"Block","src":"16468:348:82","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":56089,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16542:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16558:2:82","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":53775,"src":"16542:18:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":56091,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16578:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16594:11:82","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":53777,"src":"16578:27:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":56093,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16623:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16639:7:82","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":53779,"src":"16623:23:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":56095,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16664:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16680:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":53781,"src":"16664:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":56097,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16703:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16719:12:82","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":53784,"src":"16703:28:82","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$53790_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":56099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16732:2:82","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":53787,"src":"16703:31:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":56100,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16752:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16768:12:82","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":53784,"src":"16752:28:82","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$53790_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":56102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16781:4:82","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":53789,"src":"16752:33:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":56087,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16508:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16512:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"16508:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16508:291:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56086,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16485:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16485:324:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":56085,"id":56105,"nodeType":"Return","src":"16478:331:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_outgoingMessageHash","nameLocation":"16374:20:82","parameters":{"id":56082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56081,"mutability":"mutable","name":"outgoingMessage","nameLocation":"16420:15:82","nodeType":"VariableDeclaration","scope":56107,"src":"16395:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":56080,"nodeType":"UserDefinedTypeName","pathNode":{"id":56079,"name":"OutgoingMessage","nameLocations":["16395:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53785,"src":"16395:15:82"},"referencedDeclaration":53785,"src":"16395:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"src":"16394:42:82"},"returnParameters":{"id":56085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56107,"src":"16459:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16459:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16458:9:82"},"scope":56269,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":56126,"nodeType":"FunctionDefinition","src":"16822:192:82","nodes":[],"body":{"id":56125,"nodeType":"Block","src":"16922:92:82","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":56118,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56110,"src":"16966:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":56119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16981:2:82","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":53737,"src":"16966:17:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":56120,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56110,"src":"16985:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":56121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17000:5:82","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":53739,"src":"16985:20:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":56116,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16949:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16953:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"16949:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16949:57:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56115,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16939:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16939:68:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":56114,"id":56124,"nodeType":"Return","src":"16932:75:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_codeCommitmentHash","nameLocation":"16831:19:82","parameters":{"id":56111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56110,"mutability":"mutable","name":"codeCommitment","nameLocation":"16875:14:82","nodeType":"VariableDeclaration","scope":56126,"src":"16851:38:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":56109,"nodeType":"UserDefinedTypeName","pathNode":{"id":56108,"name":"CodeCommitment","nameLocations":["16851:14:82"],"nodeType":"IdentifierPath","referencedDeclaration":53740,"src":"16851:14:82"},"referencedDeclaration":53740,"src":"16851:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"src":"16850:40:82"},"returnParameters":{"id":56114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56126,"src":"16913:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16913:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16912:9:82"},"scope":56269,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":56159,"nodeType":"FunctionDefinition","src":"17020:257:82","nodes":[],"body":{"id":56158,"nodeType":"Block","src":"17068:209:82","nodes":[],"statements":[{"assignments":[56133],"declarations":[{"constant":false,"id":56133,"mutability":"mutable","name":"router","nameLocation":"17094:6:82","nodeType":"VariableDeclaration","scope":56158,"src":"17078:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":56132,"nodeType":"UserDefinedTypeName","pathNode":{"id":56131,"name":"Storage","nameLocations":["17078:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"17078:7:82"},"referencedDeclaration":53731,"src":"17078:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":56136,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56134,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"17103:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":56135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17103:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17078:38:82"},{"assignments":[56138],"declarations":[{"constant":false,"id":56138,"mutability":"mutable","name":"success","nameLocation":"17132:7:82","nodeType":"VariableDeclaration","scope":56158,"src":"17127:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56137,"name":"bool","nodeType":"ElementaryTypeName","src":"17127:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":56152,"initialValue":{"arguments":[{"expression":{"id":56144,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"17182:2:82","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":56145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17185:6:82","memberName":"origin","nodeType":"MemberAccess","src":"17182:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":56148,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17201:4:82","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$56269","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$56269","typeString":"contract Router"}],"id":56147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17193:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56146,"name":"address","nodeType":"ElementaryTypeName","src":"17193:7:82","typeDescriptions":{}}},"id":56149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17193:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56150,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56128,"src":"17208:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"expression":{"id":56140,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56133,"src":"17149:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17156:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"17149:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56139,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41906,"src":"17142:6:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$41906_$","typeString":"type(contract IERC20)"}},"id":56142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17142:26:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$41906","typeString":"contract IERC20"}},"id":56143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17169:12:82","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":41905,"src":"17142:39:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":56151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17142:73:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17127:88:82"},{"expression":{"arguments":[{"id":56154,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56138,"src":"17234:7:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207265747269657665205756617261","id":56155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17243:26:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""},"value":"failed to retrieve WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""}],"id":56153,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17226:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17226:44:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56157,"nodeType":"ExpressionStatement","src":"17226:44:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrieveValue","nameLocation":"17029:14:82","parameters":{"id":56129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56128,"mutability":"mutable","name":"_value","nameLocation":"17052:6:82","nodeType":"VariableDeclaration","scope":56159,"src":"17044:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":56127,"name":"uint128","nodeType":"ElementaryTypeName","src":"17044:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"17043:16:82"},"returnParameters":{"id":56130,"nodeType":"ParameterList","parameters":[],"src":"17068:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":56200,"nodeType":"FunctionDefinition","src":"17283:317:82","nodes":[],"body":{"id":56199,"nodeType":"Block","src":"17319:281:82","nodes":[],"statements":[{"assignments":[56164],"declarations":[{"constant":false,"id":56164,"mutability":"mutable","name":"router","nameLocation":"17345:6:82","nodeType":"VariableDeclaration","scope":56199,"src":"17329:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":56163,"nodeType":"UserDefinedTypeName","pathNode":{"id":56162,"name":"Storage","nameLocations":["17329:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"17329:7:82"},"referencedDeclaration":53731,"src":"17329:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":56167,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56165,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"17354:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":56166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17354:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17329:38:82"},{"body":{"id":56193,"nodeType":"Block","src":"17437:118:82","statements":[{"assignments":[56181],"declarations":[{"constant":false,"id":56181,"mutability":"mutable","name":"validator","nameLocation":"17459:9:82","nodeType":"VariableDeclaration","scope":56193,"src":"17451:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56180,"name":"address","nodeType":"ElementaryTypeName","src":"17451:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56186,"initialValue":{"baseExpression":{"expression":{"id":56182,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56164,"src":"17471:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17478:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"17471:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56185,"indexExpression":{"id":56184,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56169,"src":"17493:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17471:24:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17451:44:82"},{"expression":{"id":56191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17509:35:82","subExpression":{"baseExpression":{"expression":{"id":56187,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56164,"src":"17516:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17523:10:82","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":53714,"src":"17516:17:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":56190,"indexExpression":{"id":56189,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56181,"src":"17534:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17516:28:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56192,"nodeType":"ExpressionStatement","src":"17509:35:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56172,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56169,"src":"17398:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":56173,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56164,"src":"17402:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17409:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"17402:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17424:6:82","memberName":"length","nodeType":"MemberAccess","src":"17402:28:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17398:32:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56194,"initializationExpression":{"assignments":[56169],"declarations":[{"constant":false,"id":56169,"mutability":"mutable","name":"i","nameLocation":"17391:1:82","nodeType":"VariableDeclaration","scope":56194,"src":"17383:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56168,"name":"uint256","nodeType":"ElementaryTypeName","src":"17383:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56171,"initialValue":{"hexValue":"30","id":56170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17395:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17383:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":56178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17432:3:82","subExpression":{"id":56177,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56169,"src":"17432:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56179,"nodeType":"ExpressionStatement","src":"17432:3:82"},"nodeType":"ForStatement","src":"17378:177:82"},{"expression":{"id":56197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17565:28:82","subExpression":{"expression":{"id":56195,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56164,"src":"17572:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17579:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"17572:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56198,"nodeType":"ExpressionStatement","src":"17565:28:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_cleanValidators","nameLocation":"17292:16:82","parameters":{"id":56160,"nodeType":"ParameterList","parameters":[],"src":"17308:2:82"},"returnParameters":{"id":56161,"nodeType":"ParameterList","parameters":[],"src":"17319:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":56255,"nodeType":"FunctionDefinition","src":"17606:442:82","nodes":[],"body":{"id":56254,"nodeType":"Block","src":"17673:375:82","nodes":[],"statements":[{"assignments":[56208],"declarations":[{"constant":false,"id":56208,"mutability":"mutable","name":"router","nameLocation":"17699:6:82","nodeType":"VariableDeclaration","scope":56254,"src":"17683:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":56207,"nodeType":"UserDefinedTypeName","pathNode":{"id":56206,"name":"Storage","nameLocations":["17683:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"17683:7:82"},"referencedDeclaration":53731,"src":"17683:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":56211,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56209,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"17708:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":56210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17708:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17683:38:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":56213,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56208,"src":"17740:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17747:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"17740:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17762:6:82","memberName":"length","nodeType":"MemberAccess","src":"17740:28:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":56216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17772:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17740:33:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726576696f75732076616c696461746f727320776572656e27742072656d6f766564","id":56218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17775:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""},"value":"previous validators weren't removed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""}],"id":56212,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17732:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17732:81:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56220,"nodeType":"ExpressionStatement","src":"17732:81:82"},{"body":{"id":56246,"nodeType":"Block","src":"17878:113:82","statements":[{"assignments":[56233],"declarations":[{"constant":false,"id":56233,"mutability":"mutable","name":"validator","nameLocation":"17900:9:82","nodeType":"VariableDeclaration","scope":56246,"src":"17892:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56232,"name":"address","nodeType":"ElementaryTypeName","src":"17892:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56237,"initialValue":{"baseExpression":{"id":56234,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56203,"src":"17912:16:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56236,"indexExpression":{"id":56235,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56222,"src":"17929:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17912:19:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17892:39:82"},{"expression":{"id":56244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":56238,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56208,"src":"17945:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17952:10:82","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":53714,"src":"17945:17:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":56242,"indexExpression":{"id":56240,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56233,"src":"17963:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17945:28:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":56243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17976:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17945:35:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56245,"nodeType":"ExpressionStatement","src":"17945:35:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56222,"src":"17844:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":56226,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56203,"src":"17848:16:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17865:6:82","memberName":"length","nodeType":"MemberAccess","src":"17848:23:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17844:27:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56247,"initializationExpression":{"assignments":[56222],"declarations":[{"constant":false,"id":56222,"mutability":"mutable","name":"i","nameLocation":"17837:1:82","nodeType":"VariableDeclaration","scope":56247,"src":"17829:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56221,"name":"uint256","nodeType":"ElementaryTypeName","src":"17829:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56224,"initialValue":{"hexValue":"30","id":56223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17841:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17829:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":56230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17873:3:82","subExpression":{"id":56229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56222,"src":"17873:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56231,"nodeType":"ExpressionStatement","src":"17873:3:82"},"nodeType":"ForStatement","src":"17824:167:82"},{"expression":{"id":56252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":56248,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56208,"src":"18001:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18008:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"18001:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56251,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56203,"src":"18025:16:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18001:40:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56253,"nodeType":"ExpressionStatement","src":"18001:40:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_setValidators","nameLocation":"17615:14:82","parameters":{"id":56204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56203,"mutability":"mutable","name":"_validatorsArray","nameLocation":"17647:16:82","nodeType":"VariableDeclaration","scope":56255,"src":"17630:33:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56201,"name":"address","nodeType":"ElementaryTypeName","src":"17630:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56202,"nodeType":"ArrayTypeName","src":"17630:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"17629:35:82"},"returnParameters":{"id":56205,"nodeType":"ParameterList","parameters":[],"src":"17673:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":56268,"nodeType":"FunctionDefinition","src":"18054:222:82","nodes":[],"body":{"id":56267,"nodeType":"Block","src":"18123:153:82","nodes":[],"statements":[{"assignments":[56262],"declarations":[{"constant":false,"id":56262,"mutability":"mutable","name":"slot","nameLocation":"18141:4:82","nodeType":"VariableDeclaration","scope":56267,"src":"18133:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18133:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56265,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56263,"name":"getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54782,"src":"18148:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":56264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18148:16:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18133:31:82"},{"AST":{"nativeSrc":"18227:43:82","nodeType":"YulBlock","src":"18227:43:82","statements":[{"nativeSrc":"18241:19:82","nodeType":"YulAssignment","src":"18241:19:82","value":{"name":"slot","nativeSrc":"18256:4:82","nodeType":"YulIdentifier","src":"18256:4:82"},"variableNames":[{"name":"router.slot","nativeSrc":"18241:11:82","nodeType":"YulIdentifier","src":"18241:11:82"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":56259,"isOffset":false,"isSlot":true,"src":"18241:11:82","suffix":"slot","valueSize":1},{"declaration":56262,"isOffset":false,"isSlot":false,"src":"18256:4:82","valueSize":1}],"id":56266,"nodeType":"InlineAssembly","src":"18218:52:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorage","nameLocation":"18063:11:82","parameters":{"id":56256,"nodeType":"ParameterList","parameters":[],"src":"18074:2:82"},"returnParameters":{"id":56260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56259,"mutability":"mutable","name":"router","nameLocation":"18115:6:82","nodeType":"VariableDeclaration","scope":56268,"src":"18099:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":56258,"nodeType":"UserDefinedTypeName","pathNode":{"id":56257,"name":"Storage","nameLocations":["18099:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"18099:7:82"},"referencedDeclaration":53731,"src":"18099:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"18098:24:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":54585,"name":"IRouter","nameLocations":["800:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":54013,"src":"800:7:82"},"id":54586,"nodeType":"InheritanceSpecifier","src":"800:7:82"},{"baseName":{"id":54587,"name":"OwnableUpgradeable","nameLocations":["809:18:82"],"nodeType":"IdentifierPath","referencedDeclaration":39024,"src":"809:18:82"},"id":54588,"nodeType":"InheritanceSpecifier","src":"809:18:82"},{"baseName":{"id":54589,"name":"ReentrancyGuardTransient","nameLocations":["829:24:82"],"nodeType":"IdentifierPath","referencedDeclaration":42400,"src":"829:24:82"},"id":54590,"nodeType":"InheritanceSpecifier","src":"829:24:82"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56269,42400,39024,40172,39278,54013],"name":"Router","nameLocation":"790:6:82","scope":56270,"usedErrors":[38860,38865,39041,39044,42267,42273,42344,43050,43055,43060],"usedEvents":[38871,39049,53795,53802,53809,53816,53819,53822,53827,53832]}],"license":"UNLICENSED"},"id":82} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"baseFee","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"baseWeight","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IRouter.CodeState"}],"stateMutability":"view"},{"type":"function","name":"commitBlocks","inputs":[{"name":"blockCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.BlockCommitment[]","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"prevCommitmentHash","type":"bytes32","internalType":"bytes32"},{"name":"predBlockHash","type":"bytes32","internalType":"bytes32"},{"name":"transitions","type":"tuple[]","internalType":"struct IRouter.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueClaims","type":"tuple[]","internalType":"struct IRouter.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct IRouter.OutgoingMessage[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct IRouter.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]}]}]}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitCodes","inputs":[{"name":"codeCommitmentsArray","type":"tuple[]","internalType":"struct IRouter.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createProgram","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"createProgramWithDecoder","inputs":[{"name":"decoderImplementation","type":"address","internalType":"address"},{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStorageSlot","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_mirrorProxy","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_validatorsKeys","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastBlockCommitmentHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"mirror","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorProxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"program","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidation","inputs":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"blobTxHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBaseWeight","inputs":[{"name":"_baseWeight","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"_mirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStorageSlot","inputs":[{"name":"namespace","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setValuePerWeight","inputs":[{"name":"_valuePerWeight","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdPercentage","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateValidators","inputs":[{"name":"validatorsAddressArray","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorExists","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"valuePerWeight","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BaseWeightChanged","inputs":[{"name":"baseWeight","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"BlockCommitted","inputs":[{"name":"blockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"valid","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"CodeValidationRequested","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"blobTxHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProgramCreated","inputs":[{"name":"actorId","type":"address","indexed":false,"internalType":"address"},{"name":"codeId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StorageSlotChanged","inputs":[],"anonymous":false},{"type":"event","name":"ValidatorsSetChanged","inputs":[],"anonymous":false},{"type":"event","name":"ValuePerWeightChanged","inputs":[{"name":"valuePerWeight","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b604051612a5d90816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6101a0806040526004361015610013575f80fd5b5f610180525f3560e01c9081627a32e714611e5b575080630834fecc14611e245780631c149d8a14611cc857806328e24b3d14611c9e5780632dacfb6914611c715780633d43b41814611c1f578063444d917214611be75780635686cad514611b21578063666d124c14611a0b5780636c2eb350146117f55780636ef25c3a146117c7578063715018a61461175557806378ee5dec1461171a5780638028861a146116985780638074b455146115d557806388f50cf01461159a5780638da5cb5b146115635780638febbd59146115165780639067088e146114ce57806396708226146114a257806396a2ddfa14611472578063a6bbbe1c146113c2578063c13911e814611376578063ca1e7819146112f9578063d3fd6364146112c0578063e71731e4146111ae578063e97d3eb314610f5f578063ed612f8c14610f2f578063edc8722514610f0a578063efd81abc14610eda578063f2fde38b14610eb6578063f8453e7c14610ba75763fa97ed6d1461018c575f80fd5b34610580576040366003190112610580576004356001600160401b038111610580576101bc903690600401611f42565b6024356001600160401b038111610580576101db903690600401611f42565b907f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b9257838360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d610180516080526060915b816080511015610b535760805160051b8101359136829003607e19018312156105805760045f805160206129e8833981519152540180546020858501013503610b0f57610285604085850101356127f6565b15610abe5782840180359091556101805161016052606096919590870194915b6102b18686860161277e565b9050610160511015610a36576102c98686860161277e565b9060c052610160511015610595576101605160051b60c051013560a052609e1960c05136030160a0511215610580575f805160206129e88339815191525461031660a05160c05101612839565b6001600160a01b03165f908152600b82016020526040902054156109d95760206001600160801b0391600360018060a01b0391015416604461035d60a05160c05101612839565b61036f604060a05160c051010161284d565b60405163a9059cbb60e01b81526001600160a01b0390921660048301529490941660248501526101805184928391905af18015610587576109ad575b5060a05160c0519297926001600160a01b03916103c89101612839565b166101205261018051606061010081905260a05160c051010197905b6103f48960a05160c05101612861565b90508110156105af5761040d8960a05160c05101612861565b90610140528110156105955761042d602060608302610140510101612839565b6104ce61044460406060850261014051010161284d565b6040519060208201936060860261014051013585526001600160601b03199060601b1660408301526001600160801b03199060801b1660548201526044815261048e606482611e9b565b60206040519384926101005151808461010051018587015e84019083820190610180518252519283915e010161018051815203601f198101835282611e9b565b610100526104e6602060608302610140510101612839565b6104fa60406060840261014051010161284d565b610120513b15610580576040516314503e5160e01b81526101405160608502013560048201526001600160a01b0390921660248301526001600160801b0316604482015261018051610120518290606490829084905af1801561058757610565575b506001016103e4565b6101805161057291611e9b565b61018051610580578a61055c565b6101805180fd5b6040513d61018051823e3d90fd5b634e487b7160e01b61018051526032600452602461018051fd5b509190929496509492946101805160e052606060e052610180515b60a05160c0516105df9101608081019061277e565b90508110156108925760a05160c0516105fd9101608081019061277e565b821015610595578160051b81013560be1982360301811215610580576106d48261062b602084830101612839565b6106c96034605461064285880160408101906125c7565b61065360608a89989498010161284d565b9061066260a08b8a0101612896565b90806040519889958d602088019c01358c526001600160601b03199060601b166040870152868601378301916001600160801b03199060801b168483015260808a8c010135606483015263ffffffff60e01b16608482015203016014810184520182611e9b565b51902060e0516120c8565b60e052818101608001356107ab576106f0602082840101612839565b61070083830160408101906125c7565b929061071060608387010161284d565b93610120513b156105805760405163c2df600960e01b8152959092013560048601526001600160a01b039092166024850152608060448501526001600160801b0391610760916084860191611fd6565b9116606483015281806101805192038161018051610120515af1801561058757610790575b506001905b016105ca565b6101805161079d91611e9b565b610180516105805789610785565b906107ba602083830101612839565b916107cb82820160408101906125c7565b90916107db60608286010161284d565b936107ea60a083830101612896565b93610120513b156105805760405163c78bde7760e01b81526001600160a01b03909716600488015260a060248801526080936001600160801b03916108339160a48a0191611fd6565b95166044870152010135606484015263ffffffff60e01b16608483015281806101805192038161018051610120515af1801561058757610877575b5060019061078a565b6101805161088491611e9b565b61018051610580578961086e565b509190969593949295610120513b1561058057604051638ea59e1d60e01b8152602060a05160c0510101356004820152610180518160248161018051610120515af1801561058757610992575b5061097c906108f360a05160c05101612839565b610905604060a05160c051010161284d565b6101005151602061010051012060e05151602060e0510120906040519260208401946001600160601b03199060601b168552602060a05160c05101013560348501526001600160801b03199060801b166054840152606483015260848201526084815261097360a482611e9b565b519020906120c8565b96600161016051016101605290959491956102a5565b6101805161099f91611e9b565b6101805161058057886108df565b6109cd9060203d81116109d2575b6109c58183611e9b565b8101906127b3565b6103ab565b503d6109bb565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b945092610aab92967fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051848b01358152a1602081519101206040519060406020830193808b013585526020818c010135828501528a010135606083015260808201526080815261097360a082611e9b565b9260016080510160805290929193610233565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b610b65858585602081519101206125f9565b610180517f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d6101805180f35b633ee5aeb560e01b6101805152600461018051fd5b346105805760a036600319011261058057610bc0611e85565b602435906001600160a01b038216820361058057604435916001600160a01b038316830361058057606435926001600160a01b0384168403610580576084356001600160401b038111610580573660238201121561058057610c2c903690602481600401359101611f72565b905f80516020612a088339815191525460ff8160401c1615946001600160401b03821680159081610eae575b6001149081610ea4575b159081610e9b575b50610e865767ffffffffffffffff1982166001175f80516020612a0883398151915255610cad9186610e5a575b50610ca06127cb565b610ca86127cb565b61214e565b6040948551610cbc8782611e9b565b6017815260208101907f726f757465722e73746f726167652e526f7574657256310000000000000000008252610cf06121bf565b5190205f198101908111610e40578651906020820190815260208252610d168883611e9b565b60ff19915190201690815f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc6101805161018051a15f19430192438411610e4057924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60058301556006919091018054680a000000009502f9006001600160c01b0319909116179055610ddf90612486565b610deb575b6101805180f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f80516020612a0883398151915254165f80516020612a08833981519152555160018152a180610de4565b634e487b7160e01b61018051526011600452602461018051fd5b68ffffffffffffffffff191668010000000000000001175f80516020612a088339815191525587610c97565b63f92ee8a960e01b6101805152600461018051fd5b90501588610c6a565b303b159150610c62565b879150610c58565b3461058057602036600319011261058057610de4610ed2611e85565b610ca86121bf565b34610580576101805136600319011261058057602060055f805160206129e8833981519152540154604051908152f35b346105805761018051366003190112610580576020610f27612110565b604051908152f35b34610580576101805136600319011261058057602060085f805160206129e8833981519152540154604051908152f35b34610580576040366003190112610580576004356001600160401b0381116105805736602382011215610580578060040135906001600160401b038211610580573660248360061b83010111610580576024356001600160401b03811161058057610fcf83913690600401611f42565b5f805160206129e883398151915254610180519460098201939192909160605b8688101561119d5761018051508760061b84019761103d604460248b01359a0192611019846120f5565b60405160208101918d8352151560f81b604082015260218152610973604182611e9b565b988061018051528760205260ff60406101805120541660038110156111835760010361112e5761106e6001936120f5565b156110dc577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c9602082859361018051528a82526040610180512061018051506101805150600260ff19825416179055600a8a016110cb8154612102565b9055604051908152a25b0196610fef565b80610180515287602052604061018051208054610180515060ff191690556040519081527f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960206101805192a26110d5565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b61018051526021600452602461018051fd5b610de49350602081519101206125f9565b34610580576020366003190112610580576004356001600160401b038111610580576111de903690600401611f42565b6111e66121bf565b5f805160206129e883398151915254610180516007820191600801905b8154811015611243576101808051839052516020908190208201546001600160a01b03165f9081529084905260409020805460ff19169055600101611203565b50610180518154908255915081611299575b611268611263368587611f72565b612486565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f516101805161018051a16101805180f35b610180515260206101805120908101905b81811015611255576101805181556001016112aa565b3461058057610180513660031901126105805760206001600160401b0360065f805160206129e883398151915254015416604051908152f35b3461058057610180513660031901126105805761132660085f805160206129e88339815191525401612033565b604051809160208201602083528151809152602060408401920190610180515b818110611354575050500390f35b82516001600160a01b0316845285945060209384019390920191600101611346565b346105805760203660031901126105805760095f805160206129e88339815191525401600435610180515260205260ff6040610180512054166040516003821015611183576020918152f35b34610580576020366003190112610580576004356001600160801b03811690818103610580577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d740916020916114156121bf565b5f805160206129e883398151915254600601805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a16101805180f35b346105805761018051366003190112610580576020600c5f805160206129e8833981519152540154604051908152f35b3461058057610180513660031901126105805760205f805160206129e883398151915254604051908152f35b34610580576020366003190112610580576114e7611e85565b600b5f805160206129e883398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b346105805760203660031901126105805761152f611e85565b60075f805160206129e883398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346105805761018051366003190112610580575f805160206129c8833981519152546040516001600160a01b039091168152602090f35b346105805761018051366003190112610580575f805160206129e883398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610580576044356001600160401b03811161058057611600903690600401611f15565b90606435906001600160801b03821682036105805761162482602435600435612212565b6001600160a01b0390911693909290843b156105805761165e60405194859384936306f0ee9760e51b855261018051963260048701611ff6565b038161018051865af180156105875761167d575b602082604051908152f35b6101805161168a91611e9b565b610180516105805781611672565b34610580576020366003190112610580576004356001600160401b0381168091036105805760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c7916116e96121bf565b5f805160206129e883398151915254600601805467ffffffffffffffff191682179055604051908152a16101805180f35b346105805761018051366003190112610580575f805160206129e883398151915254600201546040516001600160a01b039091168152602090f35b346105805761018051366003190112610580576117706121bf565b5f805160206129c883398151915280546001600160a01b0319811690915561018051906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a36101805180f35b3461058057610180513660031901126105805760206117e4612086565b6001600160801b0360405191168152f35b346105805761018051366003190112610580576118106121bf565b5f80516020612a088339815191525460ff8160401c1680156119f7575b610e865768ffffffffffffffffff191668010000000000000002175f80516020612a08833981519152555f805160206129e8833981519152546001810154600282015460038301546001600160a01b039081169391811692169061189390600801612033565b9060409182516118a38482611e9b565b6017815260208101907f726f757465722e73746f726167652e526f75746572563200000000000000000082526118d76121bf565b5190205f198101908111610e405783519060208201908152602082526118fd8583611e9b565b60ff19915190201694855f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc6101805161018051a15f194301438111610e40574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291602091906119c590612486565b60ff60401b195f80516020612a0883398151915254165f80516020612a08833981519152555160028152a16101805180f35b5060026001600160401b038216101561182d565b60a0366003190112611b1d57611a1f611e85565b602435604435916064356001600160401b038111611b1d57611a45903690600401611f15565b909160843591906001600160801b0383168303611b1d57611a67838787612212565b959060018060a01b0316966040519060208201928352604082015260408152611a91606082611e9b565b519020863b15611b1d57604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f81604481838a5af18015611b1257611afd575b50843b156105805761165e60405194859384936306f0ee9760e51b855261018051963260048701611ff6565b5f611b0791611e9b565b5f6101805285611ad1565b6040513d5f823e3d90fd5b5f80fd5b34611b1d576020366003190112611b1d576004356001600160401b038111611b1d5736602382011215611b1d57611b62903690602481600401359101611ed0565b611b6a6121bf565b602081519101205f198101908111611bd357604051906020820190815260208252611b96604083611e9b565b9051902060ff19165f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b634e487b7160e01b5f52601160045260245ffd5b34611b1d575f366003190112611b1d575f805160206129e883398151915254600101546040516001600160a01b039091168152602090f35b34611b1d576020366003190112611b1d57611c38611e85565b611c406121bf565b5f805160206129e88339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34611b1d575f366003190112611b1d57602060045f805160206129e8833981519152540154604051908152f35b34611b1d575f366003190112611b1d5760205f805160206129e88339815191525454604051908152f35b34611b1d576040366003190112611b1d576024356004358115801590611e1a575b15611dd55760095f805160206129e8833981519152540190805f528160205260ff60405f2054166003811015611dc157611d63577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f491515611ce9565b34611b1d575f366003190112611b1d5760206117e46001600160801b0360065f805160206129e883398151915254015460401c1690565b34611b1d575f366003190112611b1d57602090600a5f805160206129e88339815191525401548152f35b600435906001600160a01b0382168203611b1d57565b90601f801991011681019081106001600160401b03821117611ebc57604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611ebc5760405191611ef9601f8201601f191660200184611e9b565b829481845281830111611b1d578281602093845f960137010152565b9181601f84011215611b1d578235916001600160401b038311611b1d5760208381860195010111611b1d57565b9181601f84011215611b1d578235916001600160401b038311611b1d576020808501948460051b010111611b1d57565b9092916001600160401b038411611ebc578360051b916020604051611f9982860182611e9b565b8096815201928101918211611b1d57915b818310611fb657505050565b82356001600160a01b0381168103611b1d57815260209283019201611faa565b908060209392818452848401375f828201840152601f01601f1916010190565b939594906120266001600160801b0393606095859360018060a01b03168852608060208901526080880191611fd6565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b81811061206457505061206292500383611e9b565b565b84546001600160a01b031683526001948501948794506020909301920161204d565b5f805160206129e883398151915254600601546001600160401b038116906001600160801b039060401c811616026001600160801b038116908103611bd35790565b602080612062928195946040519682889351918291018585015e8201908382015203018085520183611e9b565b358015158103611b1d5790565b5f198114611bd35760010190565b5f805160206129e8833981519152546005600882015491015490818102918183041490151715611bd35761270f8101809111611bd357612710900490565b6001600160a01b031680156121ac575f805160206129c883398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f805160206129c8833981519152546001600160a01b031633036121df57565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b038211611bd357565b9291925f805160206129e88339815191525491815f526009830160205260ff60405f2054166003811015611dc15760020361242a5761224f612086565b600a6001600160801b03821602956001600160801b038716968703611bd35761227b87612280936121f2565b6121f2565b60038401546040516323b872dd60e01b81523260048201523060248201526001600160801b03929092166044830152602090829060649082905f906001600160a01b03165af1908115611b12575f9161240b575b50156123c6576e5af43d82803e903d91602b57fd5bf3600284015491604051602081019185835260408201526040815261230f606082611e9b565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b0383169081156123b7577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600c602092825f52600b810184528560405f2055016123aa8154612102565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b612424915060203d6020116109d2576109c58183611e9b565b5f6122d4565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f805160206129e8833981519152549060088201908154612576579091600701905f5b81518110156124e857600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff19166001908117909155016124a9565b5080519291506001600160401b038311611ebc57680100000000000000008311611ebc578154838355808410612550575b50602001905f5260205f205f5b8381106125335750505050565b82516001600160a01b031681830155602090920191600101612526565b825f528360205f2091820191015b81811061256b5750612519565b5f815560010161255e565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001918136038313611b1d57565b905f805160206129e88339815191525490612612612110565b9260405190602082019081526020825261262d604083611e9b565b612669603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611e9b565b5190205f9260070191835b86851015612772576126aa6126a161269b6126948860051b8601866125c7565b3691611ed0565b856128ab565b909291926128e5565b6001600160a01b03165f9081526020859052604090205460ff1615612737576126d290612102565b938585146126e35760010193612674565b505050509091505b106126f257565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b949550505050506126eb565b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001918160051b36038313611b1d57565b90816020910312611b1d57518015158103611b1d5790565b60ff5f80516020612a088339815191525460401c16156127e757565b631afcd79f60e31b5f5260045ffd5b905f194301438111611bd357805b61280f575b505f9150565b804083810361282057506001925050565b15612834578015611bd3575f190180612804565b612809565b356001600160a01b0381168103611b1d5790565b356001600160801b0381168103611b1d5790565b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001916060820236038313611b1d57565b356001600160e01b031981168103611b1d5790565b81519190604183036128db576128d49250602082015190606060408401519301515f1a90612945565b9192909190565b50505f9160029190565b6004811015611dc157806128f7575050565b6001810361290e5763f645eedf60e01b5f5260045ffd5b60028103612929575063fce698f760e01b5f5260045260245ffd5b6003146129335750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116129bc579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611b12575f516001600160a01b038116156129b257905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220d56e389db8d3491feccb6cba1bcf0a15e3ddc6fbefb4c034cc36df95b2f2238264736f6c634300081a0033","sourceMap":"781:17497:82:-:0;;;;;;;8837:64:25;781:17497:82;;;;;;7896:76:25;;-1:-1:-1;;;;;;;;;;;781:17497:82;;7985:34:25;7981:146;;-1:-1:-1;781:17497:82;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;781:17497:82;-1:-1:-1;;;;;781:17497:82;;;8837:64:25;781:17497:82;;;8087:29:25;;781:17497:82;;8087:29:25;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:25;;-1:-1:-1;7938:23:25;781:17497:82;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6101a0806040526004361015610013575f80fd5b5f610180525f3560e01c9081627a32e714611e5b575080630834fecc14611e245780631c149d8a14611cc857806328e24b3d14611c9e5780632dacfb6914611c715780633d43b41814611c1f578063444d917214611be75780635686cad514611b21578063666d124c14611a0b5780636c2eb350146117f55780636ef25c3a146117c7578063715018a61461175557806378ee5dec1461171a5780638028861a146116985780638074b455146115d557806388f50cf01461159a5780638da5cb5b146115635780638febbd59146115165780639067088e146114ce57806396708226146114a257806396a2ddfa14611472578063a6bbbe1c146113c2578063c13911e814611376578063ca1e7819146112f9578063d3fd6364146112c0578063e71731e4146111ae578063e97d3eb314610f5f578063ed612f8c14610f2f578063edc8722514610f0a578063efd81abc14610eda578063f2fde38b14610eb6578063f8453e7c14610ba75763fa97ed6d1461018c575f80fd5b34610580576040366003190112610580576004356001600160401b038111610580576101bc903690600401611f42565b6024356001600160401b038111610580576101db903690600401611f42565b907f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b9257838360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d610180516080526060915b816080511015610b535760805160051b8101359136829003607e19018312156105805760045f805160206129e8833981519152540180546020858501013503610b0f57610285604085850101356127f6565b15610abe5782840180359091556101805161016052606096919590870194915b6102b18686860161277e565b9050610160511015610a36576102c98686860161277e565b9060c052610160511015610595576101605160051b60c051013560a052609e1960c05136030160a0511215610580575f805160206129e88339815191525461031660a05160c05101612839565b6001600160a01b03165f908152600b82016020526040902054156109d95760206001600160801b0391600360018060a01b0391015416604461035d60a05160c05101612839565b61036f604060a05160c051010161284d565b60405163a9059cbb60e01b81526001600160a01b0390921660048301529490941660248501526101805184928391905af18015610587576109ad575b5060a05160c0519297926001600160a01b03916103c89101612839565b166101205261018051606061010081905260a05160c051010197905b6103f48960a05160c05101612861565b90508110156105af5761040d8960a05160c05101612861565b90610140528110156105955761042d602060608302610140510101612839565b6104ce61044460406060850261014051010161284d565b6040519060208201936060860261014051013585526001600160601b03199060601b1660408301526001600160801b03199060801b1660548201526044815261048e606482611e9b565b60206040519384926101005151808461010051018587015e84019083820190610180518252519283915e010161018051815203601f198101835282611e9b565b610100526104e6602060608302610140510101612839565b6104fa60406060840261014051010161284d565b610120513b15610580576040516314503e5160e01b81526101405160608502013560048201526001600160a01b0390921660248301526001600160801b0316604482015261018051610120518290606490829084905af1801561058757610565575b506001016103e4565b6101805161057291611e9b565b61018051610580578a61055c565b6101805180fd5b6040513d61018051823e3d90fd5b634e487b7160e01b61018051526032600452602461018051fd5b509190929496509492946101805160e052606060e052610180515b60a05160c0516105df9101608081019061277e565b90508110156108925760a05160c0516105fd9101608081019061277e565b821015610595578160051b81013560be1982360301811215610580576106d48261062b602084830101612839565b6106c96034605461064285880160408101906125c7565b61065360608a89989498010161284d565b9061066260a08b8a0101612896565b90806040519889958d602088019c01358c526001600160601b03199060601b166040870152868601378301916001600160801b03199060801b168483015260808a8c010135606483015263ffffffff60e01b16608482015203016014810184520182611e9b565b51902060e0516120c8565b60e052818101608001356107ab576106f0602082840101612839565b61070083830160408101906125c7565b929061071060608387010161284d565b93610120513b156105805760405163c2df600960e01b8152959092013560048601526001600160a01b039092166024850152608060448501526001600160801b0391610760916084860191611fd6565b9116606483015281806101805192038161018051610120515af1801561058757610790575b506001905b016105ca565b6101805161079d91611e9b565b610180516105805789610785565b906107ba602083830101612839565b916107cb82820160408101906125c7565b90916107db60608286010161284d565b936107ea60a083830101612896565b93610120513b156105805760405163c78bde7760e01b81526001600160a01b03909716600488015260a060248801526080936001600160801b03916108339160a48a0191611fd6565b95166044870152010135606484015263ffffffff60e01b16608483015281806101805192038161018051610120515af1801561058757610877575b5060019061078a565b6101805161088491611e9b565b61018051610580578961086e565b509190969593949295610120513b1561058057604051638ea59e1d60e01b8152602060a05160c0510101356004820152610180518160248161018051610120515af1801561058757610992575b5061097c906108f360a05160c05101612839565b610905604060a05160c051010161284d565b6101005151602061010051012060e05151602060e0510120906040519260208401946001600160601b03199060601b168552602060a05160c05101013560348501526001600160801b03199060801b166054840152606483015260848201526084815261097360a482611e9b565b519020906120c8565b96600161016051016101605290959491956102a5565b6101805161099f91611e9b565b6101805161058057886108df565b6109cd9060203d81116109d2575b6109c58183611e9b565b8101906127b3565b6103ab565b503d6109bb565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b945092610aab92967fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e6020604051848b01358152a1602081519101206040519060406020830193808b013585526020818c010135828501528a010135606083015260808201526080815261097360a082611e9b565b9260016080510160805290929193610233565b60405162461bcd60e51b815260206004820152602360248201527f616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f6044820152621d5b9960ea1b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f696e76616c69642070726576696f757320636f6d6d69746d656e7420686173686044820152fd5b610b65858585602081519101206125f9565b610180517f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d6101805180f35b633ee5aeb560e01b6101805152600461018051fd5b346105805760a036600319011261058057610bc0611e85565b602435906001600160a01b038216820361058057604435916001600160a01b038316830361058057606435926001600160a01b0384168403610580576084356001600160401b038111610580573660238201121561058057610c2c903690602481600401359101611f72565b905f80516020612a088339815191525460ff8160401c1615946001600160401b03821680159081610eae575b6001149081610ea4575b159081610e9b575b50610e865767ffffffffffffffff1982166001175f80516020612a0883398151915255610cad9186610e5a575b50610ca06127cb565b610ca86127cb565b61214e565b6040948551610cbc8782611e9b565b6017815260208101907f726f757465722e73746f726167652e526f7574657256310000000000000000008252610cf06121bf565b5190205f198101908111610e40578651906020820190815260208252610d168883611e9b565b60ff19915190201690815f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc6101805161018051a15f19430192438411610e4057924082556001820180546001600160a01b03199081166001600160a01b03978816179091556002830180548216948716949094179093556003820180549093169416939093179055611a0a60058301556006919091018054680a000000009502f9006001600160c01b0319909116179055610ddf90612486565b610deb575b6101805180f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f80516020612a0883398151915254165f80516020612a08833981519152555160018152a180610de4565b634e487b7160e01b61018051526011600452602461018051fd5b68ffffffffffffffffff191668010000000000000001175f80516020612a088339815191525587610c97565b63f92ee8a960e01b6101805152600461018051fd5b90501588610c6a565b303b159150610c62565b879150610c58565b3461058057602036600319011261058057610de4610ed2611e85565b610ca86121bf565b34610580576101805136600319011261058057602060055f805160206129e8833981519152540154604051908152f35b346105805761018051366003190112610580576020610f27612110565b604051908152f35b34610580576101805136600319011261058057602060085f805160206129e8833981519152540154604051908152f35b34610580576040366003190112610580576004356001600160401b0381116105805736602382011215610580578060040135906001600160401b038211610580573660248360061b83010111610580576024356001600160401b03811161058057610fcf83913690600401611f42565b5f805160206129e883398151915254610180519460098201939192909160605b8688101561119d5761018051508760061b84019761103d604460248b01359a0192611019846120f5565b60405160208101918d8352151560f81b604082015260218152610973604182611e9b565b988061018051528760205260ff60406101805120541660038110156111835760010361112e5761106e6001936120f5565b156110dc577f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c9602082859361018051528a82526040610180512061018051506101805150600260ff19825416179055600a8a016110cb8154612102565b9055604051908152a25b0196610fef565b80610180515287602052604061018051208054610180515060ff191690556040519081527f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c960206101805192a26110d5565b60405162461bcd60e51b815260206004820152602760248201527f636f64652073686f756c642062652072657175657374656420666f722076616c60448201526634b230ba34b7b760c91b6064820152608490fd5b634e487b7160e01b61018051526021600452602461018051fd5b610de49350602081519101206125f9565b34610580576020366003190112610580576004356001600160401b038111610580576111de903690600401611f42565b6111e66121bf565b5f805160206129e883398151915254610180516007820191600801905b8154811015611243576101808051839052516020908190208201546001600160a01b03165f9081529084905260409020805460ff19169055600101611203565b50610180518154908255915081611299575b611268611263368587611f72565b612486565b7f144bbc027dc176e94c43b7c1bcff2a8aa58ab434029eec294743cd4ab2e54f516101805161018051a16101805180f35b610180515260206101805120908101905b81811015611255576101805181556001016112aa565b3461058057610180513660031901126105805760206001600160401b0360065f805160206129e883398151915254015416604051908152f35b3461058057610180513660031901126105805761132660085f805160206129e88339815191525401612033565b604051809160208201602083528151809152602060408401920190610180515b818110611354575050500390f35b82516001600160a01b0316845285945060209384019390920191600101611346565b346105805760203660031901126105805760095f805160206129e88339815191525401600435610180515260205260ff6040610180512054166040516003821015611183576020918152f35b34610580576020366003190112610580576004356001600160801b03811690818103610580577f9f5e1796f1a0adf311f86170503308a06a16560a7679b7b6da35f4999200d740916020916114156121bf565b5f805160206129e883398151915254600601805477ffffffffffffffffffffffffffffffff00000000000000001916604092831b77ffffffffffffffffffffffffffffffff00000000000000001617905551908152a16101805180f35b346105805761018051366003190112610580576020600c5f805160206129e8833981519152540154604051908152f35b3461058057610180513660031901126105805760205f805160206129e883398151915254604051908152f35b34610580576020366003190112610580576114e7611e85565b600b5f805160206129e883398151915254019060018060a01b03165f52602052602060405f2054604051908152f35b346105805760203660031901126105805761152f611e85565b60075f805160206129e883398151915254019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346105805761018051366003190112610580575f805160206129c8833981519152546040516001600160a01b039091168152602090f35b346105805761018051366003190112610580575f805160206129e883398151915254600301546040516001600160a01b039091168152602090f35b6080366003190112610580576044356001600160401b03811161058057611600903690600401611f15565b90606435906001600160801b03821682036105805761162482602435600435612212565b6001600160a01b0390911693909290843b156105805761165e60405194859384936306f0ee9760e51b855261018051963260048701611ff6565b038161018051865af180156105875761167d575b602082604051908152f35b6101805161168a91611e9b565b610180516105805781611672565b34610580576020366003190112610580576004356001600160401b0381168091036105805760207f01326573cfc0bc40a2550923254394ebd7529e3e3301840dfa33cf786aead0c7916116e96121bf565b5f805160206129e883398151915254600601805467ffffffffffffffff191682179055604051908152a16101805180f35b346105805761018051366003190112610580575f805160206129e883398151915254600201546040516001600160a01b039091168152602090f35b346105805761018051366003190112610580576117706121bf565b5f805160206129c883398151915280546001600160a01b0319811690915561018051906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a36101805180f35b3461058057610180513660031901126105805760206117e4612086565b6001600160801b0360405191168152f35b346105805761018051366003190112610580576118106121bf565b5f80516020612a088339815191525460ff8160401c1680156119f7575b610e865768ffffffffffffffffff191668010000000000000002175f80516020612a08833981519152555f805160206129e8833981519152546001810154600282015460038301546001600160a01b039081169391811692169061189390600801612033565b9060409182516118a38482611e9b565b6017815260208101907f726f757465722e73746f726167652e526f75746572563200000000000000000082526118d76121bf565b5190205f198101908111610e405783519060208201908152602082526118fd8583611e9b565b60ff19915190201694855f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc6101805161018051a15f194301438111610e40574086556001860180546001600160a01b03199081166001600160a01b03958616179091556002870180548216968516969096179095556003909501805490941694909116939093179091557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291602091906119c590612486565b60ff60401b195f80516020612a0883398151915254165f80516020612a08833981519152555160028152a16101805180f35b5060026001600160401b038216101561182d565b60a0366003190112611b1d57611a1f611e85565b602435604435916064356001600160401b038111611b1d57611a45903690600401611f15565b909160843591906001600160801b0383168303611b1d57611a67838787612212565b959060018060a01b0316966040519060208201928352604082015260408152611a91606082611e9b565b519020863b15611b1d57604051635b1b84f760e01b81526001600160a01b03909216600483015260248201525f81604481838a5af18015611b1257611afd575b50843b156105805761165e60405194859384936306f0ee9760e51b855261018051963260048701611ff6565b5f611b0791611e9b565b5f6101805285611ad1565b6040513d5f823e3d90fd5b5f80fd5b34611b1d576020366003190112611b1d576004356001600160401b038111611b1d5736602382011215611b1d57611b62903690602481600401359101611ed0565b611b6a6121bf565b602081519101205f198101908111611bd357604051906020820190815260208252611b96604083611e9b565b9051902060ff19165f805160206129e8833981519152557f5aa0c6c9fb33211212ffe5bef7a4b5d511b82a611e6677052d984e2bcedeaccc5f80a1005b634e487b7160e01b5f52601160045260245ffd5b34611b1d575f366003190112611b1d575f805160206129e883398151915254600101546040516001600160a01b039091168152602090f35b34611b1d576020366003190112611b1d57611c38611e85565b611c406121bf565b5f805160206129e88339815191525460010180546001600160a01b0319166001600160a01b03909216919091179055005b34611b1d575f366003190112611b1d57602060045f805160206129e8833981519152540154604051908152f35b34611b1d575f366003190112611b1d5760205f805160206129e88339815191525454604051908152f35b34611b1d576040366003190112611b1d576024356004358115801590611e1a575b15611dd55760095f805160206129e8833981519152540190805f528160205260ff60405f2054166003811015611dc157611d63577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603060248201527f636f64652077697468207375636820696420616c72656164792072657175657360448201526f1d1959081bdc881d985b1a59185d195960821b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b60405162461bcd60e51b815260206004820152601c60248201527f626c6f6254784861736820636f756c646e277420626520666f756e64000000006044820152606490fd5b505f491515611ce9565b34611b1d575f366003190112611b1d5760206117e46001600160801b0360065f805160206129e883398151915254015460401c1690565b34611b1d575f366003190112611b1d57602090600a5f805160206129e88339815191525401548152f35b600435906001600160a01b0382168203611b1d57565b90601f801991011681019081106001600160401b03821117611ebc57604052565b634e487b7160e01b5f52604160045260245ffd5b9291926001600160401b038211611ebc5760405191611ef9601f8201601f191660200184611e9b565b829481845281830111611b1d578281602093845f960137010152565b9181601f84011215611b1d578235916001600160401b038311611b1d5760208381860195010111611b1d57565b9181601f84011215611b1d578235916001600160401b038311611b1d576020808501948460051b010111611b1d57565b9092916001600160401b038411611ebc578360051b916020604051611f9982860182611e9b565b8096815201928101918211611b1d57915b818310611fb657505050565b82356001600160a01b0381168103611b1d57815260209283019201611faa565b908060209392818452848401375f828201840152601f01601f1916010190565b939594906120266001600160801b0393606095859360018060a01b03168852608060208901526080880191611fd6565b9616604085015216910152565b90604051918281549182825260208201905f5260205f20925f5b81811061206457505061206292500383611e9b565b565b84546001600160a01b031683526001948501948794506020909301920161204d565b5f805160206129e883398151915254600601546001600160401b038116906001600160801b039060401c811616026001600160801b038116908103611bd35790565b602080612062928195946040519682889351918291018585015e8201908382015203018085520183611e9b565b358015158103611b1d5790565b5f198114611bd35760010190565b5f805160206129e8833981519152546005600882015491015490818102918183041490151715611bd35761270f8101809111611bd357612710900490565b6001600160a01b031680156121ac575f805160206129c883398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f805160206129c8833981519152546001600160a01b031633036121df57565b63118cdaa760e01b5f523360045260245ffd5b906001600160801b03809116911601906001600160801b038211611bd357565b9291925f805160206129e88339815191525491815f526009830160205260ff60405f2054166003811015611dc15760020361242a5761224f612086565b600a6001600160801b03821602956001600160801b038716968703611bd35761227b87612280936121f2565b6121f2565b60038401546040516323b872dd60e01b81523260048201523060248201526001600160801b03929092166044830152602090829060649082905f906001600160a01b03165af1908115611b12575f9161240b575b50156123c6576e5af43d82803e903d91602b57fd5bf3600284015491604051602081019185835260408201526040815261230f606082611e9b565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f526effffffffffffffffffffffffffffff199060781b1617602052603760095ff5916001600160a01b0383169081156123b7577f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf191600c602092825f52600b810184528560405f2055016123aa8154612102565b9055604051908152a29190565b63b06ebf3d60e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f20726574726965766520575661726100000000000000006044820152606490fd5b612424915060203d6020116109d2576109c58183611e9b565b5f6122d4565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f805160206129e8833981519152549060088201908154612576579091600701905f5b81518110156124e857600581901b82016020908101516001600160a01b03165f9081529084905260409020805460ff19166001908117909155016124a9565b5080519291506001600160401b038311611ebc57680100000000000000008311611ebc578154838355808410612550575b50602001905f5260205f205f5b8381106125335750505050565b82516001600160a01b031681830155602090920191600101612526565b825f528360205f2091820191015b81811061256b5750612519565b5f815560010161255e565b60405162461bcd60e51b815260206004820152602360248201527f70726576696f75732076616c696461746f727320776572656e27742072656d6f6044820152621d995960ea1b6064820152608490fd5b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001918136038313611b1d57565b905f805160206129e88339815191525490612612612110565b9260405190602082019081526020825261262d604083611e9b565b612669603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f198101835282611e9b565b5190205f9260070191835b86851015612772576126aa6126a161269b6126948860051b8601866125c7565b3691611ed0565b856128ab565b909291926128e5565b6001600160a01b03165f9081526020859052604090205460ff1615612737576126d290612102565b938585146126e35760010193612674565b505050509091505b106126f257565b60405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682076616c6964207369676e61747572657300000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526013602482015272696e636f7272656374207369676e617475726560681b6044820152606490fd5b949550505050506126eb565b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001918160051b36038313611b1d57565b90816020910312611b1d57518015158103611b1d5790565b60ff5f80516020612a088339815191525460401c16156127e757565b631afcd79f60e31b5f5260045ffd5b905f194301438111611bd357805b61280f575b505f9150565b804083810361282057506001925050565b15612834578015611bd3575f190180612804565b612809565b356001600160a01b0381168103611b1d5790565b356001600160801b0381168103611b1d5790565b903590601e1981360301821215611b1d57018035906001600160401b038211611b1d57602001916060820236038313611b1d57565b356001600160e01b031981168103611b1d5790565b81519190604183036128db576128d49250602082015190606060408401519301515f1a90612945565b9192909190565b50505f9160029190565b6004811015611dc157806128f7575050565b6001810361290e5763f645eedf60e01b5f5260045ffd5b60028103612929575063fce698f760e01b5f5260045260245ffd5b6003146129335750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116129bc579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611b12575f516001600160a01b038116156129b257905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220d56e389db8d3491feccb6cba1bcf0a15e3ddc6fbefb4c034cc36df95b2f2238264736f6c634300081a0033","sourceMap":"781:17497:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;:::i;:::-;7368:53:53;516:66:52;7368:53:53;1292:93:52;;7628:52:53;;1503:4:52;516:66;7628:52:53;781:17497:82;;9664:13;;781:17497;;9713:3;9679:32;;;;;;;781:17497;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;12083:30;781:17497;;;;;;12117:34;781:17497;12083:68;781:17497;;12215:49;781:17497;;;;12234:29;781:17497;12215:49;:::i;:::-;781:17497;;;;;;;;1072:66;;;781:17497;;12559:13;;781:17497;;;;12578:27;;;;781:17497;12614:3;12578:27;781:17497;;;;12578:27;:::i;:::-;12574:38;;;;;;;;12676:27;781:17497;;;;12676:27;:::i;:::-;;;;781:17497;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;13686:23;781:17497;;;;;13686:23;:::i;:::-;-1:-1:-1;;;;;781:17497:82;-1:-1:-1;781:17497:82;;;13670:15;;;781:17497;;;;;;13670:45;781:17497;;;-1:-1:-1;;;;;781:17497:82;13823:18;781:17497;;;;;13823:18;;781:17497;;;13878:23;781:17497;;;;;13878:23;:::i;:::-;13903:30;781:17497;;;;;;13903:30;;:::i;:::-;781:17497;;-1:-1:-1;;;13852:82:82;;-1:-1:-1;;;;;781:17497:82;;;;13852:82;;781:17497;;;;;;;;;;;;;;;;13852:82;;;;;;;;12614:3;-1:-1:-1;781:17497:82;;;;;;;-1:-1:-1;;;;;781:17497:82;13975:23;;781:17497;13975:23;:::i;:::-;781:17497;;;;;;14010:29;;;;781:17497;;;;;14074:27;;781:17497;14110:3;14074:27;781:17497;;;;;;14074:27;:::i;:::-;14070:38;;;;;;;14162:27;781:17497;;;;;;14162:27;:::i;:::-;;;;781:17497;;;;;14313:22;781:17497;;;;;;;14313:22;;:::i;:::-;781:17497;14337:16;781:17497;;;;;;;14337:16;;:::i;:::-;781:17497;;14274:80;781:17497;14274:80;;781:17497;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;14274:80;;;781:17497;14274:80;;:::i;:::-;781:17497;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14274:80;;781:17497;;;;;;:::i;:::-;14207:161;;14430:22;781:17497;;;;;;;14313:22;14430;:::i;:::-;14454:16;781:17497;;;;;;;14337:16;14454;:::i;:::-;14383:88;;;;;;781:17497;;-1:-1:-1;;;14383:88:82;;781:17497;;;;;;;;14383:88;;781:17497;-1:-1:-1;;;;;781:17497:82;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;14383:88;;781:17497;;;;;;;;14383:88;;;;;;;;14110:3;;1503:4:52;781:17497:82;14055:13;;14383:88;781:17497;;14383:88;;;:::i;:::-;781:17497;;;;14383:88;;;781:17497;;;;;14383:88;781:17497;;;;;;;;;;;;;;;;;;;;;;;;14070:38;;;;;;;;;;;781:17497;;14492:27;;781:17497;14492:27;;781:17497;;14587:3;781:17497;;;;14554:24;;781:17497;;14554:24;;;;:::i;:::-;14550:35;;;;;;;781:17497;;;;14649:24;;781:17497;;14554:24;;;14649;:::i;:::-;781:17497;;;;;;;;;;;;;;;;;;;;;;14708:67;781:17497;16578:27;781:17497;;;;16578:27;;:::i;:::-;16508:291;781:17497;;16623:23;781:17497;;;;16623:23;;;;:::i;:::-;16664:21;781:17497;;;;;;;16664:21;;:::i;:::-;781:17497;16752:33;15910:85;781:17497;;;16752:33;;:::i;:::-;781:17497;;;;16508:291;;;;781:17497;16508:291;;781:17497;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;16703:28;781:17497;;;;;;;;;;;;;16508:291;;;;;;;;;;:::i;:::-;781:17497;16485:324;;14708:67;;;:::i;:::-;14691:84;;781:17497;;;;16703:28;781:17497;;;14915:27;781:17497;;;;16578:27;14915;:::i;:::-;14944:23;781:17497;;;;16623:23;;;14944;:::i;:::-;781:17497;;14969:21;781:17497;;;;16664:21;14969;:::i;:::-;14850:158;;;;;;;781:17497;;-1:-1:-1;;;14850:158:82;;781:17497;;;;;;14850:158;;781:17497;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;:::i;:::-;;;;;;;;;;;14850:158;;781:17497;;;14850:158;;;;;;;;;;14790:556;;1503:4:52;14790:556:82;;781:17497;14535:13;;14850:158;781:17497;;14850:158;;;:::i;:::-;781:17497;;;;14850:158;;;14790:556;781:17497;15090:27;781:17497;;;;16578:27;15090;:::i;:::-;781:17497;15139:23;781:17497;;;;16623:23;;;15139;:::i;:::-;781:17497;;15184:21;781:17497;;;;16664:21;15184;:::i;:::-;781:17497;15280:33;15910:85;781:17497;;;16752:33;15280;:::i;:::-;15047:284;;;;;;;781:17497;;-1:-1:-1;;;15047:284:82;;-1:-1:-1;;;;;781:17497:82;;;;15047:284;;781:17497;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;16259:92;781:17497;;;;:::i;:::-;;;;;;;;16703:28;781:17497;;;;;;;;;;;;;;;;;15047:284;;781:17497;;;15047:284;;;;;;;;;;14790:556;;1503:4:52;14790:556:82;;;15047:284;781:17497;;15047:284;;;:::i;:::-;781:17497;;;;15047:284;;;14550:35;;;;;;;;;;15366:53;;;;;;781:17497;;;;;15366:53;;781:17497;;;;;;15390:28;781:17497;;15366:53;;781:17497;;;;;;;;15366:53;;;;;;;;;;14530:826;781:17497;12816:47;781:17497;15471:23;781:17497;;;;;15471:23;:::i;:::-;15550:30;781:17497;;;;;;13903:30;15550;:::i;:::-;15594:27;;781:17497;;15594:27;;781:17497;15594:27;15635:25;;781:17497;;15635:25;;781:17497;15635:25;781:17497;;;16259:92;781:17497;16259:92;;781:17497;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;15390:28;781:17497;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;;16259:92;;;;;;:::i;:::-;781:17497;16249:103;;12816:47;;:::i;:::-;12614:3;1503:4:52;12614:3:82;;781:17497;12614:3;;12559:13;;;;;;;15366:53;781:17497;;15366:53;;;:::i;:::-;781:17497;;;;15366:53;;;13852:82;;;781:17497;13852:82;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;781:17497;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;12574:38;;;;9913:57;12574:38;;12889:41;781:17497;;;;;;;;;12889:41;781:17497;;;;;13112:28;781:17497;;15910:85;781:17497;;15910:85;;781:17497;;;;;;;;;;;12117:34;781:17497;;;;;;;12234:29;781:17497;;;;;;;;;;15910:85;;;;;;:::i;9913:57::-;9713:3;1503:4:52;9713:3:82;;781:17497;9713:3;;9664:13;;;;;;781:17497;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9679:32;10046:10;9679:32;;;781:17497;;;;;10011:33;10046:10;:::i;:::-;781:17497;;516:66:52;7628:52:53;781:17497:82;;;;1292:93:52;1344:30;;;781:17497:82;;1344:30:52;781:17497:82;;;1344:30:52;781:17497:82;;;;;;-1:-1:-1;;781:17497:82;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;;;4301:16:25;781:17497:82;-1:-1:-1;;;;;781:17497:82;;4726:16:25;;:34;;;;781:17497:82;4805:1:25;4790:16;:50;;;;781:17497:82;4855:13:25;:30;;;;781:17497:82;4851:91:25;;;-1:-1:-1;;781:17497:82;;4805:1:25;781:17497:82;-1:-1:-1;;;;;;;;;;;781:17497:82;6961:1:25;;781:17497:82;4979:67:25;;781:17497:82;6893:76:25;;;:::i;:::-;;;:::i;:::-;6961:1;:::i;:::-;781:17497:82;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:24;;:::i;:::-;781:17497:82;2944:27;;-1:-1:-1;;781:17497:82;;;;;;;;;2925:52;781:17497;2925:52;;781:17497;;;;2925:52;;;;;;:::i;:::-;781:17497;;;;2915:63;;:89;1072:66;;-1:-1:-1;;;;;;;;;;;1072:66:82;3084:20;781:17497;;;;3084:20;781:17497;;1644:12;781:17497;1644:12;;781:17497;;;;1634:27;;1072:66;;4805:1:25;1671:13:82;;781:17497;;-1:-1:-1;;;;;;781:17497:82;;;-1:-1:-1;;;;;781:17497:82;;;;;;;1704:18;;;781:17497;;;;;;;;;;;;;;1747:18;;;781:17497;;;;;;;;;;;;;1826:4;1790:33;;;1072:66;1868:17;;;;;781:17497;;;-1:-1:-1;;;;;;781:17497:82;;;;;;1962:15;;;:::i;:::-;5066:101:25;;781:17497:82;;;;;5066:101:25;781:17497:82;5142:14:25;781:17497:82;-1:-1:-1;;;781:17497:82;-1:-1:-1;;;;;;;;;;;781:17497:82;;-1:-1:-1;;;;;;;;;;;781:17497:82;;4805:1:25;781:17497:82;;5142:14:25;5066:101;;;781:17497:82;;;;;;;;;;;;;;4979:67:25;-1:-1:-1;;781:17497:82;;;-1:-1:-1;;;;;;;;;;;781:17497:82;4979:67:25;;;4851:91;6498:23;;;781:17497:82;;4908:23:25;781:17497:82;;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;781:17497:82;;;;;;-1:-1:-1;;781:17497:82;;;;2357:1:24;781:17497:82;;:::i;:::-;2303:62:24;;:::i;781:17497:82:-;;;;;;;-1:-1:-1;;781:17497:82;;;;;4918:33;-1:-1:-1;;;;;;;;;;;781:17497:82;4918:33;781:17497;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;5296:21;-1:-1:-1;;;;;;;;;;;781:17497:82;5296:21;781:17497;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;8928:12;;;;781:17497;;;;;8601:3;8568:31;;;;;;-1:-1:-1;;781:17497:82;;;;;;;8802:55;16985:20;781:17497;;;;16985:20;;;;;;:::i;:::-;781:17497;;;16949:57;;781:17497;;;;;;;;;;;;;16949:57;;;;;;:::i;8802:55::-;781:17497;;;;;;;;;;;;;;;;;;;;;;8928:53;781:17497;;9044:20;781:17497;9044:20;;:::i;:::-;;;;9196:30;781:17497;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;9107:19;781:17497;;;;;;;;9144:26;;;:28;781:17497;;9144:28;:::i;:::-;1072:66;;781:17497;;;;;9196:30;9040:322;781:17497;8553:13;;;9040:322;781:17497;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;;;;;9316:31;781:17497;;;9316:31;;9040:322;;781:17497;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;8568:31;9436:10;8568:31;;781:17497;;;;;9402:32;9436:10;:::i;781:17497::-;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;;;17516:17;;;;17402:21;;;17432:3;781:17497;;17398:32;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;-1:-1:-1;781:17497:82;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;17383:13;;17398:32;-1:-1:-1;781:17497:82;;;;;;;;-1:-1:-1;781:17497:82;;;17378:177;5857:38;781:17497;;;;;:::i;:::-;5857:38;:::i;:::-;5911:22;781:17497;;;;5911:22;781:17497;;;;;-1:-1:-1;;781:17497:82;;-1:-1:-1;;781:17497:82;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;-1:-1:-1;;;;;6110:17:82;-1:-1:-1;;;;;;;;;;;781:17497:82;6110:17;781:17497;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;5640:21;-1:-1:-1;;;;;;;;;;;781:17497:82;5640:21;781:17497;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;4382:12;-1:-1:-1;;;;;;;;;;;781:17497:82;4382:12;781:17497;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;6689:38;2303:62:24;781:17497:82;2303:62:24;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;6634:21;;781:17497;;-1:-1:-1;;781:17497:82;;;;;;;;;;;;;;6689:38;781:17497;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;4535:20;-1:-1:-1;;;;;;;;;;;781:17497:82;4535:20;781:17497;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;:::i;:::-;4703:15;-1:-1:-1;;;;;;;;;;;781:17497:82;4703:15;:24;781:17497;;;;;;-1:-1:-1;781:17497:82;;;;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;:::i;:::-;5473:17;-1:-1:-1;;;;;;;;;;;781:17497:82;5473:17;:28;781:17497;;;;;;-1:-1:-1;781:17497:82;;;;;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;3567:18;;781:17497;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;:::i;:::-;-1:-1:-1;781:17497:82;;;-1:-1:-1;;;;;781:17497:82;;;;;;7561:50;781:17497;;;;;7561:50;:::i;:::-;-1:-1:-1;;;;;781:17497:82;;;;;;;7622:75;;;;;;781:17497;;;;;;;;;;7622:75;;781:17497;;7651:9;;781:17497;7622:75;;;:::i;:::-;;781:17497;;;7622:75;;;;;;;;;781:17497;;;;;;;;;7622:75;781:17497;;7622:75;;;:::i;:::-;781:17497;;;;7622:75;;;781:17497;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;6307:30;2303:62:24;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;6260:17;;781:17497;;-1:-1:-1;;781:17497:82;;;;;;;;;;6307:30;781:17497;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;3716:18;;781:17497;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;;-1:-1:-1;;;;;;781:17497:82;;;;;;;;-1:-1:-1;;;;;781:17497:82;3975:40:24;781:17497:82;;3975:40:24;781:17497:82;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;:::i;:::-;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;;;6431:44:25;;;;781:17497:82;6427:105:25;;-1:-1:-1;;781:17497:82;;;-1:-1:-1;;;;;;;;;;;781:17497:82;-1:-1:-1;;;;;;;;;;;781:17497:82;;2129:16;;781:17497;2046:1;2178:21;;781:17497;2232:21;;;781:17497;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;2298:24;;781:17497;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:24;;:::i;:::-;781:17497:82;2944:27;;-1:-1:-1;;781:17497:82;;;;;;;;;2925:52;781:17497;2925:52;;781:17497;;;;2925:52;;;;;;:::i;:::-;781:17497;;;;2915:63;;:89;1072:66;;-1:-1:-1;;;;;;;;;;;1072:66:82;3084:20;781:17497;;;;3084:20;781:17497;;2469:12;781:17497;2469:12;781:17497;;;;2459:27;1072:66;;6593:4:25;2496:13:82;;781:17497;;-1:-1:-1;;;;;;781:17497:82;;;-1:-1:-1;;;;;781:17497:82;;;;;;;2046:1;2529:18;;781:17497;;;;;;;;;;;;;;2232:21;2572:18;;;781:17497;;;;;;;;;;;;;;;;6656:20:25;;781:17497:82;;-1:-1:-1;2630:15:82;;;:::i;:::-;-1:-1:-1;;;781:17497:82;-1:-1:-1;;;;;;;;;;;781:17497:82;;-1:-1:-1;;;;;;;;;;;781:17497:82;;2046:1;781:17497;;6656:20:25;781:17497:82;;;;6431:44:25;781:17497:82;2046:1;-1:-1:-1;;;;;781:17497:82;;6450:25:25;;6431:44;;781:17497:82;;;-1:-1:-1;;781:17497:82;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;781:17497:82;;;;;;8008:50;;;;;:::i;:::-;781:17497;;;;;;;;;;;8183:30;781:17497;8183:30;;781:17497;;;;;;;;8183:30;;;781:17497;8183:30;;:::i;:::-;781:17497;8173:41;;8121:94;;;;;781:17497;;-1:-1:-1;;;8121:94:82;;-1:-1:-1;;;;;781:17497:82;;;;8121:94;;781:17497;;;;;-1:-1:-1;781:17497:82;;;-1:-1:-1;8121:94:82;;;;;;;;;781:17497;8226:73;;;;;;;781:17497;;;;;;;;;;8226:73;;781:17497;;8253:9;;781:17497;8226:73;;;:::i;8121:94::-;781:17497;8121:94;;;:::i;:::-;781:17497;;;8121:94;;;;781:17497;;;;;;;;;8121:94;781:17497;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;781:17497:82;;;;;2944:27;781:17497;;;;;;;;;;;2925:52;781:17497;2925:52;;781:17497;;;;2925:52;;;781:17497;2925:52;;:::i;:::-;781:17497;;2915:63;;-1:-1:-1;;2915:89:82;-1:-1:-1;;;;;;;;;;;1072:66:82;3084:20;781:17497;;3084:20;781:17497;;;;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;;3860:13;781:17497;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;781:17497:82;3999:13;;781:17497;;-1:-1:-1;;;;;;781:17497:82;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;3406:30;781:17497;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;;6983:15;;;;;:35;;781:17497;;;;7119:12;-1:-1:-1;;;;;;;;;;;781:17497:82;7119:12;781:17497;;;;;;;;;;;;;;;;;;;;;7292:43;781:17497;;;;;;;;;;;7247:29;781:17497;;;;;;;;;;;;;;;;;7292:43;781:17497;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;;;;6983:35;7002:11;781:17497;7002:11;:16;;6983:35;;781:17497;;;;;;-1:-1:-1;;781:17497:82;;;;;;-1:-1:-1;;;;;6471:21:82;-1:-1:-1;;;;;;;;;;;781:17497:82;6471:21;781:17497;;;;6350:149;;781:17497;;;;;;-1:-1:-1;;781:17497:82;;;;;;4211:26;-1:-1:-1;;;;;;;;;;;781:17497:82;4211:26;781:17497;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;:::o;:::-;;;14274:80;;781:17497;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;:::o;:::-;;;;-1:-1:-1;781:17497:82;;;;;-1:-1:-1;781:17497:82;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;14274:80;781:17497;;-1:-1:-1;;781:17497:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;;;;;;;-1:-1:-1;;781:17497:82;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;-1:-1:-1;781:17497:82;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;-1:-1:-1;781:17497:82;;;;;;;;6740:113;-1:-1:-1;;;;;;;;;;;781:17497:82;6110:17;;781:17497;-1:-1:-1;;;;;781:17497:82;;;-1:-1:-1;;;;;781:17497:82;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;6740:113;:::o;781:17497::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;781:17497:82;;;;;;;:::o;4964:204::-;-1:-1:-1;;;;;;;;;;;781:17497:82;4918:33;5296:21;;;781:17497;4918:33;;781:17497;;;;;;;;;;;;;;;;5148:4;781:17497;;;;;;;5156:5;781:17497;;4964:204;:::o;3405:215:24:-;-1:-1:-1;;;;;781:17497:82;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;781:17497:82;;-1:-1:-1;;;;;;781:17497:82;;;;;;;-1:-1:-1;;;;;781:17497:82;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;781:17497:82;;3509:1:24;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;781:17497:82;-1:-1:-1;;;;;781:17497:82;966:10:29;2717:23:24;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:24;966:10:29;2763:40:24;781:17497:82;;-1:-1:-1;2763:40:24;781:17497:82;;-1:-1:-1;;;;;781:17497:82;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;:::o;10106:951::-;;;;-1:-1:-1;;;;;;;;;;;781:17497:82;;;-1:-1:-1;781:17497:82;10312:12;;;781:17497;;;;-1:-1:-1;781:17497:82;;;;;;;;;10336:19;10312:43;781:17497;;10440:9;;:::i;:::-;781:17497;-1:-1:-1;;;;;781:17497:82;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;10536:32;;:41;:32;;:::i;:::-;:41;:::i;:::-;781:17497;17149:18;;781:17497;;;-1:-1:-1;;;17142:73:82;;17182:9;17142:73;;;781:17497;17201:4;781:17497;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;17142:73;;781:17497;;-1:-1:-1;;;;;;;781:17497:82;17142:73;;;;;;;-1:-1:-1;17142:73:82;;;10106:951;781:17497;;;;3743:569:36;10336:19:82;10819:18;;781:17497;;;;;10849:30;;781:17497;;;;;;;;;10849:30;;;781:17497;10849:30;;:::i;:::-;781:17497;10839:41;;3743:569:36;;;;;;;;-1:-1:-1;3743:569:36;;;;;;;;781:17497:82;3743:569:36;;10312:12:82;-1:-1:-1;3743:569:36;781:17497:82;-1:-1:-1;;;;;781:17497:82;;;4325:22:36;;4321:85;;10973:31:82;10892:24;10935:20;781:17497;10892:24;781:17497;-1:-1:-1;781:17497:82;10892:15;;;781:17497;;;;-1:-1:-1;781:17497:82;1072:66;10935:20;:22;781:17497;;10935:22;:::i;:::-;1072:66;;781:17497;;;;;10973:31;11015:35;10106:951;:::o;4321:85:36:-;4370:25;;;-1:-1:-1;4370:25:36;17142:73:82;-1:-1:-1;4370:25:36;781:17497:82;;;-1:-1:-1;;;781:17497:82;;;17142:73;781:17497;;;;;;;;;;;;;17142:73;;781:17497;17142:73;;;;781:17497;17142:73;781:17497;17142:73;;;;;;;:::i;:::-;;;;781:17497;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;17606:442;-1:-1:-1;;;;;;;;;;;781:17497:82;17740:21;;;;781:17497;;;;;17829:13;;17945:17;;;-1:-1:-1;17873:3:82;781:17497;;17844:27;;;;;781:17497;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;-1:-1:-1;781:17497:82;;;;;;;;;;;;-1:-1:-1;;781:17497:82;;;;;;;;;17829:13;;17844:27;-1:-1:-1;781:17497:82;;;17844:27;-1:-1:-1;;;;;;781:17497:82;;;;;;;;;;;;;;;;;;;17824:167;781:17497;;;;-1:-1:-1;781:17497:82;;-1:-1:-1;781:17497:82;-1:-1:-1;781:17497:82;;;;;;17606:442;;;;:::o;781:17497::-;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;:::o;11063:844::-;;-1:-1:-1;;;;;;;;;;;781:17497:82;11231:21;;;:::i;:::-;781:17497;;;11331:26;;;;781:17497;;;11331:26;;;;781:17497;11331:26;;:::i;:::-;2858:45:56;781:17497:82;;;2858:45:56;;11331:26:82;2858:45:56;;781:17497:82;;;;;;11293:4;781:17497;;;;;;;;;;;;;;;-1:-1:-1;781:17497:82;;;;2858:45:56;;14274:80:82;;2858:45:56;;;;;;:::i;:::-;781:17497:82;2848:56:56;;-1:-1:-1;;11592:17:82;;;-1:-1:-1;11449:3:82;11426:21;;;;;;3915:8:55;3859:27;781:17497:82;;;;;;;;;:::i;:::-;;;;:::i;:::-;3859:27:55;;:::i;:::-;3915:8;;;;;:::i;:::-;-1:-1:-1;;;;;781:17497:82;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;;;11644:17;;;:::i;:::-;:30;;;;11640:82;;781:17497;;11411:13;;;11640:82;11698:5;;;;;;;11406:416;11840:28;781:17497;;11063:844::o;781:17497::-;;;-1:-1:-1;;;781:17497:82;;11331:26;781:17497;;;;;;;;;;;;;;;;;11588:224;781:17497;;-1:-1:-1;;;781:17497:82;;11331:26;781:17497;;;;;;;;;-1:-1:-1;;;781:17497:82;;;;;;;11426:21;;;;;;;;;;781:17497;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;7084:141:25:-;781:17497:82;-1:-1:-1;;;;;;;;;;;781:17497:82;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:25;;-1:-1:-1;7191:17:25;13163:338:82;;781:17497;;13260:12;781:17497;13260:12;781:17497;;;;13243:230;13278:5;;;13243:230;-1:-1:-1;781:17497:82;;-1:-1:-1;13163:338:82:o;13285:3::-;13318:12;;13348:11;;;;;-1:-1:-1;13275:1:82;;-1:-1:-1;;13379:11:82:o;13344:119::-;13415:8;13411:52;;781:17497;;;;-1:-1:-1;;781:17497:82;;13248:28;;13411:52;13443:5;;781:17497;;-1:-1:-1;;;;;781:17497:82;;;;;;;:::o;:::-;;-1:-1:-1;;;;;781:17497:82;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;781:17497:82;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;781:17497:82;;;;;;;:::o;2129:766:55:-;781:17497:82;;;2129:766:55;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:55;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;7196:532::-;781:17497:82;;;;;;7282:29:55;;;7327:7;;:::o;7278:444::-;781:17497:82;7378:38:55;;781:17497:82;;7439:23:55;;;7291:20;7439:23;781:17497:82;7291:20:55;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;781:17497:82;;;7291:20:55;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;781:17497:82;;;7291:20:55;7679:32;5140:1530;;;6199:66;6186:79;;6182:164;;781:17497:82;;;;;;-1:-1:-1;781:17497:82;;;;;;;;;;;;;;;;;;;6457:24:55;;;;;;;;;-1:-1:-1;6457:24:55;-1:-1:-1;;;;;781:17497:82;;6495:20:55;6491:113;;6614:49;-1:-1:-1;6614:49:55;-1:-1:-1;5140:1530:55;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:55;6457:24;6531:62;-1:-1:-1;6531:62:55;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o","linkReferences":{}},"methodIdentifiers":{"baseFee()":"6ef25c3a","baseWeight()":"d3fd6364","codeState(bytes32)":"c13911e8","commitBlocks((bytes32,bytes32,bytes32,(address,bytes32,uint128,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4))[])[])[],bytes[])":"fa97ed6d","commitCodes((bytes32,bool)[],bytes[])":"e97d3eb3","createProgram(bytes32,bytes32,bytes,uint128)":"8074b455","createProgramWithDecoder(address,bytes32,bytes32,bytes,uint128)":"666d124c","genesisBlockHash()":"28e24b3d","getStorageSlot()":"96708226","initialize(address,address,address,address,address[])":"f8453e7c","lastBlockCommitmentHash()":"2dacfb69","mirror()":"444d9172","mirrorProxy()":"78ee5dec","owner()":"8da5cb5b","programCodeId(address)":"9067088e","programsCount()":"96a2ddfa","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,bytes32)":"1c149d8a","setBaseWeight(uint64)":"8028861a","setMirror(address)":"3d43b418","setStorageSlot(string)":"5686cad5","setValuePerWeight(uint128)":"a6bbbe1c","signingThresholdPercentage()":"efd81abc","transferOwnership(address)":"f2fde38b","updateValidators(address[])":"e71731e4","validatedCodesCount()":"007a32e7","validatorExists(address)":"8febbd59","validators()":"ca1e7819","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","valuePerWeight()":"0834fecc","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"baseWeight\",\"type\":\"uint64\"}],\"name\":\"BaseWeightChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"BlockCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"CodeGotValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ValidatorsSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"ValuePerWeightChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"baseFee\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum IRouter.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"prevCommitmentHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"predBlockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct IRouter.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct IRouter.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"}],\"internalType\":\"struct IRouter.OutgoingMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRouter.BlockCommitment[]\",\"name\":\"blockCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct IRouter.CodeCommitment[]\",\"name\":\"codeCommitmentsArray\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitCodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"decoderImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"createProgramWithDecoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStorageSlot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirrorProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_validatorsKeys\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBlockCommitmentHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirror\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorProxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"programsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blobTxHash\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_baseWeight\",\"type\":\"uint64\"}],\"name\":\"setBaseWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"namespace\",\"type\":\"string\"}],\"name\":\"setStorageSlot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_valuePerWeight\",\"type\":\"uint128\"}],\"name\":\"setValuePerWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validatorsAddressArray\",\"type\":\"address[]\"}],\"name\":\"updateValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"validatorExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"valuePerWeight\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"BaseWeightChanged(uint64)\":{\"details\":\"Emitted when the tx's base weight is changed. NOTE: It's event for USERS: it informs about new value of commission for each message sending. NOTE: It's event for NODES: it requires to update commission in programs execution parameters.\"},\"BlockCommitted(bytes32)\":{\"details\":\"Emitted when a new state transitions are applied. NOTE: It's event for USERS: it informs about new block outcome committed.\"},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"Emitted when a code, previously requested to be validated, gets validated. NOTE: It's event for USERS: it informs about validation results of previously requested code.\"},\"CodeValidationRequested(bytes32,bytes32)\":{\"details\":\"Emitted when a new code validation request submitted. NOTE: It's event for NODES: it requires to download and validate code from blob.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"Emitted when a new program created. NOTE: It's event for USERS: it informs about new program creation and it's availability on Ethereum. NOTE: It's event for NODES: it requires to create associated gear program in local storage.\"},\"StorageSlotChanged()\":{\"details\":\"Emitted when the storage slot is changed. NOTE: It's event for USERS: it informs about router being wiped and all programs and codes deletion. NOTE: It's event for NODES: it requires to clean the local storage.\"},\"ValidatorsSetChanged()\":{\"details\":\"Emitted when the validators set is changed. NOTE: It's event for USERS: it informs about validators rotation. NOTE: It's event for NODES: it requires to update authorities that sign outcomes.\"},\"ValuePerWeightChanged(uint128)\":{\"details\":\"Emitted when the value per executable weight is changed. NOTE: It's event for USERS: it informs about new conversion rate between weight and it's WVara price. NOTE: It's event for NODES: it requires to update conversion rate in programs execution parameters.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"programCodeId(address)\":{\"details\":\"Returns bytes32(0) in case of inexistent program.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64\",\"dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58\",\"dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x82d8c114d8e994851d5fb8b21ce02fb48907eec690df5f3af4111451a3390f89\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c08f1764a6263ea9bc4a8c4afe14cdc2f9486157ceafc9fa6f0a5ca6c58ba37\",\"dweb:/ipfs/QmWNZJmyp6M7JrdLE1cNKC8sGdZ3YdeHvujgyVqnQp7ubC\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421\",\"dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Router.sol\":{\"keccak256\":\"0x27ed0744c7feb1e69a78ed56fe5902d5b41f2c3b84ff3ed6ea1e0aab6673eaeb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3a0eb6b4ce45e9adb4136713f2d706d6bdc6472e191ca6f7bcb1d239a112e16c\",\"dweb:/ipfs/QmNh1qhFQESAb5Jzb2Lk41v2x1zoLLdioqxtMm23ouhko5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"baseWeight","type":"uint64","indexed":false}],"type":"event","name":"BaseWeightChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32","indexed":false}],"type":"event","name":"BlockCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"bool","name":"valid","type":"bool","indexed":true}],"type":"event","name":"CodeGotValidated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[],"type":"event","name":"ValidatorsSetChanged","anonymous":false},{"inputs":[{"internalType":"uint128","name":"valuePerWeight","type":"uint128","indexed":false}],"type":"event","name":"ValuePerWeightChanged","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFee","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseWeight","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum IRouter.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct IRouter.BlockCommitment[]","name":"blockCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"bytes32","name":"prevCommitmentHash","type":"bytes32"},{"internalType":"bytes32","name":"predBlockHash","type":"bytes32"},{"internalType":"struct IRouter.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"struct IRouter.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct IRouter.OutgoingMessage[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct IRouter.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]}]}]}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBlocks"},{"inputs":[{"internalType":"struct IRouter.CodeCommitment[]","name":"codeCommitmentsArray","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitCodes"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"decoderImplementation","type":"address"},{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createProgramWithDecoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStorageSlot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_mirrorProxy","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address[]","name":"_validatorsKeys","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBlockCommitmentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirror","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorProxy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"program","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"blobTxHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[{"internalType":"uint64","name":"_baseWeight","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setBaseWeight"},{"inputs":[{"internalType":"address","name":"_mirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"string","name":"namespace","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setStorageSlot"},{"inputs":[{"internalType":"uint128","name":"_valuePerWeight","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"setValuePerWeight"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address[]","name":"validatorsAddressArray","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"updateValidators"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"validatorExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"valuePerWeight","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"programCodeId(address)":{"details":"Returns bytes32(0) in case of inexistent program."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0x4cc853b89072428e406c60c6e8d5280b31f9d99d6caf7b041650e649746513a6","urls":["bzz-raw://38a1bbdb89a8f5d1820a2dcc34b5086a6e199c7a8965007345975b5db8997a64","dweb:/ipfs/QmcN6yJBkoserTqAMpue55HmMCMf7dGJYUbGi8p366HqZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x629828db7f6354641b2bc42f6f6742b07bed39959361f92b781224fd33cfb0c9","urls":["bzz-raw://a2654b69b5d9b42ad4c981875add283a06db8bd02e01c614d4f0d498860d0c58","dweb:/ipfs/QmWE3oD4Ti4UKrZTiA4cxAwprkFTpBYsLRrc62w5Lg16Q8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4","urls":["bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097","dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x82d8c114d8e994851d5fb8b21ce02fb48907eec690df5f3af4111451a3390f89","urls":["bzz-raw://3c08f1764a6263ea9bc4a8c4afe14cdc2f9486157ceafc9fa6f0a5ca6c58ba37","dweb:/ipfs/QmWNZJmyp6M7JrdLE1cNKC8sGdZ3YdeHvujgyVqnQp7ubC"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x4eea409058588f3e4d88b1687bfe367c6a6407b905e5af2df693327ab443fa7a","urls":["bzz-raw://fc93c4fdb632d11e8cbfea97f2bf10d9e40fedd38649fdc020d65fd52d122421","dweb:/ipfs/QmVsGD6aQ8oZqTAZJNrdQotWynFLGpfWD7zrfDSNumx87s"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Router.sol":{"keccak256":"0x27ed0744c7feb1e69a78ed56fe5902d5b41f2c3b84ff3ed6ea1e0aab6673eaeb","urls":["bzz-raw://3a0eb6b4ce45e9adb4136713f2d706d6bdc6472e191ca6f7bcb1d239a112e16c","dweb:/ipfs/QmNh1qhFQESAb5Jzb2Lk41v2x1zoLLdioqxtMm23ouhko5"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":56270,"exportedSymbols":{"Clones":[41121],"ECDSA":[43387],"IERC20":[41906],"IMirror":[53648],"IRouter":[54013],"IWrappedVara":[54024],"MessageHashUtils":[43461],"OwnableUpgradeable":[39024],"ReentrancyGuardTransient":[42400],"Router":[56269],"StorageSlot":[42719]},"nodeType":"SourceUnit","src":"39:18240:82","nodes":[{"id":54564,"nodeType":"PragmaDirective","src":"39:24:82","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":54566,"nodeType":"ImportDirective","src":"65:74:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":42720,"symbolAliases":[{"foreign":{"id":54565,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42719,"src":"73:11:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54568,"nodeType":"ImportDirective","src":"140:101:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":39025,"symbolAliases":[{"foreign":{"id":54567,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39024,"src":"148:18:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54570,"nodeType":"ImportDirective","src":"242:64:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":41122,"symbolAliases":[{"foreign":{"id":54569,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"250:6:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54572,"nodeType":"ImportDirective","src":"307:75:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":43388,"symbolAliases":[{"foreign":{"id":54571,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43387,"src":"315:5:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54574,"nodeType":"ImportDirective","src":"383:97:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":43462,"symbolAliases":[{"foreign":{"id":54573,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43461,"src":"391:16:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54576,"nodeType":"ImportDirective","src":"481:100:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":42401,"symbolAliases":[{"foreign":{"id":54575,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42400,"src":"489:24:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54578,"nodeType":"ImportDirective","src":"582:38:82","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":54014,"symbolAliases":[{"foreign":{"id":54577,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54013,"src":"590:7:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54580,"nodeType":"ImportDirective","src":"621:38:82","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":53649,"symbolAliases":[{"foreign":{"id":54579,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"629:7:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54582,"nodeType":"ImportDirective","src":"660:48:82","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":54025,"symbolAliases":[{"foreign":{"id":54581,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54024,"src":"668:12:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54584,"nodeType":"ImportDirective","src":"709:70:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":56270,"sourceUnit":41907,"symbolAliases":[{"foreign":{"id":54583,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41906,"src":"717:6:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56269,"nodeType":"ContractDefinition","src":"781:17497:82","nodes":[{"id":54593,"nodeType":"UsingForDirective","src":"860:24:82","nodes":[],"global":false,"libraryName":{"id":54591,"name":"ECDSA","nameLocations":["866:5:82"],"nodeType":"IdentifierPath","referencedDeclaration":43387,"src":"866:5:82"},"typeName":{"id":54592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"876:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":54596,"nodeType":"UsingForDirective","src":"889:35:82","nodes":[],"global":false,"libraryName":{"id":54594,"name":"MessageHashUtils","nameLocations":["895:16:82"],"nodeType":"IdentifierPath","referencedDeclaration":43461,"src":"895:16:82"},"typeName":{"id":54595,"name":"address","nodeType":"ElementaryTypeName","src":"916:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":54599,"nodeType":"VariableDeclaration","src":"1032:106:82","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1057:12:82","scope":56269,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1032:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":54598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1072:66:82","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":54607,"nodeType":"FunctionDefinition","src":"1198:53:82","nodes":[],"body":{"id":54606,"nodeType":"Block","src":"1212:39:82","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":54603,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39246,"src":"1222:20:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":54604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1222:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54605,"nodeType":"ExpressionStatement","src":"1222:22:82"}]},"documentation":{"id":54600,"nodeType":"StructuredDocumentation","src":"1145:48:82","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54601,"nodeType":"ParameterList","parameters":[],"src":"1209:2:82"},"returnParameters":{"id":54602,"nodeType":"ParameterList","parameters":[],"src":"1212:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54689,"nodeType":"FunctionDefinition","src":"1257:728:82","nodes":[],"body":{"id":54688,"nodeType":"Block","src":"1459:526:82","nodes":[],"statements":[{"expression":{"arguments":[{"id":54624,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"1484:12:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54623,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38884,"src":"1469:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1469:28:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54626,"nodeType":"ExpressionStatement","src":"1469:28:82"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":54628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1523:25:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""},"value":"router.storage.RouterV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""}],"id":54627,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54830,"src":"1508:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":54629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1508:41:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54630,"nodeType":"ExpressionStatement","src":"1508:41:82"},{"assignments":[54633],"declarations":[{"constant":false,"id":54633,"mutability":"mutable","name":"router","nameLocation":"1575:6:82","nodeType":"VariableDeclaration","scope":54688,"src":"1559:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54632,"nodeType":"UserDefinedTypeName","pathNode":{"id":54631,"name":"Storage","nameLocations":["1559:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"1559:7:82"},"referencedDeclaration":53731,"src":"1559:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54636,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54634,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"1584:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1584:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1559:38:82"},{"expression":{"id":54646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54637,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1608:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1615:16:82","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":53696,"src":"1608:23:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54641,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1644:5:82","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1650:6:82","memberName":"number","nodeType":"MemberAccess","src":"1644:12:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":54643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1659:1:82","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1644:16:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54640,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"1634:9:82","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1634:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1608:53:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54647,"nodeType":"ExpressionStatement","src":"1608:53:82"},{"expression":{"id":54652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54648,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1671:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1678:6:82","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53698,"src":"1671:13:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54651,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"1687:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1671:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54653,"nodeType":"ExpressionStatement","src":"1671:23:82"},{"expression":{"id":54658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54654,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1704:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1711:11:82","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":53700,"src":"1704:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54657,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"1725:12:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1704:33:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54659,"nodeType":"ExpressionStatement","src":"1704:33:82"},{"expression":{"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54660,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1747:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1754:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"1747:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54663,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54615,"src":"1768:12:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1747:33:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54665,"nodeType":"ExpressionStatement","src":"1747:33:82"},{"expression":{"id":54670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54666,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1790:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1797:26:82","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":53706,"src":"1790:33:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"36363636","id":54669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1826:4:82","typeDescriptions":{"typeIdentifier":"t_rational_6666_by_1","typeString":"int_const 6666"},"value":"6666"},"src":"1790:40:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54671,"nodeType":"ExpressionStatement","src":"1790:40:82"},{"expression":{"id":54676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54672,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1868:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1875:10:82","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":53708,"src":"1868:17:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"325f3530305f3030305f303030","id":54675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1888:13:82","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"src":"1868:33:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54677,"nodeType":"ExpressionStatement","src":"1868:33:82"},{"expression":{"id":54682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54678,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54633,"src":"1911:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1918:14:82","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":53710,"src":"1911:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130","id":54681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1935:2:82","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1911:26:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":54683,"nodeType":"ExpressionStatement","src":"1911:26:82"},{"expression":{"arguments":[{"id":54685,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54618,"src":"1962:15:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":54684,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56255,"src":"1947:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":54686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1947:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54687,"nodeType":"ExpressionStatement","src":"1947:31:82"}]},"functionSelector":"f8453e7c","implemented":true,"kind":"function","modifiers":[{"id":54621,"kind":"modifierInvocation","modifierName":{"id":54620,"name":"initializer","nameLocations":["1447:11:82"],"nodeType":"IdentifierPath","referencedDeclaration":39132,"src":"1447:11:82"},"nodeType":"ModifierInvocation","src":"1447:11:82"}],"name":"initialize","nameLocation":"1266:10:82","parameters":{"id":54619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54609,"mutability":"mutable","name":"initialOwner","nameLocation":"1294:12:82","nodeType":"VariableDeclaration","scope":54689,"src":"1286:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54608,"name":"address","nodeType":"ElementaryTypeName","src":"1286:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54611,"mutability":"mutable","name":"_mirror","nameLocation":"1324:7:82","nodeType":"VariableDeclaration","scope":54689,"src":"1316:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54610,"name":"address","nodeType":"ElementaryTypeName","src":"1316:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54613,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"1349:12:82","nodeType":"VariableDeclaration","scope":54689,"src":"1341:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54612,"name":"address","nodeType":"ElementaryTypeName","src":"1341:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54615,"mutability":"mutable","name":"_wrappedVara","nameLocation":"1379:12:82","nodeType":"VariableDeclaration","scope":54689,"src":"1371:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54614,"name":"address","nodeType":"ElementaryTypeName","src":"1371:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54618,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"1418:15:82","nodeType":"VariableDeclaration","scope":54689,"src":"1401:32:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54616,"name":"address","nodeType":"ElementaryTypeName","src":"1401:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54617,"nodeType":"ArrayTypeName","src":"1401:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1276:163:82"},"returnParameters":{"id":54622,"nodeType":"ParameterList","parameters":[],"src":"1459:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54770,"nodeType":"FunctionDefinition","src":"1991:662:82","nodes":[],"body":{"id":54769,"nodeType":"Block","src":"2049:604:82","nodes":[],"statements":[{"assignments":[54699],"declarations":[{"constant":false,"id":54699,"mutability":"mutable","name":"oldRouter","nameLocation":"2075:9:82","nodeType":"VariableDeclaration","scope":54769,"src":"2059:25:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54698,"nodeType":"UserDefinedTypeName","pathNode":{"id":54697,"name":"Storage","nameLocations":["2059:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"2059:7:82"},"referencedDeclaration":53731,"src":"2059:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54702,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54700,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"2087:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2087:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2059:41:82"},{"assignments":[54704],"declarations":[{"constant":false,"id":54704,"mutability":"mutable","name":"_mirror","nameLocation":"2119:7:82","nodeType":"VariableDeclaration","scope":54769,"src":"2111:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54703,"name":"address","nodeType":"ElementaryTypeName","src":"2111:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":54707,"initialValue":{"expression":{"id":54705,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"2129:9:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2139:6:82","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53698,"src":"2129:16:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2111:34:82"},{"assignments":[54709],"declarations":[{"constant":false,"id":54709,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"2163:12:82","nodeType":"VariableDeclaration","scope":54769,"src":"2155:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54708,"name":"address","nodeType":"ElementaryTypeName","src":"2155:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":54712,"initialValue":{"expression":{"id":54710,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"2178:9:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2188:11:82","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":53700,"src":"2178:21:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2155:44:82"},{"assignments":[54714],"declarations":[{"constant":false,"id":54714,"mutability":"mutable","name":"_wrappedVara","nameLocation":"2217:12:82","nodeType":"VariableDeclaration","scope":54769,"src":"2209:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54713,"name":"address","nodeType":"ElementaryTypeName","src":"2209:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":54717,"initialValue":{"expression":{"id":54715,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"2232:9:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2242:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"2232:21:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2209:44:82"},{"assignments":[54722],"declarations":[{"constant":false,"id":54722,"mutability":"mutable","name":"_validatorsKeys","nameLocation":"2280:15:82","nodeType":"VariableDeclaration","scope":54769,"src":"2263:32:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54720,"name":"address","nodeType":"ElementaryTypeName","src":"2263:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54721,"nodeType":"ArrayTypeName","src":"2263:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54725,"initialValue":{"expression":{"id":54723,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"2298:9:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2308:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"2298:24:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2263:59:82"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":54727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2348:25:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""},"value":"router.storage.RouterV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""}],"id":54726,"name":"setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54830,"src":"2333:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":54728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2333:41:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54729,"nodeType":"ExpressionStatement","src":"2333:41:82"},{"assignments":[54732],"declarations":[{"constant":false,"id":54732,"mutability":"mutable","name":"router","nameLocation":"2400:6:82","nodeType":"VariableDeclaration","scope":54769,"src":"2384:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54731,"nodeType":"UserDefinedTypeName","pathNode":{"id":54730,"name":"Storage","nameLocations":["2384:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"2384:7:82"},"referencedDeclaration":53731,"src":"2384:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54733,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"2409:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2409:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2384:38:82"},{"expression":{"id":54745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54736,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54732,"src":"2433:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2440:16:82","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":53696,"src":"2433:23:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54740,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2469:5:82","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2475:6:82","memberName":"number","nodeType":"MemberAccess","src":"2469:12:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":54742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2484:1:82","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2469:16:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54739,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"2459:9:82","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":54744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2459:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2433:53:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54746,"nodeType":"ExpressionStatement","src":"2433:53:82"},{"expression":{"id":54751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54747,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54732,"src":"2496:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2503:6:82","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53698,"src":"2496:13:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54750,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54704,"src":"2512:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2496:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54752,"nodeType":"ExpressionStatement","src":"2496:23:82"},{"expression":{"id":54757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54753,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54732,"src":"2529:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2536:11:82","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":53700,"src":"2529:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54756,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54709,"src":"2550:12:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2529:33:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54758,"nodeType":"ExpressionStatement","src":"2529:33:82"},{"expression":{"id":54763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54759,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54732,"src":"2572:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2579:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"2572:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54762,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54714,"src":"2593:12:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2572:33:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54764,"nodeType":"ExpressionStatement","src":"2572:33:82"},{"expression":{"arguments":[{"id":54766,"name":"_validatorsKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54722,"src":"2630:15:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":54765,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56255,"src":"2615:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":54767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2615:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54768,"nodeType":"ExpressionStatement","src":"2615:31:82"}]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":54692,"kind":"modifierInvocation","modifierName":{"id":54691,"name":"onlyOwner","nameLocations":["2022:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"2022:9:82"},"nodeType":"ModifierInvocation","src":"2022:9:82"},{"arguments":[{"hexValue":"32","id":54694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:1:82","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":54695,"kind":"modifierInvocation","modifierName":{"id":54693,"name":"reinitializer","nameLocations":["2032:13:82"],"nodeType":"IdentifierPath","referencedDeclaration":39179,"src":"2032:13:82"},"nodeType":"ModifierInvocation","src":"2032:16:82"}],"name":"reinitialize","nameLocation":"2000:12:82","parameters":{"id":54690,"nodeType":"ParameterList","parameters":[],"src":"2012:2:82"},"returnParameters":{"id":54696,"nodeType":"ParameterList","parameters":[],"src":"2049:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54782,"nodeType":"FunctionDefinition","src":"2692:126:82","nodes":[],"body":{"id":54781,"nodeType":"Block","src":"2748:70:82","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":54777,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"2792:12:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":54775,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42719,"src":"2765:11:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$42719_$","typeString":"type(library StorageSlot)"}},"id":54776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2777:14:82","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":42457,"src":"2765:26:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$42412_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":54778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:40:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$42412_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":54779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2806:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":42411,"src":"2765:46:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54774,"id":54780,"nodeType":"Return","src":"2758:53:82"}]},"baseFunctions":[53837],"functionSelector":"96708226","implemented":true,"kind":"function","modifiers":[],"name":"getStorageSlot","nameLocation":"2701:14:82","parameters":{"id":54771,"nodeType":"ParameterList","parameters":[],"src":"2715:2:82"},"returnParameters":{"id":54774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54782,"src":"2739:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2739:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2738:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54830,"nodeType":"FunctionDefinition","src":"2824:287:82","nodes":[],"body":{"id":54829,"nodeType":"Block","src":"2890:221:82","nodes":[],"statements":[{"assignments":[54790],"declarations":[{"constant":false,"id":54790,"mutability":"mutable","name":"slot","nameLocation":"2908:4:82","nodeType":"VariableDeclaration","scope":54829,"src":"2900:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2900:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":54816,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":54815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":54799,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54784,"src":"2960:9:82","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":54798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2954:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":54797,"name":"bytes","nodeType":"ElementaryTypeName","src":"2954:5:82","typeDescriptions":{}}},"id":54800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2954:16:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54796,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2944:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2944:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2936:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":54794,"name":"uint256","nodeType":"ElementaryTypeName","src":"2936:7:82","typeDescriptions":{}}},"id":54802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2936:36:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":54803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2975:1:82","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2936:40:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54792,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2925:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2929:6:82","memberName":"encode","nodeType":"MemberAccess","src":"2925:10:82","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:52:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54791,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2915:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2915:63:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":54814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"2981:23:82","subExpression":{"arguments":[{"arguments":[{"hexValue":"30786666","id":54811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2998:4:82","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":54810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2990:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":54809,"name":"uint256","nodeType":"ElementaryTypeName","src":"2990:7:82","typeDescriptions":{}}},"id":54812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2990:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2982:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2982:7:82","typeDescriptions":{}}},"id":54813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2982:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2915:89:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2900:104:82"},{"expression":{"id":54824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":54820,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"3042:12:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":54817,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42719,"src":"3015:11:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$42719_$","typeString":"type(library StorageSlot)"}},"id":54819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3027:14:82","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":42457,"src":"3015:26:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$42412_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":54821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3015:40:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$42412_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":54822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3056:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":42411,"src":"3015:46:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54823,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54790,"src":"3064:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3015:53:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54825,"nodeType":"ExpressionStatement","src":"3015:53:82"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":54826,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53822,"src":"3084:18:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":54827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3084:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54828,"nodeType":"EmitStatement","src":"3079:25:82"}]},"baseFunctions":[53842],"functionSelector":"5686cad5","implemented":true,"kind":"function","modifiers":[{"id":54787,"kind":"modifierInvocation","modifierName":{"id":54786,"name":"onlyOwner","nameLocations":["2880:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"2880:9:82"},"nodeType":"ModifierInvocation","src":"2880:9:82"}],"name":"setStorageSlot","nameLocation":"2833:14:82","parameters":{"id":54785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54784,"mutability":"mutable","name":"namespace","nameLocation":"2862:9:82","nodeType":"VariableDeclaration","scope":54830,"src":"2848:23:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54783,"name":"string","nodeType":"ElementaryTypeName","src":"2848:6:82","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2847:25:82"},"returnParameters":{"id":54788,"nodeType":"ParameterList","parameters":[],"src":"2890:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54845,"nodeType":"FunctionDefinition","src":"3117:153:82","nodes":[],"body":{"id":54844,"nodeType":"Block","src":"3175:95:82","nodes":[],"statements":[{"assignments":[54837],"declarations":[{"constant":false,"id":54837,"mutability":"mutable","name":"router","nameLocation":"3201:6:82","nodeType":"VariableDeclaration","scope":54844,"src":"3185:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54836,"nodeType":"UserDefinedTypeName","pathNode":{"id":54835,"name":"Storage","nameLocations":["3185:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3185:7:82"},"referencedDeclaration":53731,"src":"3185:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54840,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54838,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3210:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3210:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3185:38:82"},{"expression":{"expression":{"id":54841,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54837,"src":"3240:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3247:16:82","memberName":"genesisBlockHash","nodeType":"MemberAccess","referencedDeclaration":53696,"src":"3240:23:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54834,"id":54843,"nodeType":"Return","src":"3233:30:82"}]},"baseFunctions":[53847],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"3126:16:82","parameters":{"id":54831,"nodeType":"ParameterList","parameters":[],"src":"3142:2:82"},"returnParameters":{"id":54834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54845,"src":"3166:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3166:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3165:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54860,"nodeType":"FunctionDefinition","src":"3276:167:82","nodes":[],"body":{"id":54859,"nodeType":"Block","src":"3341:102:82","nodes":[],"statements":[{"assignments":[54852],"declarations":[{"constant":false,"id":54852,"mutability":"mutable","name":"router","nameLocation":"3367:6:82","nodeType":"VariableDeclaration","scope":54859,"src":"3351:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54851,"nodeType":"UserDefinedTypeName","pathNode":{"id":54850,"name":"Storage","nameLocations":["3351:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3351:7:82"},"referencedDeclaration":53731,"src":"3351:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54855,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54853,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3376:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3376:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3351:38:82"},{"expression":{"expression":{"id":54856,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54852,"src":"3406:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3413:23:82","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":53704,"src":"3406:30:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54849,"id":54858,"nodeType":"Return","src":"3399:37:82"}]},"baseFunctions":[53852],"functionSelector":"2dacfb69","implemented":true,"kind":"function","modifiers":[],"name":"lastBlockCommitmentHash","nameLocation":"3285:23:82","parameters":{"id":54846,"nodeType":"ParameterList","parameters":[],"src":"3308:2:82"},"returnParameters":{"id":54849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54848,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54860,"src":"3332:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3332:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3331:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54875,"nodeType":"FunctionDefinition","src":"3449:143:82","nodes":[],"body":{"id":54874,"nodeType":"Block","src":"3502:90:82","nodes":[],"statements":[{"assignments":[54867],"declarations":[{"constant":false,"id":54867,"mutability":"mutable","name":"router","nameLocation":"3528:6:82","nodeType":"VariableDeclaration","scope":54874,"src":"3512:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54866,"nodeType":"UserDefinedTypeName","pathNode":{"id":54865,"name":"Storage","nameLocations":["3512:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3512:7:82"},"referencedDeclaration":53731,"src":"3512:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54870,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54868,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3537:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3537:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3512:38:82"},{"expression":{"expression":{"id":54871,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"3567:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3574:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"3567:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54864,"id":54873,"nodeType":"Return","src":"3560:25:82"}]},"baseFunctions":[53857],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"3458:11:82","parameters":{"id":54861,"nodeType":"ParameterList","parameters":[],"src":"3469:2:82"},"returnParameters":{"id":54864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54863,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54875,"src":"3493:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54862,"name":"address","nodeType":"ElementaryTypeName","src":"3493:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3492:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54890,"nodeType":"FunctionDefinition","src":"3598:143:82","nodes":[],"body":{"id":54889,"nodeType":"Block","src":"3651:90:82","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"router","nameLocation":"3677:6:82","nodeType":"VariableDeclaration","scope":54889,"src":"3661:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54881,"nodeType":"UserDefinedTypeName","pathNode":{"id":54880,"name":"Storage","nameLocations":["3661:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3661:7:82"},"referencedDeclaration":53731,"src":"3661:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54885,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54883,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3686:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3686:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3661:38:82"},{"expression":{"expression":{"id":54886,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"3716:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3723:11:82","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":53700,"src":"3716:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54879,"id":54888,"nodeType":"Return","src":"3709:25:82"}]},"baseFunctions":[53862],"functionSelector":"78ee5dec","implemented":true,"kind":"function","modifiers":[],"name":"mirrorProxy","nameLocation":"3607:11:82","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[],"src":"3618:2:82"},"returnParameters":{"id":54879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54890,"src":"3642:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54877,"name":"address","nodeType":"ElementaryTypeName","src":"3642:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3641:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54905,"nodeType":"FunctionDefinition","src":"3747:133:82","nodes":[],"body":{"id":54904,"nodeType":"Block","src":"3795:85:82","nodes":[],"statements":[{"assignments":[54897],"declarations":[{"constant":false,"id":54897,"mutability":"mutable","name":"router","nameLocation":"3821:6:82","nodeType":"VariableDeclaration","scope":54904,"src":"3805:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54896,"nodeType":"UserDefinedTypeName","pathNode":{"id":54895,"name":"Storage","nameLocations":["3805:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3805:7:82"},"referencedDeclaration":53731,"src":"3805:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54900,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54898,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3830:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3830:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3805:38:82"},{"expression":{"expression":{"id":54901,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54897,"src":"3860:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3867:6:82","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53698,"src":"3860:13:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54894,"id":54903,"nodeType":"Return","src":"3853:20:82"}]},"baseFunctions":[53867],"functionSelector":"444d9172","implemented":true,"kind":"function","modifiers":[],"name":"mirror","nameLocation":"3756:6:82","parameters":{"id":54891,"nodeType":"ParameterList","parameters":[],"src":"3762:2:82"},"returnParameters":{"id":54894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54893,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54905,"src":"3786:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54892,"name":"address","nodeType":"ElementaryTypeName","src":"3786:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3785:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54925,"nodeType":"FunctionDefinition","src":"3886:143:82","nodes":[],"body":{"id":54924,"nodeType":"Block","src":"3941:88:82","nodes":[],"statements":[{"assignments":[54914],"declarations":[{"constant":false,"id":54914,"mutability":"mutable","name":"router","nameLocation":"3967:6:82","nodeType":"VariableDeclaration","scope":54924,"src":"3951:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54913,"nodeType":"UserDefinedTypeName","pathNode":{"id":54912,"name":"Storage","nameLocations":["3951:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"3951:7:82"},"referencedDeclaration":53731,"src":"3951:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54915,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"3976:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3976:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3951:38:82"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":54918,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54914,"src":"3999:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4006:6:82","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":53698,"src":"3999:13:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54907,"src":"4015:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3999:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54923,"nodeType":"ExpressionStatement","src":"3999:23:82"}]},"baseFunctions":[53872],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":54910,"kind":"modifierInvocation","modifierName":{"id":54909,"name":"onlyOwner","nameLocations":["3931:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"3931:9:82"},"nodeType":"ModifierInvocation","src":"3931:9:82"}],"name":"setMirror","nameLocation":"3895:9:82","parameters":{"id":54908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54907,"mutability":"mutable","name":"_mirror","nameLocation":"3913:7:82","nodeType":"VariableDeclaration","scope":54925,"src":"3905:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54906,"name":"address","nodeType":"ElementaryTypeName","src":"3905:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3904:17:82"},"returnParameters":{"id":54911,"nodeType":"ParameterList","parameters":[],"src":"3941:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54940,"nodeType":"FunctionDefinition","src":"4085:159:82","nodes":[],"body":{"id":54939,"nodeType":"Block","src":"4146:98:82","nodes":[],"statements":[{"assignments":[54932],"declarations":[{"constant":false,"id":54932,"mutability":"mutable","name":"router","nameLocation":"4172:6:82","nodeType":"VariableDeclaration","scope":54939,"src":"4156:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54931,"nodeType":"UserDefinedTypeName","pathNode":{"id":54930,"name":"Storage","nameLocations":["4156:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"4156:7:82"},"referencedDeclaration":53731,"src":"4156:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54935,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54933,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"4181:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4181:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4156:38:82"},{"expression":{"expression":{"id":54936,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54932,"src":"4211:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4218:19:82","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":53724,"src":"4211:26:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54929,"id":54938,"nodeType":"Return","src":"4204:33:82"}]},"baseFunctions":[53877],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"4094:19:82","parameters":{"id":54926,"nodeType":"ParameterList","parameters":[],"src":"4113:2:82"},"returnParameters":{"id":54929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54940,"src":"4137:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54927,"name":"uint256","nodeType":"ElementaryTypeName","src":"4137:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4136:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54960,"nodeType":"FunctionDefinition","src":"4250:159:82","nodes":[],"body":{"id":54959,"nodeType":"Block","src":"4317:92:82","nodes":[],"statements":[{"assignments":[54950],"declarations":[{"constant":false,"id":54950,"mutability":"mutable","name":"router","nameLocation":"4343:6:82","nodeType":"VariableDeclaration","scope":54959,"src":"4327:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54949,"nodeType":"UserDefinedTypeName","pathNode":{"id":54948,"name":"Storage","nameLocations":["4327:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"4327:7:82"},"referencedDeclaration":53731,"src":"4327:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54953,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54951,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"4352:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4352:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4327:38:82"},{"expression":{"baseExpression":{"expression":{"id":54954,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54950,"src":"4382:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4389:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"4382:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":54957,"indexExpression":{"id":54956,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54942,"src":"4395:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4382:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"functionReturnParameters":54947,"id":54958,"nodeType":"Return","src":"4375:27:82"}]},"baseFunctions":[53885],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"4259:9:82","parameters":{"id":54943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54942,"mutability":"mutable","name":"codeId","nameLocation":"4277:6:82","nodeType":"VariableDeclaration","scope":54960,"src":"4269:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54941,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4269:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4268:16:82"},"returnParameters":{"id":54947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54946,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54960,"src":"4306:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"},"typeName":{"id":54945,"nodeType":"UserDefinedTypeName","pathNode":{"id":54944,"name":"CodeState","nameLocations":["4306:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":53735,"src":"4306:9:82"},"referencedDeclaration":53735,"src":"4306:9:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"visibility":"internal"}],"src":"4305:11:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54975,"nodeType":"FunctionDefinition","src":"4415:147:82","nodes":[],"body":{"id":54974,"nodeType":"Block","src":"4470:92:82","nodes":[],"statements":[{"assignments":[54967],"declarations":[{"constant":false,"id":54967,"mutability":"mutable","name":"router","nameLocation":"4496:6:82","nodeType":"VariableDeclaration","scope":54974,"src":"4480:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54966,"nodeType":"UserDefinedTypeName","pathNode":{"id":54965,"name":"Storage","nameLocations":["4480:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"4480:7:82"},"referencedDeclaration":53731,"src":"4480:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54970,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54968,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"4505:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4480:38:82"},{"expression":{"expression":{"id":54971,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54967,"src":"4535:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4542:13:82","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":53730,"src":"4535:20:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54964,"id":54973,"nodeType":"Return","src":"4528:27:82"}]},"baseFunctions":[53890],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"4424:13:82","parameters":{"id":54961,"nodeType":"ParameterList","parameters":[],"src":"4437:2:82"},"returnParameters":{"id":54964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54975,"src":"4461:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54962,"name":"uint256","nodeType":"ElementaryTypeName","src":"4461:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4460:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54994,"nodeType":"FunctionDefinition","src":"4568:166:82","nodes":[],"body":{"id":54993,"nodeType":"Block","src":"4638:96:82","nodes":[],"statements":[{"assignments":[54984],"declarations":[{"constant":false,"id":54984,"mutability":"mutable","name":"router","nameLocation":"4664:6:82","nodeType":"VariableDeclaration","scope":54993,"src":"4648:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":54983,"nodeType":"UserDefinedTypeName","pathNode":{"id":54982,"name":"Storage","nameLocations":["4648:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"4648:7:82"},"referencedDeclaration":53731,"src":"4648:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":54987,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54985,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"4673:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":54986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4673:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4648:38:82"},{"expression":{"baseExpression":{"expression":{"id":54988,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54984,"src":"4703:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":54989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4710:8:82","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":53728,"src":"4703:15:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":54991,"indexExpression":{"id":54990,"name":"program","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54977,"src":"4719:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4703:24:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54981,"id":54992,"nodeType":"Return","src":"4696:31:82"}]},"baseFunctions":[53898],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"4577:13:82","parameters":{"id":54978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54977,"mutability":"mutable","name":"program","nameLocation":"4599:7:82","nodeType":"VariableDeclaration","scope":54994,"src":"4591:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54976,"name":"address","nodeType":"ElementaryTypeName","src":"4591:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4590:17:82"},"returnParameters":{"id":54981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54994,"src":"4629:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54979,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4629:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4628:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55009,"nodeType":"FunctionDefinition","src":"4785:173:82","nodes":[],"body":{"id":55008,"nodeType":"Block","src":"4853:105:82","nodes":[],"statements":[{"assignments":[55001],"declarations":[{"constant":false,"id":55001,"mutability":"mutable","name":"router","nameLocation":"4879:6:82","nodeType":"VariableDeclaration","scope":55008,"src":"4863:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55000,"nodeType":"UserDefinedTypeName","pathNode":{"id":54999,"name":"Storage","nameLocations":["4863:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"4863:7:82"},"referencedDeclaration":53731,"src":"4863:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55004,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55002,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"4888:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4888:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4863:38:82"},{"expression":{"expression":{"id":55005,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55001,"src":"4918:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4925:26:82","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":53706,"src":"4918:33:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54998,"id":55007,"nodeType":"Return","src":"4911:40:82"}]},"baseFunctions":[53903],"functionSelector":"efd81abc","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdPercentage","nameLocation":"4794:26:82","parameters":{"id":54995,"nodeType":"ParameterList","parameters":[],"src":"4820:2:82"},"returnParameters":{"id":54998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55009,"src":"4844:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54996,"name":"uint256","nodeType":"ElementaryTypeName","src":"4844:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4843:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55026,"nodeType":"FunctionDefinition","src":"4964:204:82","nodes":[],"body":{"id":55025,"nodeType":"Block","src":"5025:143:82","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":55014,"name":"validatorsCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"5097:15:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":55015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5097:17:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":55016,"name":"signingThresholdPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55009,"src":"5117:26:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":55017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5117:28:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5097:48:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"39393939","id":55019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5148:4:82","typeDescriptions":{"typeIdentifier":"t_rational_9999_by_1","typeString":"int_const 9999"},"value":"9999"},"src":"5097:55:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55021,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5096:57:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130303030","id":55022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5156:5:82","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"src":"5096:65:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55013,"id":55024,"nodeType":"Return","src":"5089:72:82"}]},"baseFunctions":[53908],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"4973:19:82","parameters":{"id":55010,"nodeType":"ParameterList","parameters":[],"src":"4992:2:82"},"returnParameters":{"id":55013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55026,"src":"5016:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55011,"name":"uint256","nodeType":"ElementaryTypeName","src":"5016:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5015:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55042,"nodeType":"FunctionDefinition","src":"5174:157:82","nodes":[],"body":{"id":55041,"nodeType":"Block","src":"5231:100:82","nodes":[],"statements":[{"assignments":[55033],"declarations":[{"constant":false,"id":55033,"mutability":"mutable","name":"router","nameLocation":"5257:6:82","nodeType":"VariableDeclaration","scope":55041,"src":"5241:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55032,"nodeType":"UserDefinedTypeName","pathNode":{"id":55031,"name":"Storage","nameLocations":["5241:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"5241:7:82"},"referencedDeclaration":53731,"src":"5241:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55036,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55034,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"5266:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5266:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5241:38:82"},{"expression":{"expression":{"expression":{"id":55037,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55033,"src":"5296:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5303:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"5296:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":55039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5318:6:82","memberName":"length","nodeType":"MemberAccess","src":"5296:28:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55030,"id":55040,"nodeType":"Return","src":"5289:35:82"}]},"baseFunctions":[53913],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"5183:15:82","parameters":{"id":55027,"nodeType":"ParameterList","parameters":[],"src":"5198:2:82"},"returnParameters":{"id":55030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55042,"src":"5222:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55028,"name":"uint256","nodeType":"ElementaryTypeName","src":"5222:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5221:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55061,"nodeType":"FunctionDefinition","src":"5337:171:82","nodes":[],"body":{"id":55060,"nodeType":"Block","src":"5408:100:82","nodes":[],"statements":[{"assignments":[55051],"declarations":[{"constant":false,"id":55051,"mutability":"mutable","name":"router","nameLocation":"5434:6:82","nodeType":"VariableDeclaration","scope":55060,"src":"5418:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55050,"nodeType":"UserDefinedTypeName","pathNode":{"id":55049,"name":"Storage","nameLocations":["5418:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"5418:7:82"},"referencedDeclaration":53731,"src":"5418:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55054,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55052,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"5443:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5443:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5418:38:82"},{"expression":{"baseExpression":{"expression":{"id":55055,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55051,"src":"5473:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5480:10:82","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":53714,"src":"5473:17:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":55058,"indexExpression":{"id":55057,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55044,"src":"5491:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5473:28:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":55048,"id":55059,"nodeType":"Return","src":"5466:35:82"}]},"baseFunctions":[53920],"functionSelector":"8febbd59","implemented":true,"kind":"function","modifiers":[],"name":"validatorExists","nameLocation":"5346:15:82","parameters":{"id":55045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55044,"mutability":"mutable","name":"validator","nameLocation":"5370:9:82","nodeType":"VariableDeclaration","scope":55061,"src":"5362:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55043,"name":"address","nodeType":"ElementaryTypeName","src":"5362:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5361:19:82"},"returnParameters":{"id":55048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55047,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55061,"src":"5402:4:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55046,"name":"bool","nodeType":"ElementaryTypeName","src":"5402:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5401:6:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55077,"nodeType":"FunctionDefinition","src":"5514:154:82","nodes":[],"body":{"id":55076,"nodeType":"Block","src":"5575:93:82","nodes":[],"statements":[{"assignments":[55069],"declarations":[{"constant":false,"id":55069,"mutability":"mutable","name":"router","nameLocation":"5601:6:82","nodeType":"VariableDeclaration","scope":55076,"src":"5585:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55068,"nodeType":"UserDefinedTypeName","pathNode":{"id":55067,"name":"Storage","nameLocations":["5585:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"5585:7:82"},"referencedDeclaration":53731,"src":"5585:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55072,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55070,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"5610:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5610:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5585:38:82"},{"expression":{"expression":{"id":55073,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55069,"src":"5640:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5647:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"5640:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":55066,"id":55075,"nodeType":"Return","src":"5633:28:82"}]},"baseFunctions":[53926],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"5523:10:82","parameters":{"id":55062,"nodeType":"ParameterList","parameters":[],"src":"5533:2:82"},"returnParameters":{"id":55066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55065,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55077,"src":"5557:16:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55063,"name":"address","nodeType":"ElementaryTypeName","src":"5557:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55064,"nodeType":"ArrayTypeName","src":"5557:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5556:18:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55096,"nodeType":"FunctionDefinition","src":"5731:209:82","nodes":[],"body":{"id":55095,"nodeType":"Block","src":"5819:121:82","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":55085,"name":"_cleanValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56200,"src":"5829:16:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":55086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5829:18:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55087,"nodeType":"ExpressionStatement","src":"5829:18:82"},{"expression":{"arguments":[{"id":55089,"name":"validatorsAddressArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55080,"src":"5872:22:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}],"id":55088,"name":"_setValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56255,"src":"5857:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory)"}},"id":55090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5857:38:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55091,"nodeType":"ExpressionStatement","src":"5857:38:82"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":55092,"name":"ValidatorsSetChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53819,"src":"5911:20:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":55093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5911:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55094,"nodeType":"EmitStatement","src":"5906:27:82"}]},"baseFunctions":[53932],"functionSelector":"e71731e4","implemented":true,"kind":"function","modifiers":[{"id":55083,"kind":"modifierInvocation","modifierName":{"id":55082,"name":"onlyOwner","nameLocations":["5809:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"5809:9:82"},"nodeType":"ModifierInvocation","src":"5809:9:82"}],"name":"updateValidators","nameLocation":"5740:16:82","parameters":{"id":55081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55080,"mutability":"mutable","name":"validatorsAddressArray","nameLocation":"5776:22:82","nodeType":"VariableDeclaration","scope":55096,"src":"5757:41:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55078,"name":"address","nodeType":"ElementaryTypeName","src":"5757:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55079,"nodeType":"ArrayTypeName","src":"5757:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5756:43:82"},"returnParameters":{"id":55084,"nodeType":"ParameterList","parameters":[],"src":"5819:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55111,"nodeType":"FunctionDefinition","src":"5994:140:82","nodes":[],"body":{"id":55110,"nodeType":"Block","src":"6045:89:82","nodes":[],"statements":[{"assignments":[55103],"declarations":[{"constant":false,"id":55103,"mutability":"mutable","name":"router","nameLocation":"6071:6:82","nodeType":"VariableDeclaration","scope":55110,"src":"6055:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55102,"nodeType":"UserDefinedTypeName","pathNode":{"id":55101,"name":"Storage","nameLocations":["6055:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"6055:7:82"},"referencedDeclaration":53731,"src":"6055:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55106,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55104,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"6080:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6080:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6055:38:82"},{"expression":{"expression":{"id":55107,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55103,"src":"6110:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6117:10:82","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":53708,"src":"6110:17:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":55100,"id":55109,"nodeType":"Return","src":"6103:24:82"}]},"baseFunctions":[53937],"functionSelector":"d3fd6364","implemented":true,"kind":"function","modifiers":[],"name":"baseWeight","nameLocation":"6003:10:82","parameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"6013:2:82"},"returnParameters":{"id":55100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55111,"src":"6037:6:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55098,"name":"uint64","nodeType":"ElementaryTypeName","src":"6037:6:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6036:8:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55135,"nodeType":"FunctionDefinition","src":"6140:204:82","nodes":[],"body":{"id":55134,"nodeType":"Block","src":"6202:142:82","nodes":[],"statements":[{"assignments":[55120],"declarations":[{"constant":false,"id":55120,"mutability":"mutable","name":"router","nameLocation":"6228:6:82","nodeType":"VariableDeclaration","scope":55134,"src":"6212:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55119,"nodeType":"UserDefinedTypeName","pathNode":{"id":55118,"name":"Storage","nameLocations":["6212:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"6212:7:82"},"referencedDeclaration":53731,"src":"6212:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55123,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55121,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"6237:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6237:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6212:38:82"},{"expression":{"id":55128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55124,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55120,"src":"6260:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6267:10:82","memberName":"baseWeight","nodeType":"MemberAccess","referencedDeclaration":53708,"src":"6260:17:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55127,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55113,"src":"6280:11:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6260:31:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":55129,"nodeType":"ExpressionStatement","src":"6260:31:82"},{"eventCall":{"arguments":[{"id":55131,"name":"_baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55113,"src":"6325:11:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55130,"name":"BaseWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53827,"src":"6307:17:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":55132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6307:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55133,"nodeType":"EmitStatement","src":"6302:35:82"}]},"baseFunctions":[53942],"functionSelector":"8028861a","implemented":true,"kind":"function","modifiers":[{"id":55116,"kind":"modifierInvocation","modifierName":{"id":55115,"name":"onlyOwner","nameLocations":["6192:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"6192:9:82"},"nodeType":"ModifierInvocation","src":"6192:9:82"}],"name":"setBaseWeight","nameLocation":"6149:13:82","parameters":{"id":55114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55113,"mutability":"mutable","name":"_baseWeight","nameLocation":"6170:11:82","nodeType":"VariableDeclaration","scope":55135,"src":"6163:18:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55112,"name":"uint64","nodeType":"ElementaryTypeName","src":"6163:6:82","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6162:20:82"},"returnParameters":{"id":55117,"nodeType":"ParameterList","parameters":[],"src":"6202:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55150,"nodeType":"FunctionDefinition","src":"6350:149:82","nodes":[],"body":{"id":55149,"nodeType":"Block","src":"6406:93:82","nodes":[],"statements":[{"assignments":[55142],"declarations":[{"constant":false,"id":55142,"mutability":"mutable","name":"router","nameLocation":"6432:6:82","nodeType":"VariableDeclaration","scope":55149,"src":"6416:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55141,"nodeType":"UserDefinedTypeName","pathNode":{"id":55140,"name":"Storage","nameLocations":["6416:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"6416:7:82"},"referencedDeclaration":53731,"src":"6416:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55145,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55143,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"6441:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6416:38:82"},{"expression":{"expression":{"id":55146,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55142,"src":"6471:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6478:14:82","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":53710,"src":"6471:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":55139,"id":55148,"nodeType":"Return","src":"6464:28:82"}]},"baseFunctions":[53947],"functionSelector":"0834fecc","implemented":true,"kind":"function","modifiers":[],"name":"valuePerWeight","nameLocation":"6359:14:82","parameters":{"id":55136,"nodeType":"ParameterList","parameters":[],"src":"6373:2:82"},"returnParameters":{"id":55139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55150,"src":"6397:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55137,"name":"uint128","nodeType":"ElementaryTypeName","src":"6397:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6396:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55174,"nodeType":"FunctionDefinition","src":"6505:229:82","nodes":[],"body":{"id":55173,"nodeType":"Block","src":"6576:158:82","nodes":[],"statements":[{"assignments":[55159],"declarations":[{"constant":false,"id":55159,"mutability":"mutable","name":"router","nameLocation":"6602:6:82","nodeType":"VariableDeclaration","scope":55173,"src":"6586:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55158,"nodeType":"UserDefinedTypeName","pathNode":{"id":55157,"name":"Storage","nameLocations":["6586:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"6586:7:82"},"referencedDeclaration":53731,"src":"6586:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55162,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55160,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"6611:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6611:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6586:38:82"},{"expression":{"id":55167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55163,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"6634:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6641:14:82","memberName":"valuePerWeight","nodeType":"MemberAccess","referencedDeclaration":53710,"src":"6634:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55166,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55152,"src":"6658:15:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6634:39:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":55168,"nodeType":"ExpressionStatement","src":"6634:39:82"},{"eventCall":{"arguments":[{"id":55170,"name":"_valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55152,"src":"6711:15:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":55169,"name":"ValuePerWeightChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53832,"src":"6689:21:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6689:38:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"EmitStatement","src":"6684:43:82"}]},"baseFunctions":[53952],"functionSelector":"a6bbbe1c","implemented":true,"kind":"function","modifiers":[{"id":55155,"kind":"modifierInvocation","modifierName":{"id":55154,"name":"onlyOwner","nameLocations":["6566:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"6566:9:82"},"nodeType":"ModifierInvocation","src":"6566:9:82"}],"name":"setValuePerWeight","nameLocation":"6514:17:82","parameters":{"id":55153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55152,"mutability":"mutable","name":"_valuePerWeight","nameLocation":"6540:15:82","nodeType":"VariableDeclaration","scope":55174,"src":"6532:23:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55151,"name":"uint128","nodeType":"ElementaryTypeName","src":"6532:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6531:25:82"},"returnParameters":{"id":55156,"nodeType":"ParameterList","parameters":[],"src":"6576:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55189,"nodeType":"FunctionDefinition","src":"6740:113:82","nodes":[],"body":{"id":55188,"nodeType":"Block","src":"6789:64:82","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":55186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":55181,"name":"baseWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55111,"src":"6814:10:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":55182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6814:12:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6806:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":55179,"name":"uint128","nodeType":"ElementaryTypeName","src":"6806:7:82","typeDescriptions":{}}},"id":55183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:21:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":55184,"name":"valuePerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55150,"src":"6830:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":55185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6830:16:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6806:40:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":55178,"id":55187,"nodeType":"Return","src":"6799:47:82"}]},"baseFunctions":[53957],"functionSelector":"6ef25c3a","implemented":true,"kind":"function","modifiers":[],"name":"baseFee","nameLocation":"6749:7:82","parameters":{"id":55175,"nodeType":"ParameterList","parameters":[],"src":"6756:2:82"},"returnParameters":{"id":55178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55189,"src":"6780:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55176,"name":"uint128","nodeType":"ElementaryTypeName","src":"6780:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6779:9:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55241,"nodeType":"FunctionDefinition","src":"6889:453:82","nodes":[],"body":{"id":55240,"nodeType":"Block","src":"6965:377:82","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55197,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55193,"src":"6983:10:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":55198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6997:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6983:15:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":55201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7011:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":55200,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"7002:8:82","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":55202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:11:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":55203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7017:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7002:16:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6983:35:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"626c6f6254784861736820636f756c646e277420626520666f756e64","id":55206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7020:30:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""},"value":"blobTxHash couldn't be found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_944fe86403884466c74284042289853a231d438ed298af2a81bff9b6914f84e1","typeString":"literal_string \"blobTxHash couldn't be found\""}],"id":55196,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6975:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6975:76:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55208,"nodeType":"ExpressionStatement","src":"6975:76:82"},{"assignments":[55211],"declarations":[{"constant":false,"id":55211,"mutability":"mutable","name":"router","nameLocation":"7078:6:82","nodeType":"VariableDeclaration","scope":55240,"src":"7062:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55210,"nodeType":"UserDefinedTypeName","pathNode":{"id":55209,"name":"Storage","nameLocations":["7062:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"7062:7:82"},"referencedDeclaration":53731,"src":"7062:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55214,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55212,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"7087:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7087:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7062:38:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"},"id":55222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":55216,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"7119:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7126:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"7119:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55219,"indexExpression":{"id":55218,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55191,"src":"7132:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7119:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55220,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"7143:9:82","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$53735_$","typeString":"type(enum IRouter.CodeState)"}},"id":55221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7153:7:82","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":53732,"src":"7143:17:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"src":"7119:41:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652077697468207375636820696420616c726561647920726571756573746564206f722076616c696461746564","id":55223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7162:50:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""},"value":"code with such id already requested or validated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86d0efc10a98e1b7506967b99e345a37d8ca52b6f212bb7eaafd6d43a903647b","typeString":"literal_string \"code with such id already requested or validated\""}],"id":55215,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7111:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7111:102:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55225,"nodeType":"ExpressionStatement","src":"7111:102:82"},{"expression":{"id":55233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":55226,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55211,"src":"7224:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7231:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"7224:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55230,"indexExpression":{"id":55228,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55191,"src":"7237:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7224:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55231,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"7247:9:82","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$53735_$","typeString":"type(enum IRouter.CodeState)"}},"id":55232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7257:19:82","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":53733,"src":"7247:29:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"src":"7224:52:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"id":55234,"nodeType":"ExpressionStatement","src":"7224:52:82"},{"eventCall":{"arguments":[{"id":55236,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55191,"src":"7316:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55237,"name":"blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55193,"src":"7324:10:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55235,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53802,"src":"7292:23:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":55238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7292:43:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55239,"nodeType":"EmitStatement","src":"7287:48:82"}]},"baseFunctions":[53964],"functionSelector":"1c149d8a","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidation","nameLocation":"6898:21:82","parameters":{"id":55194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55191,"mutability":"mutable","name":"codeId","nameLocation":"6928:6:82","nodeType":"VariableDeclaration","scope":55241,"src":"6920:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6920:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55193,"mutability":"mutable","name":"blobTxHash","nameLocation":"6944:10:82","nodeType":"VariableDeclaration","scope":55241,"src":"6936:18:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6936:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6919:36:82"},"returnParameters":{"id":55195,"nodeType":"ParameterList","parameters":[],"src":"6965:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55278,"nodeType":"FunctionDefinition","src":"7348:381:82","nodes":[],"body":{"id":55277,"nodeType":"Block","src":"7504:225:82","nodes":[],"statements":[{"assignments":[55255,55257],"declarations":[{"constant":false,"id":55255,"mutability":"mutable","name":"actorId","nameLocation":"7523:7:82","nodeType":"VariableDeclaration","scope":55277,"src":"7515:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55254,"name":"address","nodeType":"ElementaryTypeName","src":"7515:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55257,"mutability":"mutable","name":"executableBalance","nameLocation":"7540:17:82","nodeType":"VariableDeclaration","scope":55277,"src":"7532:25:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55256,"name":"uint128","nodeType":"ElementaryTypeName","src":"7532:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":55263,"initialValue":{"arguments":[{"id":55259,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55243,"src":"7590:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55260,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55245,"src":"7598:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55261,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"7604:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":55258,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55598,"src":"7561:28:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":55262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7561:50:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"7514:97:82"},{"expression":{"arguments":[{"expression":{"id":55268,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"7651:2:82","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":55269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7654:6:82","memberName":"origin","nodeType":"MemberAccess","src":"7651:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55270,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55247,"src":"7662:7:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":55271,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55249,"src":"7671:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":55272,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55257,"src":"7679:17:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":55265,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55255,"src":"7630:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55264,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"7622:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$53648_$","typeString":"type(contract IMirror)"}},"id":55266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:16:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7639:11:82","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":53647,"src":"7622:28:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":55273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:75:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55274,"nodeType":"ExpressionStatement","src":"7622:75:82"},{"expression":{"id":55275,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55255,"src":"7715:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55253,"id":55276,"nodeType":"Return","src":"7708:14:82"}]},"baseFunctions":[53977],"functionSelector":"8074b455","implemented":true,"kind":"function","modifiers":[],"name":"createProgram","nameLocation":"7357:13:82","parameters":{"id":55250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55243,"mutability":"mutable","name":"codeId","nameLocation":"7379:6:82","nodeType":"VariableDeclaration","scope":55278,"src":"7371:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7371:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55245,"mutability":"mutable","name":"salt","nameLocation":"7395:4:82","nodeType":"VariableDeclaration","scope":55278,"src":"7387:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7387:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55247,"mutability":"mutable","name":"payload","nameLocation":"7416:7:82","nodeType":"VariableDeclaration","scope":55278,"src":"7401:22:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":55246,"name":"bytes","nodeType":"ElementaryTypeName","src":"7401:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":55249,"mutability":"mutable","name":"_value","nameLocation":"7433:6:82","nodeType":"VariableDeclaration","scope":55278,"src":"7425:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55248,"name":"uint128","nodeType":"ElementaryTypeName","src":"7425:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7370:70:82"},"returnParameters":{"id":55253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55278,"src":"7491:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55251,"name":"address","nodeType":"ElementaryTypeName","src":"7491:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7490:9:82"},"scope":56269,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":55336,"nodeType":"FunctionDefinition","src":"7735:596:82","nodes":[],"body":{"id":55335,"nodeType":"Block","src":"7951:380:82","nodes":[],"statements":[{"assignments":[55294,55296],"declarations":[{"constant":false,"id":55294,"mutability":"mutable","name":"actorId","nameLocation":"7970:7:82","nodeType":"VariableDeclaration","scope":55335,"src":"7962:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55293,"name":"address","nodeType":"ElementaryTypeName","src":"7962:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55296,"mutability":"mutable","name":"executableBalance","nameLocation":"7987:17:82","nodeType":"VariableDeclaration","scope":55335,"src":"7979:25:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55295,"name":"uint128","nodeType":"ElementaryTypeName","src":"7979:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":55302,"initialValue":{"arguments":[{"id":55298,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"8037:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55299,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"8045:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55300,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55288,"src":"8051:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":55297,"name":"_createProgramWithoutMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55598,"src":"8008:28:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint128_$returns$_t_address_$_t_uint128_$","typeString":"function (bytes32,bytes32,uint128) returns (address,uint128)"}},"id":55301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8008:50:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"nodeType":"VariableDeclarationStatement","src":"7961:97:82"},{"assignments":[55305],"declarations":[{"constant":false,"id":55305,"mutability":"mutable","name":"mirrorInstance","nameLocation":"8077:14:82","nodeType":"VariableDeclaration","scope":55335,"src":"8069:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"},"typeName":{"id":55304,"nodeType":"UserDefinedTypeName","pathNode":{"id":55303,"name":"IMirror","nameLocations":["8069:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53648,"src":"8069:7:82"},"referencedDeclaration":53648,"src":"8069:7:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"visibility":"internal"}],"id":55309,"initialValue":{"arguments":[{"id":55307,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55294,"src":"8102:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55306,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"8094:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$53648_$","typeString":"type(contract IMirror)"}},"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8094:16:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"8069:41:82"},{"expression":{"arguments":[{"id":55313,"name":"decoderImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55280,"src":"8150:21:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":55317,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"8200:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55318,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"8208:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55315,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8183:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8187:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"8183:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8183:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55314,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8173:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8173:41:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55310,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55305,"src":"8121:14:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8136:13:82","memberName":"createDecoder","nodeType":"MemberAccess","referencedDeclaration":53636,"src":"8121:28:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) external"}},"id":55321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8121:94:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55322,"nodeType":"ExpressionStatement","src":"8121:94:82"},{"expression":{"arguments":[{"expression":{"id":55326,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"8253:2:82","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8256:6:82","memberName":"origin","nodeType":"MemberAccess","src":"8253:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55328,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55286,"src":"8264:7:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":55329,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55288,"src":"8273:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":55330,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55296,"src":"8281:17:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":55323,"name":"mirrorInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55305,"src":"8226:14:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8241:11:82","memberName":"initMessage","nodeType":"MemberAccess","referencedDeclaration":53647,"src":"8226:26:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$","typeString":"function (address,bytes memory,uint128,uint128) external"}},"id":55331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8226:73:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55332,"nodeType":"ExpressionStatement","src":"8226:73:82"},{"expression":{"id":55333,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55294,"src":"8317:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55292,"id":55334,"nodeType":"Return","src":"8310:14:82"}]},"baseFunctions":[53992],"functionSelector":"666d124c","implemented":true,"kind":"function","modifiers":[],"name":"createProgramWithDecoder","nameLocation":"7744:24:82","parameters":{"id":55289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55280,"mutability":"mutable","name":"decoderImplementation","nameLocation":"7786:21:82","nodeType":"VariableDeclaration","scope":55336,"src":"7778:29:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55279,"name":"address","nodeType":"ElementaryTypeName","src":"7778:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55282,"mutability":"mutable","name":"codeId","nameLocation":"7825:6:82","nodeType":"VariableDeclaration","scope":55336,"src":"7817:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7817:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55284,"mutability":"mutable","name":"salt","nameLocation":"7849:4:82","nodeType":"VariableDeclaration","scope":55336,"src":"7841:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7841:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55286,"mutability":"mutable","name":"payload","nameLocation":"7878:7:82","nodeType":"VariableDeclaration","scope":55336,"src":"7863:22:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":55285,"name":"bytes","nodeType":"ElementaryTypeName","src":"7863:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":55288,"mutability":"mutable","name":"_value","nameLocation":"7903:6:82","nodeType":"VariableDeclaration","scope":55336,"src":"7895:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55287,"name":"uint128","nodeType":"ElementaryTypeName","src":"7895:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7768:147:82"},"returnParameters":{"id":55292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55336,"src":"7942:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55290,"name":"address","nodeType":"ElementaryTypeName","src":"7942:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7941:9:82"},"scope":56269,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":55449,"nodeType":"FunctionDefinition","src":"8337:1117:82","nodes":[],"body":{"id":55448,"nodeType":"Block","src":"8444:1010:82","nodes":[],"statements":[{"assignments":[55348],"declarations":[{"constant":false,"id":55348,"mutability":"mutable","name":"router","nameLocation":"8470:6:82","nodeType":"VariableDeclaration","scope":55448,"src":"8454:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55347,"nodeType":"UserDefinedTypeName","pathNode":{"id":55346,"name":"Storage","nameLocations":["8454:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"8454:7:82"},"referencedDeclaration":53731,"src":"8454:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55351,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55349,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"8479:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8479:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8454:38:82"},{"assignments":[55353],"declarations":[{"constant":false,"id":55353,"mutability":"mutable","name":"codeCommetmentsHashes","nameLocation":"8516:21:82","nodeType":"VariableDeclaration","scope":55448,"src":"8503:34:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55352,"name":"bytes","nodeType":"ElementaryTypeName","src":"8503:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55354,"nodeType":"VariableDeclarationStatement","src":"8503:34:82"},{"body":{"id":55439,"nodeType":"Block","src":"8606:766:82","statements":[{"assignments":[55368],"declarations":[{"constant":false,"id":55368,"mutability":"mutable","name":"codeCommitment","nameLocation":"8644:14:82","nodeType":"VariableDeclaration","scope":55439,"src":"8620:38:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":55367,"nodeType":"UserDefinedTypeName","pathNode":{"id":55366,"name":"CodeCommitment","nameLocations":["8620:14:82"],"nodeType":"IdentifierPath","referencedDeclaration":53740,"src":"8620:14:82"},"referencedDeclaration":53740,"src":"8620:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"id":55372,"initialValue":{"baseExpression":{"id":55369,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"8661:20:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$53740_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":55371,"indexExpression":{"id":55370,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55356,"src":"8682:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8661:23:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"8620:64:82"},{"assignments":[55374],"declarations":[{"constant":false,"id":55374,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"8707:18:82","nodeType":"VariableDeclaration","scope":55439,"src":"8699:26:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8699:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55378,"initialValue":{"arguments":[{"id":55376,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55368,"src":"8748:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}],"id":55375,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56126,"src":"8728:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CodeCommitment_$53740_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.CodeCommitment calldata) pure returns (bytes32)"}},"id":55377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8728:35:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8699:64:82"},{"expression":{"id":55386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55379,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55353,"src":"8778:21:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55383,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55353,"src":"8815:21:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":55384,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"8838:18:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8802:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55380,"name":"bytes","nodeType":"ElementaryTypeName","src":"8802:5:82","typeDescriptions":{}}},"id":55382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8808:6:82","memberName":"concat","nodeType":"MemberAccess","src":"8802:12:82","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8802:55:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8778:79:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55387,"nodeType":"ExpressionStatement","src":"8778:79:82"},{"assignments":[55389],"declarations":[{"constant":false,"id":55389,"mutability":"mutable","name":"codeId","nameLocation":"8880:6:82","nodeType":"VariableDeclaration","scope":55439,"src":"8872:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8872:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55392,"initialValue":{"expression":{"id":55390,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55368,"src":"8889:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":55391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8904:2:82","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":53737,"src":"8889:17:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8872:34:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"},"id":55400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":55394,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55348,"src":"8928:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8935:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"8928:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55397,"indexExpression":{"id":55396,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"8941:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8928:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55398,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"8952:9:82","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$53735_$","typeString":"type(enum IRouter.CodeState)"}},"id":55399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8962:19:82","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":53733,"src":"8952:29:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"src":"8928:53:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f64652073686f756c642062652072657175657374656420666f722076616c69646174696f6e","id":55401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8983:41:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""},"value":"code should be requested for validation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f0f0146c5c6578abd878317fc7dbe7872a552fba3ce3a30a1e42dfd172e27f7","typeString":"literal_string \"code should be requested for validation\""}],"id":55393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8920:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8920:105:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55403,"nodeType":"ExpressionStatement","src":"8920:105:82"},{"condition":{"expression":{"id":55404,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55368,"src":"9044:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":55405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9059:5:82","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":53739,"src":"9044:20:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":55437,"nodeType":"Block","src":"9247:115:82","statements":[{"expression":{"id":55430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9265:27:82","subExpression":{"baseExpression":{"expression":{"id":55426,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55348,"src":"9272:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9279:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"9272:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55429,"indexExpression":{"id":55428,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"9285:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9272:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55431,"nodeType":"ExpressionStatement","src":"9265:27:82"},{"eventCall":{"arguments":[{"id":55433,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"9333:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":55434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9341:5:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":55432,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53809,"src":"9316:16:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":55435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9316:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55436,"nodeType":"EmitStatement","src":"9311:36:82"}]},"id":55438,"nodeType":"IfStatement","src":"9040:322:82","trueBody":{"id":55425,"nodeType":"Block","src":"9066:175:82","statements":[{"expression":{"id":55413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":55406,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55348,"src":"9084:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9091:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"9084:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55410,"indexExpression":{"id":55408,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"9097:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9084:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55411,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"9107:9:82","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$53735_$","typeString":"type(enum IRouter.CodeState)"}},"id":55412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9117:9:82","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":53734,"src":"9107:19:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"src":"9084:42:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"id":55414,"nodeType":"ExpressionStatement","src":"9084:42:82"},{"expression":{"id":55418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9144:28:82","subExpression":{"expression":{"id":55415,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55348,"src":"9144:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9151:19:82","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":53724,"src":"9144:26:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55419,"nodeType":"ExpressionStatement","src":"9144:28:82"},{"eventCall":{"arguments":[{"id":55421,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"9213:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":55422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9221:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":55420,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53809,"src":"9196:16:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":55423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55424,"nodeType":"EmitStatement","src":"9191:35:82"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55359,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55356,"src":"8568:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55360,"name":"codeCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"8572:20:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$53740_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata[] calldata"}},"id":55361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8593:6:82","memberName":"length","nodeType":"MemberAccess","src":"8572:27:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8568:31:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55440,"initializationExpression":{"assignments":[55356],"declarations":[{"constant":false,"id":55356,"mutability":"mutable","name":"i","nameLocation":"8561:1:82","nodeType":"VariableDeclaration","scope":55440,"src":"8553:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55355,"name":"uint256","nodeType":"ElementaryTypeName","src":"8553:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55358,"initialValue":{"hexValue":"30","id":55357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8565:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8553:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8601:3:82","subExpression":{"id":55363,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55356,"src":"8601:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55365,"nodeType":"ExpressionStatement","src":"8601:3:82"},"nodeType":"ForStatement","src":"8548:824:82"},{"expression":{"arguments":[{"arguments":[{"id":55443,"name":"codeCommetmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55353,"src":"9412:21:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55442,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9402:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9402:32:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55445,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55343,"src":"9436:10:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":55441,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55687,"src":"9382:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":55446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9382:65:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55447,"nodeType":"ExpressionStatement","src":"9382:65:82"}]},"baseFunctions":[54002],"functionSelector":"e97d3eb3","implemented":true,"kind":"function","modifiers":[],"name":"commitCodes","nameLocation":"8346:11:82","parameters":{"id":55344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55340,"mutability":"mutable","name":"codeCommitmentsArray","nameLocation":"8384:20:82","nodeType":"VariableDeclaration","scope":55449,"src":"8358:46:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$53740_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.CodeCommitment[]"},"typeName":{"baseType":{"id":55338,"nodeType":"UserDefinedTypeName","pathNode":{"id":55337,"name":"CodeCommitment","nameLocations":["8358:14:82"],"nodeType":"IdentifierPath","referencedDeclaration":53740,"src":"8358:14:82"},"referencedDeclaration":53740,"src":"8358:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"id":55339,"nodeType":"ArrayTypeName","src":"8358:16:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$53740_storage_$dyn_storage_ptr","typeString":"struct IRouter.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":55343,"mutability":"mutable","name":"signatures","nameLocation":"8423:10:82","nodeType":"VariableDeclaration","scope":55449,"src":"8406:27:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55341,"name":"bytes","nodeType":"ElementaryTypeName","src":"8406:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55342,"nodeType":"ArrayTypeName","src":"8406:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"8357:77:82"},"returnParameters":{"id":55345,"nodeType":"ParameterList","parameters":[],"src":"8444:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55507,"nodeType":"FunctionDefinition","src":"9460:604:82","nodes":[],"body":{"id":55506,"nodeType":"Block","src":"9603:461:82","nodes":[],"statements":[{"assignments":[55462],"declarations":[{"constant":false,"id":55462,"mutability":"mutable","name":"blockCommitmentsHashes","nameLocation":"9626:22:82","nodeType":"VariableDeclaration","scope":55506,"src":"9613:35:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55461,"name":"bytes","nodeType":"ElementaryTypeName","src":"9613:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55463,"nodeType":"VariableDeclarationStatement","src":"9613:35:82"},{"body":{"id":55497,"nodeType":"Block","src":"9718:263:82","statements":[{"assignments":[55477],"declarations":[{"constant":false,"id":55477,"mutability":"mutable","name":"blockCommitment","nameLocation":"9757:15:82","nodeType":"VariableDeclaration","scope":55497,"src":"9732:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":55476,"nodeType":"UserDefinedTypeName","pathNode":{"id":55475,"name":"BlockCommitment","nameLocations":["9732:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53751,"src":"9732:15:82"},"referencedDeclaration":53751,"src":"9732:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"id":55481,"initialValue":{"baseExpression":{"id":55478,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55453,"src":"9775:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$53751_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":55480,"indexExpression":{"id":55479,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55465,"src":"9797:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9775:24:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"9732:67:82"},{"assignments":[55483],"declarations":[{"constant":false,"id":55483,"mutability":"mutable","name":"blockCommitmentHash","nameLocation":"9822:19:82","nodeType":"VariableDeclaration","scope":55497,"src":"9814:27:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9814:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55487,"initialValue":{"arguments":[{"id":55485,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55477,"src":"9857:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}],"id":55484,"name":"_commitBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55783,"src":"9844:12:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockCommitment_$53751_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.BlockCommitment calldata) returns (bytes32)"}},"id":55486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9844:29:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9814:59:82"},{"expression":{"id":55495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55488,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55462,"src":"9888:22:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55492,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55462,"src":"9926:22:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":55493,"name":"blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55483,"src":"9950:19:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9913:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55489,"name":"bytes","nodeType":"ElementaryTypeName","src":"9913:5:82","typeDescriptions":{}}},"id":55491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9919:6:82","memberName":"concat","nodeType":"MemberAccess","src":"9913:12:82","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9913:57:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9888:82:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55496,"nodeType":"ExpressionStatement","src":"9888:82:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55465,"src":"9679:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55469,"name":"blockCommitmentsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55453,"src":"9683:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$53751_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata[] calldata"}},"id":55470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9705:6:82","memberName":"length","nodeType":"MemberAccess","src":"9683:28:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9679:32:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55498,"initializationExpression":{"assignments":[55465],"declarations":[{"constant":false,"id":55465,"mutability":"mutable","name":"i","nameLocation":"9672:1:82","nodeType":"VariableDeclaration","scope":55498,"src":"9664:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55464,"name":"uint256","nodeType":"ElementaryTypeName","src":"9664:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55467,"initialValue":{"hexValue":"30","id":55466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9676:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9664:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9713:3:82","subExpression":{"id":55472,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55465,"src":"9713:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55474,"nodeType":"ExpressionStatement","src":"9713:3:82"},"nodeType":"ForStatement","src":"9659:322:82"},{"expression":{"arguments":[{"arguments":[{"id":55501,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55462,"src":"10021:22:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55500,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10011:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10011:33:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55503,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55456,"src":"10046:10:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":55499,"name":"_validateSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55687,"src":"9991:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function (bytes32,bytes calldata[] calldata) view"}},"id":55504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9991:66:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55505,"nodeType":"ExpressionStatement","src":"9991:66:82"}]},"baseFunctions":[54012],"functionSelector":"fa97ed6d","implemented":true,"kind":"function","modifiers":[{"id":55459,"kind":"modifierInvocation","modifierName":{"id":55458,"name":"nonReentrant","nameLocations":["9586:12:82"],"nodeType":"IdentifierPath","referencedDeclaration":42355,"src":"9586:12:82"},"nodeType":"ModifierInvocation","src":"9586:12:82"}],"name":"commitBlocks","nameLocation":"9469:12:82","parameters":{"id":55457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55453,"mutability":"mutable","name":"blockCommitmentsArray","nameLocation":"9509:21:82","nodeType":"VariableDeclaration","scope":55507,"src":"9482:48:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$53751_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.BlockCommitment[]"},"typeName":{"baseType":{"id":55451,"nodeType":"UserDefinedTypeName","pathNode":{"id":55450,"name":"BlockCommitment","nameLocations":["9482:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53751,"src":"9482:15:82"},"referencedDeclaration":53751,"src":"9482:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"id":55452,"nodeType":"ArrayTypeName","src":"9482:17:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$53751_storage_$dyn_storage_ptr","typeString":"struct IRouter.BlockCommitment[]"}},"visibility":"internal"},{"constant":false,"id":55456,"mutability":"mutable","name":"signatures","nameLocation":"9549:10:82","nodeType":"VariableDeclaration","scope":55507,"src":"9532:27:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55454,"name":"bytes","nodeType":"ElementaryTypeName","src":"9532:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55455,"nodeType":"ArrayTypeName","src":"9532:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9481:79:82"},"returnParameters":{"id":55460,"nodeType":"ParameterList","parameters":[],"src":"9603:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55598,"nodeType":"FunctionDefinition","src":"10106:951:82","nodes":[],"body":{"id":55597,"nodeType":"Block","src":"10245:812:82","nodes":[],"statements":[{"assignments":[55522],"declarations":[{"constant":false,"id":55522,"mutability":"mutable","name":"router","nameLocation":"10271:6:82","nodeType":"VariableDeclaration","scope":55597,"src":"10255:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55521,"nodeType":"UserDefinedTypeName","pathNode":{"id":55520,"name":"Storage","nameLocations":["10255:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"10255:7:82"},"referencedDeclaration":53731,"src":"10255:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55525,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55523,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"10280:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10280:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10255:38:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"},"id":55533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":55527,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55522,"src":"10312:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10319:5:82","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":53722,"src":"10312:12:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$53735_$","typeString":"mapping(bytes32 => enum IRouter.CodeState)"}},"id":55530,"indexExpression":{"id":55529,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55509,"src":"10325:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10312:20:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55531,"name":"CodeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"10336:9:82","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$53735_$","typeString":"type(enum IRouter.CodeState)"}},"id":55532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10346:9:82","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":53734,"src":"10336:19:82","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$53735","typeString":"enum IRouter.CodeState"}},"src":"10312:43:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206d7573742062652076616c696461746564206265666f72652070726f6772616d206372656174696f6e","id":55534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10357:48:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""},"value":"code must be validated before program creation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b5148f5f8f63c81848fb75aafb9815f0b7600419fddac60bd483eec7cf08a631","typeString":"literal_string \"code must be validated before program creation\""}],"id":55526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10304:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10304:102:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55536,"nodeType":"ExpressionStatement","src":"10304:102:82"},{"assignments":[55538],"declarations":[{"constant":false,"id":55538,"mutability":"mutable","name":"baseFeeValue","nameLocation":"10425:12:82","nodeType":"VariableDeclaration","scope":55597,"src":"10417:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55537,"name":"uint128","nodeType":"ElementaryTypeName","src":"10417:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":55541,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55539,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55189,"src":"10440:7:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":55540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10440:9:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10417:32:82"},{"assignments":[55543],"declarations":[{"constant":false,"id":55543,"mutability":"mutable","name":"executableBalance","nameLocation":"10467:17:82","nodeType":"VariableDeclaration","scope":55597,"src":"10459:25:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55542,"name":"uint128","nodeType":"ElementaryTypeName","src":"10459:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":55547,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":55546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55544,"name":"baseFeeValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55538,"src":"10487:12:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3130","id":55545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10502:2:82","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"10487:17:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10459:45:82"},{"assignments":[55549],"declarations":[{"constant":false,"id":55549,"mutability":"mutable","name":"totalValue","nameLocation":"10523:10:82","nodeType":"VariableDeclaration","scope":55597,"src":"10515:18:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55548,"name":"uint128","nodeType":"ElementaryTypeName","src":"10515:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":55555,"initialValue":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":55554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":55552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55550,"name":"baseFeeValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55538,"src":"10536:12:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55551,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55543,"src":"10551:17:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10536:32:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55553,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55513,"src":"10571:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"10536:41:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10515:62:82"},{"expression":{"arguments":[{"id":55557,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55549,"src":"10603:10:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":55556,"name":"_retrieveValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56159,"src":"10588:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":55558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10588:26:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55559,"nodeType":"ExpressionStatement","src":"10588:26:82"},{"assignments":[55561],"declarations":[{"constant":false,"id":55561,"mutability":"mutable","name":"actorId","nameLocation":"10783:7:82","nodeType":"VariableDeclaration","scope":55597,"src":"10775:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55560,"name":"address","nodeType":"ElementaryTypeName","src":"10775:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":55574,"initialValue":{"arguments":[{"expression":{"id":55564,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55522,"src":"10819:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10826:11:82","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":53700,"src":"10819:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":55569,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55509,"src":"10866:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55570,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55511,"src":"10874:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55567,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10849:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10853:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"10849:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10849:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55566,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10839:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10839:41:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55562,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41121,"src":"10793:6:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$41121_$","typeString":"type(library Clones)"}},"id":55563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10800:18:82","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":41039,"src":"10793:25:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":55573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10793:88:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10775:106:82"},{"expression":{"id":55581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":55575,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55522,"src":"10892:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10899:8:82","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":53728,"src":"10892:15:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":55579,"indexExpression":{"id":55577,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"10908:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10892:24:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55580,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55509,"src":"10919:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10892:33:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55582,"nodeType":"ExpressionStatement","src":"10892:33:82"},{"expression":{"id":55586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10935:22:82","subExpression":{"expression":{"id":55583,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55522,"src":"10935:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10942:13:82","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":53730,"src":"10935:20:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55587,"nodeType":"ExpressionStatement","src":"10935:22:82"},{"eventCall":{"arguments":[{"id":55589,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"10988:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55590,"name":"codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55509,"src":"10997:6:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55588,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53816,"src":"10973:14:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":55591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10973:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55592,"nodeType":"EmitStatement","src":"10968:36:82"},{"expression":{"components":[{"id":55593,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"11023:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55594,"name":"executableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55543,"src":"11032:17:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":55595,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11022:28:82","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint128_$","typeString":"tuple(address,uint128)"}},"functionReturnParameters":55519,"id":55596,"nodeType":"Return","src":"11015:35:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgramWithoutMessage","nameLocation":"10115:28:82","parameters":{"id":55514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55509,"mutability":"mutable","name":"codeId","nameLocation":"10152:6:82","nodeType":"VariableDeclaration","scope":55598,"src":"10144:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10144:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55511,"mutability":"mutable","name":"salt","nameLocation":"10168:4:82","nodeType":"VariableDeclaration","scope":55598,"src":"10160:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10160:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55513,"mutability":"mutable","name":"_value","nameLocation":"10182:6:82","nodeType":"VariableDeclaration","scope":55598,"src":"10174:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55512,"name":"uint128","nodeType":"ElementaryTypeName","src":"10174:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10143:46:82"},"returnParameters":{"id":55519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55598,"src":"10223:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55515,"name":"address","nodeType":"ElementaryTypeName","src":"10223:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55598,"src":"10232:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":55517,"name":"uint128","nodeType":"ElementaryTypeName","src":"10232:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10222:18:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":55687,"nodeType":"FunctionDefinition","src":"11063:844:82","nodes":[],"body":{"id":55686,"nodeType":"Block","src":"11152:755:82","nodes":[],"statements":[{"assignments":[55608],"declarations":[{"constant":false,"id":55608,"mutability":"mutable","name":"router","nameLocation":"11178:6:82","nodeType":"VariableDeclaration","scope":55686,"src":"11162:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55607,"nodeType":"UserDefinedTypeName","pathNode":{"id":55606,"name":"Storage","nameLocations":["11162:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"11162:7:82"},"referencedDeclaration":53731,"src":"11162:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55611,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55609,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"11187:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11187:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11162:38:82"},{"assignments":[55613],"declarations":[{"constant":false,"id":55613,"mutability":"mutable","name":"threshold","nameLocation":"11219:9:82","nodeType":"VariableDeclaration","scope":55686,"src":"11211:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55612,"name":"uint256","nodeType":"ElementaryTypeName","src":"11211:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55616,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55614,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55026,"src":"11231:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":55615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11231:21:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11211:41:82"},{"assignments":[55618],"declarations":[{"constant":false,"id":55618,"mutability":"mutable","name":"messageHash","nameLocation":"11271:11:82","nodeType":"VariableDeclaration","scope":55686,"src":"11263:19:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11263:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55629,"initialValue":{"arguments":[{"arguments":[{"id":55626,"name":"dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55600,"src":"11348:8:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55624,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11331:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11335:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"11331:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11331:26:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":55621,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11293:4:82","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$56269","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$56269","typeString":"contract Router"}],"id":55620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11285:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55619,"name":"address","nodeType":"ElementaryTypeName","src":"11285:7:82","typeDescriptions":{}}},"id":55622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11285:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11299:31:82","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":43448,"src":"11285:45:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes memory) pure returns (bytes32)"}},"id":55628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11285:73:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11263:95:82"},{"assignments":[55631],"declarations":[{"constant":false,"id":55631,"mutability":"mutable","name":"validSignatures","nameLocation":"11376:15:82","nodeType":"VariableDeclaration","scope":55686,"src":"11368:23:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55630,"name":"uint256","nodeType":"ElementaryTypeName","src":"11368:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55633,"initialValue":{"hexValue":"30","id":55632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11394:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11368:27:82"},{"body":{"id":55677,"nodeType":"Block","src":"11454:368:82","statements":[{"assignments":[55646],"declarations":[{"constant":false,"id":55646,"mutability":"mutable","name":"signature","nameLocation":"11483:9:82","nodeType":"VariableDeclaration","scope":55677,"src":"11468:24:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":55645,"name":"bytes","nodeType":"ElementaryTypeName","src":"11468:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55650,"initialValue":{"baseExpression":{"id":55647,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55603,"src":"11495:10:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":55649,"indexExpression":{"id":55648,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"11506:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11495:13:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"11468:40:82"},{"assignments":[55652],"declarations":[{"constant":false,"id":55652,"mutability":"mutable","name":"validator","nameLocation":"11531:9:82","nodeType":"VariableDeclaration","scope":55677,"src":"11523:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55651,"name":"address","nodeType":"ElementaryTypeName","src":"11523:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":55657,"initialValue":{"arguments":[{"id":55655,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55646,"src":"11563:9:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":55653,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55618,"src":"11543:11:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11555:7:82","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":43143,"src":"11543:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":55656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11543:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11523:50:82"},{"condition":{"baseExpression":{"expression":{"id":55658,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55608,"src":"11592:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11599:10:82","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":53714,"src":"11592:17:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":55661,"indexExpression":{"id":55660,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55652,"src":"11610:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11592:28:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":55675,"nodeType":"Block","src":"11742:70:82","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":55671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11768:5:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"696e636f7272656374207369676e6174757265","id":55672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11775:21:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""},"value":"incorrect signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_641ab7289dc6df3dff0edafbede614b21294e2bb9f09800443d88f57818afe8f","typeString":"literal_string \"incorrect signature\""}],"id":55670,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11760:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11760:37:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55674,"nodeType":"ExpressionStatement","src":"11760:37:82"}]},"id":55676,"nodeType":"IfStatement","src":"11588:224:82","trueBody":{"id":55669,"nodeType":"Block","src":"11622:114:82","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11644:17:82","subExpression":{"id":55662,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"11646:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55664,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55613,"src":"11665:9:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11644:30:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55668,"nodeType":"IfStatement","src":"11640:82:82","trueBody":{"id":55667,"nodeType":"Block","src":"11676:46:82","statements":[{"id":55666,"nodeType":"Break","src":"11698:5:82"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55638,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"11426:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55639,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55603,"src":"11430:10:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":55640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11441:6:82","memberName":"length","nodeType":"MemberAccess","src":"11430:17:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11426:21:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55678,"initializationExpression":{"assignments":[55635],"declarations":[{"constant":false,"id":55635,"mutability":"mutable","name":"i","nameLocation":"11419:1:82","nodeType":"VariableDeclaration","scope":55678,"src":"11411:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55634,"name":"uint256","nodeType":"ElementaryTypeName","src":"11411:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55637,"initialValue":{"hexValue":"30","id":55636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11423:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11411:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11449:3:82","subExpression":{"id":55642,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"11449:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55644,"nodeType":"ExpressionStatement","src":"11449:3:82"},"nodeType":"ForStatement","src":"11406:416:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55680,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55631,"src":"11840:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":55681,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55613,"src":"11859:9:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11840:28:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420656e6f7567682076616c6964207369676e617475726573","id":55683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11870:29:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""},"value":"not enough valid signatures"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8852ba723d98bcf316aab69f38fb5da08e0bfb912ef589b19218c396aac3c0bc","typeString":"literal_string \"not enough valid signatures\""}],"id":55679,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11832:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11832:68:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55685,"nodeType":"ExpressionStatement","src":"11832:68:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateSignatures","nameLocation":"11072:19:82","parameters":{"id":55604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55600,"mutability":"mutable","name":"dataHash","nameLocation":"11100:8:82","nodeType":"VariableDeclaration","scope":55687,"src":"11092:16:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11092:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55603,"mutability":"mutable","name":"signatures","nameLocation":"11127:10:82","nodeType":"VariableDeclaration","scope":55687,"src":"11110:27:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":55601,"name":"bytes","nodeType":"ElementaryTypeName","src":"11110:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":55602,"nodeType":"ArrayTypeName","src":"11110:7:82","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11091:47:82"},"returnParameters":{"id":55605,"nodeType":"ParameterList","parameters":[],"src":"11152:0:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":55783,"nodeType":"FunctionDefinition","src":"11913:1244:82","nodes":[],"body":{"id":55782,"nodeType":"Block","src":"12003:1154:82","nodes":[],"statements":[{"assignments":[55697],"declarations":[{"constant":false,"id":55697,"mutability":"mutable","name":"router","nameLocation":"12029:6:82","nodeType":"VariableDeclaration","scope":55782,"src":"12013:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55696,"nodeType":"UserDefinedTypeName","pathNode":{"id":55695,"name":"Storage","nameLocations":["12013:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"12013:7:82"},"referencedDeclaration":53731,"src":"12013:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55700,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55698,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"12038:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12038:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12013:38:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55702,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55697,"src":"12083:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12090:23:82","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":53704,"src":"12083:30:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55704,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12117:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12133:18:82","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":53744,"src":"12117:34:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12083:68:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726576696f757320636f6d6d69746d656e742068617368","id":55707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12153:34:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""},"value":"invalid previous commitment hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fef95c9e1944529fb91083689c978504d88f59fdb02e6fd241a073fa572e7d3e","typeString":"literal_string \"invalid previous commitment hash\""}],"id":55701,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12062:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12062:135:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55709,"nodeType":"ExpressionStatement","src":"12062:135:82"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55712,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12234:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12250:13:82","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":53746,"src":"12234:29:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55711,"name":"_isPredecessorHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55827,"src":"12215:18:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":55714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12215:49:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c6c6f776564207072656465636573736f7220626c6f636b206e6f7420666f756e64","id":55715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12266:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""},"value":"allowed predecessor block not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d09fbc5a1c193a0826cadcc2903c8170aac2d31f22b53e69a64923153c8207e","typeString":"literal_string \"allowed predecessor block not found\""}],"id":55710,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12207:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12207:97:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55717,"nodeType":"ExpressionStatement","src":"12207:97:82"},{"expression":{"id":55723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55718,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55697,"src":"12444:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12451:23:82","memberName":"lastBlockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":53704,"src":"12444:30:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55721,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12477:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12493:9:82","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":53742,"src":"12477:25:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12444:58:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55724,"nodeType":"ExpressionStatement","src":"12444:58:82"},{"assignments":[55726],"declarations":[{"constant":false,"id":55726,"mutability":"mutable","name":"transitionsHashes","nameLocation":"12526:17:82","nodeType":"VariableDeclaration","scope":55782,"src":"12513:30:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55725,"name":"bytes","nodeType":"ElementaryTypeName","src":"12513:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55727,"nodeType":"VariableDeclarationStatement","src":"12513:30:82"},{"body":{"id":55763,"nodeType":"Block","src":"12619:255:82","statements":[{"assignments":[55742],"declarations":[{"constant":false,"id":55742,"mutability":"mutable","name":"stateTransition","nameLocation":"12658:15:82","nodeType":"VariableDeclaration","scope":55763,"src":"12633:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":55741,"nodeType":"UserDefinedTypeName","pathNode":{"id":55740,"name":"StateTransition","nameLocations":["12633:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53766,"src":"12633:15:82"},"referencedDeclaration":53766,"src":"12633:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"id":55747,"initialValue":{"baseExpression":{"expression":{"id":55743,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12676:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12692:11:82","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":53750,"src":"12676:27:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$53766_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":55746,"indexExpression":{"id":55745,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55729,"src":"12704:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12676:30:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"12633:73:82"},{"assignments":[55749],"declarations":[{"constant":false,"id":55749,"mutability":"mutable","name":"transitionHash","nameLocation":"12729:14:82","nodeType":"VariableDeclaration","scope":55763,"src":"12721:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12721:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55753,"initialValue":{"arguments":[{"id":55751,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55742,"src":"12765:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}],"id":55750,"name":"_doStateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56027,"src":"12746:18:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StateTransition_$53766_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.StateTransition calldata) returns (bytes32)"}},"id":55752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12746:35:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12721:60:82"},{"expression":{"id":55761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55754,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55726,"src":"12796:17:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55758,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55726,"src":"12829:17:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":55759,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55749,"src":"12848:14:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55755,"name":"bytes","nodeType":"ElementaryTypeName","src":"12816:5:82","typeDescriptions":{}}},"id":55757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12822:6:82","memberName":"concat","nodeType":"MemberAccess","src":"12816:12:82","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:47:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12796:67:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55762,"nodeType":"ExpressionStatement","src":"12796:67:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55732,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55729,"src":"12574:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":55733,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12578:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12594:11:82","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":53750,"src":"12578:27:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$53766_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.StateTransition calldata[] calldata"}},"id":55735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12606:6:82","memberName":"length","nodeType":"MemberAccess","src":"12578:34:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12574:38:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55764,"initializationExpression":{"assignments":[55729],"declarations":[{"constant":false,"id":55729,"mutability":"mutable","name":"i","nameLocation":"12567:1:82","nodeType":"VariableDeclaration","scope":55764,"src":"12559:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55728,"name":"uint256","nodeType":"ElementaryTypeName","src":"12559:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55731,"initialValue":{"hexValue":"30","id":55730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12571:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12559:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12614:3:82","subExpression":{"id":55737,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55729,"src":"12614:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55739,"nodeType":"ExpressionStatement","src":"12614:3:82"},"nodeType":"ForStatement","src":"12554:320:82"},{"eventCall":{"arguments":[{"expression":{"id":55766,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12904:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12920:9:82","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":53742,"src":"12904:25:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55765,"name":"BlockCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"12889:14:82","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":55768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12889:41:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55769,"nodeType":"EmitStatement","src":"12884:46:82"},{"expression":{"arguments":[{"expression":{"id":55771,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"12982:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12998:9:82","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":53742,"src":"12982:25:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":55773,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"13021:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13037:18:82","memberName":"prevCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":53744,"src":"13021:34:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":55775,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"13069:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment calldata"}},"id":55776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13085:13:82","memberName":"predBlockHash","nodeType":"MemberAccess","referencedDeclaration":53746,"src":"13069:29:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":55778,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55726,"src":"13122:17:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55777,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13112:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13112:28:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55770,"name":"_blockCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56051,"src":"12948:20:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":55780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12948:202:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":55694,"id":55781,"nodeType":"Return","src":"12941:209:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitBlock","nameLocation":"11922:12:82","parameters":{"id":55691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55690,"mutability":"mutable","name":"blockCommitment","nameLocation":"11960:15:82","nodeType":"VariableDeclaration","scope":55783,"src":"11935:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_calldata_ptr","typeString":"struct IRouter.BlockCommitment"},"typeName":{"id":55689,"nodeType":"UserDefinedTypeName","pathNode":{"id":55688,"name":"BlockCommitment","nameLocations":["11935:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53751,"src":"11935:15:82"},"referencedDeclaration":53751,"src":"11935:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$53751_storage_ptr","typeString":"struct IRouter.BlockCommitment"}},"visibility":"internal"}],"src":"11934:42:82"},"returnParameters":{"id":55694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55693,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55783,"src":"11994:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11994:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11993:9:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":55827,"nodeType":"FunctionDefinition","src":"13163:338:82","nodes":[],"body":{"id":55826,"nodeType":"Block","src":"13233:268:82","nodes":[],"statements":[{"body":{"id":55822,"nodeType":"Block","src":"13290:183:82","statements":[{"assignments":[55804],"declarations":[{"constant":false,"id":55804,"mutability":"mutable","name":"ret","nameLocation":"13312:3:82","nodeType":"VariableDeclaration","scope":55822,"src":"13304:11:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13304:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55808,"initialValue":{"arguments":[{"id":55806,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"13328:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55805,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"13318:9:82","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":55807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13318:12:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13304:26:82"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55809,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55804,"src":"13348:3:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55810,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55785,"src":"13355:4:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13348:11:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55815,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55804,"src":"13415:3:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13422:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13415:8:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55820,"nodeType":"IfStatement","src":"13411:52:82","trueBody":{"id":55819,"nodeType":"Block","src":"13425:38:82","statements":[{"id":55818,"nodeType":"Break","src":"13443:5:82"}]}},"id":55821,"nodeType":"IfStatement","src":"13344:119:82","trueBody":{"id":55814,"nodeType":"Block","src":"13361:44:82","statements":[{"expression":{"hexValue":"74727565","id":55812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13386:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":55789,"id":55813,"nodeType":"Return","src":"13379:11:82"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55797,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"13278:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":55798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13282:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13278:5:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55823,"initializationExpression":{"assignments":[55791],"declarations":[{"constant":false,"id":55791,"mutability":"mutable","name":"i","nameLocation":"13256:1:82","nodeType":"VariableDeclaration","scope":55823,"src":"13248:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55790,"name":"uint256","nodeType":"ElementaryTypeName","src":"13248:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55796,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55792,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13260:5:82","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":55793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13266:6:82","memberName":"number","nodeType":"MemberAccess","src":"13260:12:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13275:1:82","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13260:16:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13248:28:82"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":55801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13285:3:82","subExpression":{"id":55800,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55791,"src":"13285:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55802,"nodeType":"ExpressionStatement","src":"13285:3:82"},"nodeType":"ForStatement","src":"13243:230:82"},{"expression":{"hexValue":"66616c7365","id":55824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13489:5:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":55789,"id":55825,"nodeType":"Return","src":"13482:12:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isPredecessorHash","nameLocation":"13172:18:82","parameters":{"id":55786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55785,"mutability":"mutable","name":"hash","nameLocation":"13199:4:82","nodeType":"VariableDeclaration","scope":55827,"src":"13191:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13191:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13190:14:82"},"returnParameters":{"id":55789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55827,"src":"13227:4:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55787,"name":"bool","nodeType":"ElementaryTypeName","src":"13227:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13226:6:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":56027,"nodeType":"FunctionDefinition","src":"13507:2170:82","nodes":[],"body":{"id":56026,"nodeType":"Block","src":"13603:2074:82","nodes":[],"statements":[{"assignments":[55837],"declarations":[{"constant":false,"id":55837,"mutability":"mutable","name":"router","nameLocation":"13629:6:82","nodeType":"VariableDeclaration","scope":56026,"src":"13613:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":55836,"nodeType":"UserDefinedTypeName","pathNode":{"id":55835,"name":"Storage","nameLocations":["13613:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"13613:7:82"},"referencedDeclaration":53731,"src":"13613:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":55840,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55838,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"13638:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":55839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13638:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13613:38:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":55842,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55837,"src":"13670:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13677:8:82","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":53728,"src":"13670:15:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":55846,"indexExpression":{"expression":{"id":55844,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"13686:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13702:7:82","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":53753,"src":"13686:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13670:40:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":55847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13714:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13670:45:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f756c646e277420706572666f726d207472616e736974696f6e20666f7220756e6b6e6f776e2070726f6772616d","id":55849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13717:49:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""},"value":"couldn't perform transition for unknown program"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_31c5a066db04c91ff8a121d71b24335cd54a57cfe01a7cdd47f234348f1a72d6","typeString":"literal_string \"couldn't perform transition for unknown program\""}],"id":55841,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13662:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13662:105:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55851,"nodeType":"ExpressionStatement","src":"13662:105:82"},{"assignments":[55854],"declarations":[{"constant":false,"id":55854,"mutability":"mutable","name":"wrappedVaraActor","nameLocation":"13791:16:82","nodeType":"VariableDeclaration","scope":56026,"src":"13778:29:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"},"typeName":{"id":55853,"nodeType":"UserDefinedTypeName","pathNode":{"id":55852,"name":"IWrappedVara","nameLocations":["13778:12:82"],"nodeType":"IdentifierPath","referencedDeclaration":54024,"src":"13778:12:82"},"referencedDeclaration":54024,"src":"13778:12:82","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":55859,"initialValue":{"arguments":[{"expression":{"id":55856,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55837,"src":"13823:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":55857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13830:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"13823:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55855,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54024,"src":"13810:12:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$54024_$","typeString":"type(contract IWrappedVara)"}},"id":55858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13810:32:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"13778:64:82"},{"expression":{"arguments":[{"expression":{"id":55863,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"13878:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13894:7:82","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":53753,"src":"13878:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55865,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"13903:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13919:14:82","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":53757,"src":"13903:30:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":55860,"name":"wrappedVaraActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55854,"src":"13852:16:82","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$54024","typeString":"contract IWrappedVara"}},"id":55862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13869:8:82","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":41873,"src":"13852:25:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":55867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13852:82:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55868,"nodeType":"ExpressionStatement","src":"13852:82:82"},{"assignments":[55871],"declarations":[{"constant":false,"id":55871,"mutability":"mutable","name":"mirrorActor","nameLocation":"13953:11:82","nodeType":"VariableDeclaration","scope":56026,"src":"13945:19:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"},"typeName":{"id":55870,"nodeType":"UserDefinedTypeName","pathNode":{"id":55869,"name":"IMirror","nameLocations":["13945:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53648,"src":"13945:7:82"},"referencedDeclaration":53648,"src":"13945:7:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"visibility":"internal"}],"id":55876,"initialValue":{"arguments":[{"expression":{"id":55873,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"13975:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13991:7:82","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":53753,"src":"13975:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55872,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53648,"src":"13967:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$53648_$","typeString":"type(contract IMirror)"}},"id":55875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:32:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"13945:54:82"},{"assignments":[55878],"declarations":[{"constant":false,"id":55878,"mutability":"mutable","name":"valueClaimsBytes","nameLocation":"14023:16:82","nodeType":"VariableDeclaration","scope":56026,"src":"14010:29:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55877,"name":"bytes","nodeType":"ElementaryTypeName","src":"14010:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55879,"nodeType":"VariableDeclarationStatement","src":"14010:29:82"},{"body":{"id":55928,"nodeType":"Block","src":"14115:367:82","statements":[{"assignments":[55894],"declarations":[{"constant":false,"id":55894,"mutability":"mutable","name":"valueClaim","nameLocation":"14149:10:82","nodeType":"VariableDeclaration","scope":55928,"src":"14129:30:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim"},"typeName":{"id":55893,"nodeType":"UserDefinedTypeName","pathNode":{"id":55892,"name":"ValueClaim","nameLocations":["14129:10:82"],"nodeType":"IdentifierPath","referencedDeclaration":53773,"src":"14129:10:82"},"referencedDeclaration":53773,"src":"14129:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_storage_ptr","typeString":"struct IRouter.ValueClaim"}},"visibility":"internal"}],"id":55899,"initialValue":{"baseExpression":{"expression":{"id":55895,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"14162:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14178:11:82","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":53761,"src":"14162:27:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$53773_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":55898,"indexExpression":{"id":55897,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55881,"src":"14190:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14162:30:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"14129:63:82"},{"expression":{"id":55915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55900,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55878,"src":"14207:16:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55904,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55878,"src":"14256:16:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":55907,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14291:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14302:9:82","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":53768,"src":"14291:20:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":55909,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14313:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14324:11:82","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":53770,"src":"14313:22:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55911,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14337:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14348:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":53772,"src":"14337:16:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":55905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14274:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14278:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"14274:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14274:80:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14226:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55901,"name":"bytes","nodeType":"ElementaryTypeName","src":"14226:5:82","typeDescriptions":{}}},"id":55903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14232:6:82","memberName":"concat","nodeType":"MemberAccess","src":"14226:12:82","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14226:142:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14207:161:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55916,"nodeType":"ExpressionStatement","src":"14207:161:82"},{"expression":{"arguments":[{"expression":{"id":55920,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14408:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14419:9:82","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":53768,"src":"14408:20:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":55922,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14430:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14441:11:82","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":53770,"src":"14430:22:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55924,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55894,"src":"14454:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$53773_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata"}},"id":55925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14465:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":53772,"src":"14454:16:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":55917,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55871,"src":"14383:11:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14395:12:82","memberName":"valueClaimed","nodeType":"MemberAccess","referencedDeclaration":53624,"src":"14383:24:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128) external"}},"id":55926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14383:88:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55927,"nodeType":"ExpressionStatement","src":"14383:88:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55884,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55881,"src":"14070:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":55885,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"14074:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14090:11:82","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":53761,"src":"14074:27:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$53773_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.ValueClaim calldata[] calldata"}},"id":55887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14102:6:82","memberName":"length","nodeType":"MemberAccess","src":"14074:34:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14070:38:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55929,"initializationExpression":{"assignments":[55881],"declarations":[{"constant":false,"id":55881,"mutability":"mutable","name":"i","nameLocation":"14063:1:82","nodeType":"VariableDeclaration","scope":55929,"src":"14055:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55880,"name":"uint256","nodeType":"ElementaryTypeName","src":"14055:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55883,"initialValue":{"hexValue":"30","id":55882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14067:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14055:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14110:3:82","subExpression":{"id":55889,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55881,"src":"14110:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55891,"nodeType":"ExpressionStatement","src":"14110:3:82"},"nodeType":"ForStatement","src":"14050:432:82"},{"assignments":[55931],"declarations":[{"constant":false,"id":55931,"mutability":"mutable","name":"messagesHashes","nameLocation":"14505:14:82","nodeType":"VariableDeclaration","scope":56026,"src":"14492:27:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55930,"name":"bytes","nodeType":"ElementaryTypeName","src":"14492:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55932,"nodeType":"VariableDeclarationStatement","src":"14492:27:82"},{"body":{"id":56002,"nodeType":"Block","src":"14592:764:82","statements":[{"assignments":[55947],"declarations":[{"constant":false,"id":55947,"mutability":"mutable","name":"outgoingMessage","nameLocation":"14631:15:82","nodeType":"VariableDeclaration","scope":56002,"src":"14606:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":55946,"nodeType":"UserDefinedTypeName","pathNode":{"id":55945,"name":"OutgoingMessage","nameLocations":["14606:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53785,"src":"14606:15:82"},"referencedDeclaration":53785,"src":"14606:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"id":55952,"initialValue":{"baseExpression":{"expression":{"id":55948,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"14649:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14665:8:82","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":53765,"src":"14649:24:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$53785_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":55951,"indexExpression":{"id":55950,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55934,"src":"14674:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14649:27:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"nodeType":"VariableDeclarationStatement","src":"14606:70:82"},{"expression":{"id":55962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55953,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55931,"src":"14691:14:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55957,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55931,"src":"14721:14:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":55959,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14758:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}],"id":55958,"name":"_outgoingMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56107,"src":"14737:20:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_OutgoingMessage_$53785_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.OutgoingMessage calldata) pure returns (bytes32)"}},"id":55960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14737:37:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14708:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55954,"name":"bytes","nodeType":"ElementaryTypeName","src":"14708:5:82","typeDescriptions":{}}},"id":55956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14714:6:82","memberName":"concat","nodeType":"MemberAccess","src":"14708:12:82","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14708:67:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14691:84:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55963,"nodeType":"ExpressionStatement","src":"14691:84:82"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":55964,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14794:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14810:12:82","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":53784,"src":"14794:28:82","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$53790_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":55966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14823:2:82","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":53787,"src":"14794:31:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14829:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14794:36:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":56000,"nodeType":"Block","src":"15029:317:82","statements":[{"expression":{"arguments":[{"expression":{"id":55986,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"15090:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15106:11:82","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":53777,"src":"15090:27:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55988,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"15139:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15155:7:82","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":53779,"src":"15139:23:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":55990,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"15184:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15200:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":53781,"src":"15184:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":55992,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"15227:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15243:12:82","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":53784,"src":"15227:28:82","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$53790_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":55994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15256:2:82","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":53787,"src":"15227:31:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":55995,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"15280:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15296:12:82","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":53784,"src":"15280:28:82","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$53790_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":55997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15309:4:82","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":53789,"src":"15280:33:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":55983,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55871,"src":"15047:11:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15059:9:82","memberName":"replySent","nodeType":"MemberAccess","referencedDeclaration":53615,"src":"15047:21:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (address,bytes memory,uint128,bytes32,bytes4) external"}},"id":55998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15047:284:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55999,"nodeType":"ExpressionStatement","src":"15047:284:82"}]},"id":56001,"nodeType":"IfStatement","src":"14790:556:82","trueBody":{"id":55982,"nodeType":"Block","src":"14832:191:82","statements":[{"expression":{"arguments":[{"expression":{"id":55972,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14895:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14911:2:82","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":53775,"src":"14895:18:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":55974,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14915:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14931:11:82","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":53777,"src":"14915:27:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55976,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14944:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14960:7:82","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":53779,"src":"14944:23:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":55978,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"14969:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":55979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14985:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":53781,"src":"14969:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":55969,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55871,"src":"14850:11:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":55971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14862:11:82","memberName":"messageSent","nodeType":"MemberAccess","referencedDeclaration":53602,"src":"14850:23:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128) external"}},"id":55980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14850:158:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55981,"nodeType":"ExpressionStatement","src":"14850:158:82"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55934,"src":"14550:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":55938,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"14554:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":55939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14570:8:82","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":53765,"src":"14554:24:82","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OutgoingMessage_$53785_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata[] calldata"}},"id":55940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14579:6:82","memberName":"length","nodeType":"MemberAccess","src":"14554:31:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14550:35:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56003,"initializationExpression":{"assignments":[55934],"declarations":[{"constant":false,"id":55934,"mutability":"mutable","name":"i","nameLocation":"14543:1:82","nodeType":"VariableDeclaration","scope":56003,"src":"14535:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55933,"name":"uint256","nodeType":"ElementaryTypeName","src":"14535:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55936,"initialValue":{"hexValue":"30","id":55935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14547:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14535:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":55943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14587:3:82","subExpression":{"id":55942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55934,"src":"14587:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55944,"nodeType":"ExpressionStatement","src":"14587:3:82"},"nodeType":"ForStatement","src":"14530:826:82"},{"expression":{"arguments":[{"expression":{"id":56007,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"15390:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":56008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15406:12:82","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":53755,"src":"15390:28:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":56004,"name":"mirrorActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55871,"src":"15366:11:82","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$53648","typeString":"contract IMirror"}},"id":56006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15378:11:82","memberName":"updateState","nodeType":"MemberAccess","referencedDeclaration":53591,"src":"15366:23:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":56009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15366:53:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56010,"nodeType":"ExpressionStatement","src":"15366:53:82"},{"expression":{"arguments":[{"expression":{"id":56012,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"15471:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":56013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15487:7:82","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":53753,"src":"15471:23:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":56014,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"15508:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":56015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15524:12:82","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":53755,"src":"15508:28:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":56016,"name":"stateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"15550:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition calldata"}},"id":56017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15566:14:82","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":53757,"src":"15550:30:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":56019,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55878,"src":"15604:16:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56018,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15594:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15594:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":56022,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55931,"src":"15645:14:82","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56021,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15635:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15635:25:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":56011,"name":"_stateTransitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56078,"src":"15437:20:82","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_uint128_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,uint128,bytes32,bytes32) pure returns (bytes32)"}},"id":56024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15437:233:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":55834,"id":56025,"nodeType":"Return","src":"15430:240:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_doStateTransition","nameLocation":"13516:18:82","parameters":{"id":55831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55830,"mutability":"mutable","name":"stateTransition","nameLocation":"13560:15:82","nodeType":"VariableDeclaration","scope":56027,"src":"13535:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_calldata_ptr","typeString":"struct IRouter.StateTransition"},"typeName":{"id":55829,"nodeType":"UserDefinedTypeName","pathNode":{"id":55828,"name":"StateTransition","nameLocations":["13535:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53766,"src":"13535:15:82"},"referencedDeclaration":53766,"src":"13535:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$53766_storage_ptr","typeString":"struct IRouter.StateTransition"}},"visibility":"internal"}],"src":"13534:42:82"},"returnParameters":{"id":55834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56027,"src":"13594:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13594:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13593:9:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":56051,"nodeType":"FunctionDefinition","src":"15683:320:82","nodes":[],"body":{"id":56050,"nodeType":"Block","src":"15883:120:82","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":56043,"name":"blockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56029,"src":"15927:9:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56044,"name":"prevCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56031,"src":"15938:18:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56045,"name":"predBlockHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56033,"src":"15958:13:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56046,"name":"transitionsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56035,"src":"15973:21:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":56041,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15910:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15914:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"15910:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15910:85:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56040,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15900:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15900:96:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":56039,"id":56049,"nodeType":"Return","src":"15893:103:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_blockCommitmentHash","nameLocation":"15692:20:82","parameters":{"id":56036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56029,"mutability":"mutable","name":"blockHash","nameLocation":"15730:9:82","nodeType":"VariableDeclaration","scope":56051,"src":"15722:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56028,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15722:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56031,"mutability":"mutable","name":"prevCommitmentHash","nameLocation":"15757:18:82","nodeType":"VariableDeclaration","scope":56051,"src":"15749:26:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15749:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56033,"mutability":"mutable","name":"predBlockHash","nameLocation":"15793:13:82","nodeType":"VariableDeclaration","scope":56051,"src":"15785:21:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15785:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56035,"mutability":"mutable","name":"transitionsHashesHash","nameLocation":"15824:21:82","nodeType":"VariableDeclaration","scope":56051,"src":"15816:29:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15816:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15712:139:82"},"returnParameters":{"id":56039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56051,"src":"15874:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15874:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15873:9:82"},"scope":56269,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":56078,"nodeType":"FunctionDefinition","src":"16009:350:82","nodes":[],"body":{"id":56077,"nodeType":"Block","src":"16232:127:82","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":56069,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56053,"src":"16276:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56070,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56055,"src":"16285:12:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56071,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56057,"src":"16299:14:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":56072,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56059,"src":"16315:15:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":56073,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56061,"src":"16332:18:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":56067,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16259:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16263:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"16259:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16259:92:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56066,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16249:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16249:103:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":56065,"id":56076,"nodeType":"Return","src":"16242:110:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_stateTransitionHash","nameLocation":"16018:20:82","parameters":{"id":56062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56053,"mutability":"mutable","name":"actorId","nameLocation":"16056:7:82","nodeType":"VariableDeclaration","scope":56078,"src":"16048:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56052,"name":"address","nodeType":"ElementaryTypeName","src":"16048:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56055,"mutability":"mutable","name":"newStateHash","nameLocation":"16081:12:82","nodeType":"VariableDeclaration","scope":56078,"src":"16073:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16073:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56057,"mutability":"mutable","name":"valueToReceive","nameLocation":"16111:14:82","nodeType":"VariableDeclaration","scope":56078,"src":"16103:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":56056,"name":"uint128","nodeType":"ElementaryTypeName","src":"16103:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":56059,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"16143:15:82","nodeType":"VariableDeclaration","scope":56078,"src":"16135:23:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16135:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56061,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"16176:18:82","nodeType":"VariableDeclaration","scope":56078,"src":"16168:26:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16168:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16038:162:82"},"returnParameters":{"id":56065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56078,"src":"16223:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16223:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16222:9:82"},"scope":56269,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":56107,"nodeType":"FunctionDefinition","src":"16365:451:82","nodes":[],"body":{"id":56106,"nodeType":"Block","src":"16468:348:82","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":56089,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16542:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16558:2:82","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":53775,"src":"16542:18:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":56091,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16578:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16594:11:82","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":53777,"src":"16578:27:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":56093,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16623:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16639:7:82","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":53779,"src":"16623:23:82","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":56095,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16664:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16680:5:82","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":53781,"src":"16664:21:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":56097,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16703:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16719:12:82","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":53784,"src":"16703:28:82","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$53790_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":56099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16732:2:82","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":53787,"src":"16703:31:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":56100,"name":"outgoingMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56081,"src":"16752:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage calldata"}},"id":56101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16768:12:82","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":53784,"src":"16752:28:82","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$53790_calldata_ptr","typeString":"struct IRouter.ReplyDetails calldata"}},"id":56102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16781:4:82","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":53789,"src":"16752:33:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":56087,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16508:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16512:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"16508:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16508:291:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56086,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16485:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16485:324:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":56085,"id":56105,"nodeType":"Return","src":"16478:331:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_outgoingMessageHash","nameLocation":"16374:20:82","parameters":{"id":56082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56081,"mutability":"mutable","name":"outgoingMessage","nameLocation":"16420:15:82","nodeType":"VariableDeclaration","scope":56107,"src":"16395:40:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_calldata_ptr","typeString":"struct IRouter.OutgoingMessage"},"typeName":{"id":56080,"nodeType":"UserDefinedTypeName","pathNode":{"id":56079,"name":"OutgoingMessage","nameLocations":["16395:15:82"],"nodeType":"IdentifierPath","referencedDeclaration":53785,"src":"16395:15:82"},"referencedDeclaration":53785,"src":"16395:15:82","typeDescriptions":{"typeIdentifier":"t_struct$_OutgoingMessage_$53785_storage_ptr","typeString":"struct IRouter.OutgoingMessage"}},"visibility":"internal"}],"src":"16394:42:82"},"returnParameters":{"id":56085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56107,"src":"16459:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16459:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16458:9:82"},"scope":56269,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":56126,"nodeType":"FunctionDefinition","src":"16822:192:82","nodes":[],"body":{"id":56125,"nodeType":"Block","src":"16922:92:82","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":56118,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56110,"src":"16966:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":56119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16981:2:82","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":53737,"src":"16966:17:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":56120,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56110,"src":"16985:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment calldata"}},"id":56121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17000:5:82","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":53739,"src":"16985:20:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":56116,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16949:3:82","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16953:12:82","memberName":"encodePacked","nodeType":"MemberAccess","src":"16949:16:82","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16949:57:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56115,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16939:9:82","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16939:68:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":56114,"id":56124,"nodeType":"Return","src":"16932:75:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_codeCommitmentHash","nameLocation":"16831:19:82","parameters":{"id":56111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56110,"mutability":"mutable","name":"codeCommitment","nameLocation":"16875:14:82","nodeType":"VariableDeclaration","scope":56126,"src":"16851:38:82","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_calldata_ptr","typeString":"struct IRouter.CodeCommitment"},"typeName":{"id":56109,"nodeType":"UserDefinedTypeName","pathNode":{"id":56108,"name":"CodeCommitment","nameLocations":["16851:14:82"],"nodeType":"IdentifierPath","referencedDeclaration":53740,"src":"16851:14:82"},"referencedDeclaration":53740,"src":"16851:14:82","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$53740_storage_ptr","typeString":"struct IRouter.CodeCommitment"}},"visibility":"internal"}],"src":"16850:40:82"},"returnParameters":{"id":56114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56126,"src":"16913:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16913:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16912:9:82"},"scope":56269,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":56159,"nodeType":"FunctionDefinition","src":"17020:257:82","nodes":[],"body":{"id":56158,"nodeType":"Block","src":"17068:209:82","nodes":[],"statements":[{"assignments":[56133],"declarations":[{"constant":false,"id":56133,"mutability":"mutable","name":"router","nameLocation":"17094:6:82","nodeType":"VariableDeclaration","scope":56158,"src":"17078:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":56132,"nodeType":"UserDefinedTypeName","pathNode":{"id":56131,"name":"Storage","nameLocations":["17078:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"17078:7:82"},"referencedDeclaration":53731,"src":"17078:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":56136,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56134,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"17103:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":56135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17103:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17078:38:82"},{"assignments":[56138],"declarations":[{"constant":false,"id":56138,"mutability":"mutable","name":"success","nameLocation":"17132:7:82","nodeType":"VariableDeclaration","scope":56158,"src":"17127:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56137,"name":"bool","nodeType":"ElementaryTypeName","src":"17127:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":56152,"initialValue":{"arguments":[{"expression":{"id":56144,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"17182:2:82","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":56145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17185:6:82","memberName":"origin","nodeType":"MemberAccess","src":"17182:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":56148,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17201:4:82","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$56269","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$56269","typeString":"contract Router"}],"id":56147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17193:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56146,"name":"address","nodeType":"ElementaryTypeName","src":"17193:7:82","typeDescriptions":{}}},"id":56149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17193:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56150,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56128,"src":"17208:6:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"expression":{"id":56140,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56133,"src":"17149:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17156:11:82","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":53702,"src":"17149:18:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56139,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41906,"src":"17142:6:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$41906_$","typeString":"type(contract IERC20)"}},"id":56142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17142:26:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$41906","typeString":"contract IERC20"}},"id":56143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17169:12:82","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":41905,"src":"17142:39:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":56151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17142:73:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17127:88:82"},{"expression":{"arguments":[{"id":56154,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56138,"src":"17234:7:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207265747269657665205756617261","id":56155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17243:26:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""},"value":"failed to retrieve WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3257f3c05b2e57b37b1b4545fc8e3f040a16378fd14b34b1b901c2ec9b919712","typeString":"literal_string \"failed to retrieve WVara\""}],"id":56153,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17226:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17226:44:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56157,"nodeType":"ExpressionStatement","src":"17226:44:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrieveValue","nameLocation":"17029:14:82","parameters":{"id":56129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56128,"mutability":"mutable","name":"_value","nameLocation":"17052:6:82","nodeType":"VariableDeclaration","scope":56159,"src":"17044:14:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":56127,"name":"uint128","nodeType":"ElementaryTypeName","src":"17044:7:82","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"17043:16:82"},"returnParameters":{"id":56130,"nodeType":"ParameterList","parameters":[],"src":"17068:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":56200,"nodeType":"FunctionDefinition","src":"17283:317:82","nodes":[],"body":{"id":56199,"nodeType":"Block","src":"17319:281:82","nodes":[],"statements":[{"assignments":[56164],"declarations":[{"constant":false,"id":56164,"mutability":"mutable","name":"router","nameLocation":"17345:6:82","nodeType":"VariableDeclaration","scope":56199,"src":"17329:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":56163,"nodeType":"UserDefinedTypeName","pathNode":{"id":56162,"name":"Storage","nameLocations":["17329:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"17329:7:82"},"referencedDeclaration":53731,"src":"17329:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":56167,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56165,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"17354:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":56166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17354:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17329:38:82"},{"body":{"id":56193,"nodeType":"Block","src":"17437:118:82","statements":[{"assignments":[56181],"declarations":[{"constant":false,"id":56181,"mutability":"mutable","name":"validator","nameLocation":"17459:9:82","nodeType":"VariableDeclaration","scope":56193,"src":"17451:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56180,"name":"address","nodeType":"ElementaryTypeName","src":"17451:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56186,"initialValue":{"baseExpression":{"expression":{"id":56182,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56164,"src":"17471:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17478:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"17471:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56185,"indexExpression":{"id":56184,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56169,"src":"17493:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17471:24:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17451:44:82"},{"expression":{"id":56191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17509:35:82","subExpression":{"baseExpression":{"expression":{"id":56187,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56164,"src":"17516:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17523:10:82","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":53714,"src":"17516:17:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":56190,"indexExpression":{"id":56189,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56181,"src":"17534:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17516:28:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56192,"nodeType":"ExpressionStatement","src":"17509:35:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56172,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56169,"src":"17398:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":56173,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56164,"src":"17402:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17409:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"17402:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17424:6:82","memberName":"length","nodeType":"MemberAccess","src":"17402:28:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17398:32:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56194,"initializationExpression":{"assignments":[56169],"declarations":[{"constant":false,"id":56169,"mutability":"mutable","name":"i","nameLocation":"17391:1:82","nodeType":"VariableDeclaration","scope":56194,"src":"17383:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56168,"name":"uint256","nodeType":"ElementaryTypeName","src":"17383:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56171,"initialValue":{"hexValue":"30","id":56170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17395:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17383:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":56178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17432:3:82","subExpression":{"id":56177,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56169,"src":"17432:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56179,"nodeType":"ExpressionStatement","src":"17432:3:82"},"nodeType":"ForStatement","src":"17378:177:82"},{"expression":{"id":56197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17565:28:82","subExpression":{"expression":{"id":56195,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56164,"src":"17572:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17579:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"17572:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56198,"nodeType":"ExpressionStatement","src":"17565:28:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_cleanValidators","nameLocation":"17292:16:82","parameters":{"id":56160,"nodeType":"ParameterList","parameters":[],"src":"17308:2:82"},"returnParameters":{"id":56161,"nodeType":"ParameterList","parameters":[],"src":"17319:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":56255,"nodeType":"FunctionDefinition","src":"17606:442:82","nodes":[],"body":{"id":56254,"nodeType":"Block","src":"17673:375:82","nodes":[],"statements":[{"assignments":[56208],"declarations":[{"constant":false,"id":56208,"mutability":"mutable","name":"router","nameLocation":"17699:6:82","nodeType":"VariableDeclaration","scope":56254,"src":"17683:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":56207,"nodeType":"UserDefinedTypeName","pathNode":{"id":56206,"name":"Storage","nameLocations":["17683:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"17683:7:82"},"referencedDeclaration":53731,"src":"17683:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":56211,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56209,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"17708:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$53731_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":56210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17708:13:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17683:38:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":56213,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56208,"src":"17740:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17747:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"17740:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17762:6:82","memberName":"length","nodeType":"MemberAccess","src":"17740:28:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":56216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17772:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17740:33:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726576696f75732076616c696461746f727320776572656e27742072656d6f766564","id":56218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17775:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""},"value":"previous validators weren't removed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbe432dd5148cbcd3965634d2fa4c608dba4822bc479da840b7f667e6442b9d2","typeString":"literal_string \"previous validators weren't removed\""}],"id":56212,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17732:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17732:81:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56220,"nodeType":"ExpressionStatement","src":"17732:81:82"},{"body":{"id":56246,"nodeType":"Block","src":"17878:113:82","statements":[{"assignments":[56233],"declarations":[{"constant":false,"id":56233,"mutability":"mutable","name":"validator","nameLocation":"17900:9:82","nodeType":"VariableDeclaration","scope":56246,"src":"17892:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56232,"name":"address","nodeType":"ElementaryTypeName","src":"17892:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56237,"initialValue":{"baseExpression":{"id":56234,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56203,"src":"17912:16:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56236,"indexExpression":{"id":56235,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56222,"src":"17929:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17912:19:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17892:39:82"},{"expression":{"id":56244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":56238,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56208,"src":"17945:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17952:10:82","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":53714,"src":"17945:17:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":56242,"indexExpression":{"id":56240,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56233,"src":"17963:9:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17945:28:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":56243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17976:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17945:35:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56245,"nodeType":"ExpressionStatement","src":"17945:35:82"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56222,"src":"17844:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":56226,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56203,"src":"17848:16:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17865:6:82","memberName":"length","nodeType":"MemberAccess","src":"17848:23:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17844:27:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56247,"initializationExpression":{"assignments":[56222],"declarations":[{"constant":false,"id":56222,"mutability":"mutable","name":"i","nameLocation":"17837:1:82","nodeType":"VariableDeclaration","scope":56247,"src":"17829:9:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56221,"name":"uint256","nodeType":"ElementaryTypeName","src":"17829:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56224,"initialValue":{"hexValue":"30","id":56223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17841:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17829:13:82"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":56230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17873:3:82","subExpression":{"id":56229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56222,"src":"17873:1:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56231,"nodeType":"ExpressionStatement","src":"17873:3:82"},"nodeType":"ForStatement","src":"17824:167:82"},{"expression":{"id":56252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":56248,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56208,"src":"18001:6:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":56250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18008:14:82","memberName":"validatorsKeys","nodeType":"MemberAccess","referencedDeclaration":53717,"src":"18001:21:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56251,"name":"_validatorsArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56203,"src":"18025:16:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18001:40:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56253,"nodeType":"ExpressionStatement","src":"18001:40:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_setValidators","nameLocation":"17615:14:82","parameters":{"id":56204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56203,"mutability":"mutable","name":"_validatorsArray","nameLocation":"17647:16:82","nodeType":"VariableDeclaration","scope":56255,"src":"17630:33:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56201,"name":"address","nodeType":"ElementaryTypeName","src":"17630:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56202,"nodeType":"ArrayTypeName","src":"17630:9:82","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"17629:35:82"},"returnParameters":{"id":56205,"nodeType":"ParameterList","parameters":[],"src":"17673:0:82"},"scope":56269,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":56268,"nodeType":"FunctionDefinition","src":"18054:222:82","nodes":[],"body":{"id":56267,"nodeType":"Block","src":"18123:153:82","nodes":[],"statements":[{"assignments":[56262],"declarations":[{"constant":false,"id":56262,"mutability":"mutable","name":"slot","nameLocation":"18141:4:82","nodeType":"VariableDeclaration","scope":56267,"src":"18133:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18133:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":56265,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56263,"name":"getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54782,"src":"18148:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":56264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18148:16:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18133:31:82"},{"AST":{"nativeSrc":"18227:43:82","nodeType":"YulBlock","src":"18227:43:82","statements":[{"nativeSrc":"18241:19:82","nodeType":"YulAssignment","src":"18241:19:82","value":{"name":"slot","nativeSrc":"18256:4:82","nodeType":"YulIdentifier","src":"18256:4:82"},"variableNames":[{"name":"router.slot","nativeSrc":"18241:11:82","nodeType":"YulIdentifier","src":"18241:11:82"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":56259,"isOffset":false,"isSlot":true,"src":"18241:11:82","suffix":"slot","valueSize":1},{"declaration":56262,"isOffset":false,"isSlot":false,"src":"18256:4:82","valueSize":1}],"id":56266,"nodeType":"InlineAssembly","src":"18218:52:82"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorage","nameLocation":"18063:11:82","parameters":{"id":56256,"nodeType":"ParameterList","parameters":[],"src":"18074:2:82"},"returnParameters":{"id":56260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56259,"mutability":"mutable","name":"router","nameLocation":"18115:6:82","nodeType":"VariableDeclaration","scope":56268,"src":"18099:22:82","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":56258,"nodeType":"UserDefinedTypeName","pathNode":{"id":56257,"name":"Storage","nameLocations":["18099:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":53731,"src":"18099:7:82"},"referencedDeclaration":53731,"src":"18099:7:82","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$53731_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"18098:24:82"},"scope":56269,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":54585,"name":"IRouter","nameLocations":["800:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":54013,"src":"800:7:82"},"id":54586,"nodeType":"InheritanceSpecifier","src":"800:7:82"},{"baseName":{"id":54587,"name":"OwnableUpgradeable","nameLocations":["809:18:82"],"nodeType":"IdentifierPath","referencedDeclaration":39024,"src":"809:18:82"},"id":54588,"nodeType":"InheritanceSpecifier","src":"809:18:82"},{"baseName":{"id":54589,"name":"ReentrancyGuardTransient","nameLocations":["829:24:82"],"nodeType":"IdentifierPath","referencedDeclaration":42400,"src":"829:24:82"},"id":54590,"nodeType":"InheritanceSpecifier","src":"829:24:82"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56269,42400,39024,40172,39278,54013],"name":"Router","nameLocation":"790:6:82","scope":56270,"usedErrors":[38860,38865,39041,39044,42267,42273,42344,43050,43055,43060],"usedEvents":[38871,39049,53795,53802,53809,53816,53819,53822,53827,53832]}],"license":"UNLICENSED"},"id":82} \ No newline at end of file diff --git a/ethexe/ethereum/TransparentUpgradeableProxy.json b/ethexe/ethereum/TransparentUpgradeableProxy.json index df470e5c516..d55910b3855 100644 --- a/ethexe/ethereum/TransparentUpgradeableProxy.json +++ b/ethexe/ethereum/TransparentUpgradeableProxy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_logic","type":"address","internalType":"address"},{"name":"initialOwner","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"fallback","stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidAdmin","inputs":[{"name":"admin","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"ProxyDeniedAdminAccess","inputs":[]}],"bytecode":{"object":"0x60a0604052610a99803803806100148161026b565b92833981016060828203126102675761002c82610290565b61003860208401610290565b604084015190936001600160401b03821161026757019180601f8401121561026757825161006d610068826102a4565b61026b565b9381855260208501926020838301011161026757815f926020809301855e85010152813b15610246577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561022e575f809161012d945190845af43d15610226573d9161011e610068846102a4565b9283523d5f602085013e6102bf565b505b604051906104428083016001600160401b0381118482101761021257602092849261063784396001600160a01b031681520301905ff080156102075760018060a01b0316806080525f80516020610a79833981519152547f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6040805160018060a01b0384168152846020820152a181156101f4576001600160a01b031916175f80516020610a7983398151915255604051610319908161031e82396080518160070152f35b633173bdd160e11b5f525f60045260245ffd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6060916102bf565b505050341561012f5763b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761021257604052565b51906001600160a01b038216820361026757565b6001600160401b03811161021257601f01601f191660200190565b906102e357508051156102d457805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610314575b6102f4575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102ec56fe6080604052337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610066575f356001600160e01b03191663278f794360e11b1461005c576334ad5dbb60e21b5f5260045ffd5b61006461010a565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156100ab573d5ff35b3d5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100e957604052565b6100af565b67ffffffffffffffff81116100e957601f01601f191660200190565b36600411610193576040366003190112610193576004356001600160a01b03811690819003610193576024359067ffffffffffffffff8211610193573660238301121561019357816004013590610168610163836100ee565b6100c3565b918083523660248286010111610193576020815f92602461019197018387013784010152610197565b565b5f80fd5b90813b1561022b577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610213576102109161024c565b50565b50503461021c57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f8061027e93602081519101845af43d15610281573d9161026f610163846100ee565b9283523d5f602085013e610285565b90565b6060915b906102a9575080511561029a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806102da575b6102ba575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102b256fea2646970667358221220f8c4862c2f667058e1e953c94e53338920f93e3cff7433729018a6ca31ae9b8764736f6c634300081a003360803460b857601f61044238819003918201601f19168301916001600160401b0383118484101760bc5780849260209460405283398101031260b857516001600160a01b0381169081900360b857801560a5575f80546001600160a01b031981168317825560405192916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a361037190816100d18239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f803560e01c8063715018a6146102785780638da5cb5b146102515780639623609d1461012e578063ad3cb1cc146100e15763f2fde38b14610051575f80fd5b346100de5760203660031901126100de576004356001600160a01b038116908190036100da5761007f610315565b80156100c65781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b80fd5b50346100de57806003193601126100de575061012a6040516101046040826102cf565b60058152640352e302e360dc1b60208201526040519182916020835260208301906102f1565b0390f35b506060366003190112610239576004356001600160a01b03811690819003610239576024356001600160a01b038116908190036102395760443567ffffffffffffffff8111610239573660238201121561023957806004013567ffffffffffffffff811161023d57604051916101ae601f8301601f1916602001846102cf565b818352366024838301011161023957815f9260246020930183860137830101526101d6610315565b823b156102395761020c925f9260405180958194829363278f794360e11b845260048401526040602484015260448301906102f1565b039134905af1801561022e57610220575080f35b61022c91505f906102cf565b005b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b34610239575f366003190112610239575f546040516001600160a01b039091168152602090f35b34610239575f36600319011261023957610290610315565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b90601f8019910116810190811067ffffffffffffffff82111761023d57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f546001600160a01b0316330361032857565b63118cdaa760e01b5f523360045260245ffdfea26469706673582212209cf4e242a748d0fa8d93e9ba36cfbfba352a79c78840df9f239bdbe73004db9d64736f6c634300081a0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103","sourceMap":"4239:2231:44:-:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;4239:2231:44;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;4239:2231:44;;;;;;;;;;;1758:29:38;;:34;1754:119;;821:66;4239:2231:44;;-1:-1:-1;;;;;;4239:2231:44;-1:-1:-1;;;;;4239:2231:44;;;;;;;;2417:36:38;-1:-1:-1;;2417:36:38;4239:2231:44;;2468:15:38;:11;;-1:-1:-1;4049:25:48;;4091:55;4049:25;;;;;;4239:2231:44;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;4239:2231:44;;;;4091:55:48;:::i;:::-;;2464:148:38;4239:2231:44;;;5215:28;;;;-1:-1:-1;;;;;5215:28:44;;;;;;;;4239:2231;5215:28;;;;;;-1:-1:-1;;;;;4239:2231:44;;;5215:28;;;-1:-1:-1;5215:28:44;;;;;4239:2231;;;;;;5198:46;;;-1:-1:-1;;;;;;;;;;;2878:66:38;3900:43;4239:2231:44;;;;;;;;;;;;;;;;;3900:43:38;3559:22;;3555:91;;-1:-1:-1;;;;;;4239:2231:44;;-1:-1:-1;;;;;;;;;;;4239:2231:44;;;;;;;;;5198:46;4239:2231;;;;;;3555:91:38;3604:31;;;-1:-1:-1;3604:31:38;-1:-1:-1;3604:31:38;4239:2231:44;;-1:-1:-1;3604:31:38;5215:28:44;4239:2231;;;-1:-1:-1;4239:2231:44;;;;;5215:28;4239:2231;;;-1:-1:-1;4239:2231:44;;;;;-1:-1:-1;4239:2231:44;;;;4091:55:48;:::i;2464:148:38:-;6173:9;;;;6169:70;2464:148;6169:70;6209:19;;;-1:-1:-1;6209:19:38;;-1:-1:-1;6209:19:38;1754:119;-1:-1:-1;;;;;1815:47:38;;;-1:-1:-1;;;;;4239:2231:44;;;;1815:47:38;4239:2231:44;;;1815:47:38;4239:2231:44;-1:-1:-1;4239:2231:44;;;;;;;;;-1:-1:-1;;4239:2231:44;;;-1:-1:-1;;;;;4239:2231:44;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4239:2231:44;;;;;;:::o;:::-;-1:-1:-1;;;;;4239:2231:44;;;;;;-1:-1:-1;;4239:2231:44;;;;:::o;4421:582:48:-;;4593:8;;-1:-1:-1;4239:2231:44;;5674:21:48;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;4239:2231:44;;4841:22:48;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:48;4917:24;;;-1:-1:-1;;;;;4239:2231:44;;;;4917:24:48;4239:2231:44;;;4917:24:48;4841:49;4867:18;;;:23;4841:49;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610066575f356001600160e01b03191663278f794360e11b1461005c576334ad5dbb60e21b5f5260045ffd5b61006461010a565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156100ab573d5ff35b3d5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100e957604052565b6100af565b67ffffffffffffffff81116100e957601f01601f191660200190565b36600411610193576040366003190112610193576004356001600160a01b03811690819003610193576024359067ffffffffffffffff8211610193573660238301121561019357816004013590610168610163836100ee565b6100c3565b918083523660248286010111610193576020815f92602461019197018387013784010152610197565b565b5f80fd5b90813b1561022b577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610213576102109161024c565b50565b50503461021c57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f8061027e93602081519101845af43d15610281573d9161026f610163846100ee565b9283523d5f602085013e610285565b90565b6060915b906102a9575080511561029a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806102da575b6102ba575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102b256fea2646970667358221220f8c4862c2f667058e1e953c94e53338920f93e3cff7433729018a6ca31ae9b8764736f6c634300081a0033","sourceMap":"4239:2231:44:-:0;;;5741:10;5525:6;-1:-1:-1;;;;;4239:2231:44;5741:27;4239:2231;;5788:7;;-1:-1:-1;;;;;;5788:7:44;-1:-1:-1;;;5788:65:44;5799:54;;5880:24;;;5788:7;5880:24;;5788:7;5880:24;5784:201;;;:::i;:::-;4239:2231;5737:306;821:66:38;;-1:-1:-1;;;;;;;;;4239:2231:44;1019:819:39;-1:-1:-1;;1019:819:39;;;;;;;-1:-1:-1;1019:819:39;;;;;;-1:-1:-1;1019:819:39;;;-1:-1:-1;1019:819:39;4239:2231:44;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4239:2231:44;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;-1:-1:-1;;4239:2231:44;;;;:::o;6251:217::-;6366:8;6375:1;4239:2231;;;;6366:8;-1:-1:-1;;4239:2231:44;;;;6375:1;4239:2231;-1:-1:-1;;;;;4239:2231:44;;;;;;;;;;;;;;;;6366:8;4239:2231;;;;;;;;6375:1;4239:2231;;;;;;;:::i;:::-;;:::i;:::-;;;;;6366:8;4239:2231;;;;;;;;;;6366:8;4239:2231;;6456:4;4239:2231;;;;;;;;;;6456:4;:::i;:::-;6251:217::o;4239:2231::-;6366:8;4239:2231;;2274:344:38;;1758:29;;:34;1754:119;;821:66;4239:2231:44;;-1:-1:-1;;;;;;4239:2231:44;-1:-1:-1;;;;;4239:2231:44;;;;;;;;2417:36:38;-1:-1:-1;;2417:36:38;4239:2231:44;;2468:15:38;:11;;2499:53;;;:::i;:::-;;2274:344::o;2464:148::-;6173:9;;;6169:70;;2274:344::o;6169:70::-;6209:19;;;1791:1;6209:19;;1791:1;6209:19;1754:119;-1:-1:-1;;;;1791:1:38;1815:47;;;-1:-1:-1;;;;;4239:2231:44;;;;1815:47:38;4239:2231:44;;;1815:47:38;3900:253:48;4049:25;3900:253;4091:55;3900:253;4049:25;;;;;;;;4239:2231:44;;;;;;;;;;:::i;:::-;;;;;4049:25:48;;4239:2231:44;;;4091:55:48;:::i;:::-;3900:253;:::o;4239:2231:44:-;;;4421:582:48;;4593:8;;-1:-1:-1;4239:2231:44;;5674:21:48;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;4239:2231:44;;4841:22:48;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:48;4917:24;;;-1:-1:-1;;;;;4239:2231:44;;;;4917:24:48;4239:2231:44;;;4917:24:48;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"41719":[{"start":7,"length":32}]}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProxyDeniedAdminAccess\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself. 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating the proxy admin cannot fallback to the target implementation. These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership. NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to fully implement transparency without decoding reverts caused by selector clashes between the proxy and the implementation. NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract. IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot is generally fine if the implementation is trusted. WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"ProxyDeniedAdminAccess()\":[{\"details\":\"The proxy caller is the current admin, and can't fallback to the proxy target.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":\"TransparentUpgradeableProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x31b7f755099238afdf101d132e356ca59a2f5aa3c9d6957bc320c3a89c6b29a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c1ef7fce6c908e6912cbea81d4655489fb29e328b03502b6dc680a4eda65ae5\",\"dweb:/ipfs/QmQMasWF2fg4DvwYuXto8qvkDYVsrTDmBCgjRPTvn6PgpD\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x5f3770f82f75d132e210b43c071d3feec1bef13c385d1d799763a366e8bda311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a50b7702cbd525c4a0fd3c36d1e116432b5f645f84cb25e4473dc9c88a917c5\",\"dweb:/ipfs/QmaN5QKZwgypVK3zAwdgXfsygEeauRYa4sSe4x8yKXDRtV\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0x3cfd70b5e57ac16134caf206c6a71ea5ff113bc2032cd6d845231793f5c62995\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://984097ae51f9be9b94d2a3f5be7f284bd525fd9f0a0ccdca34cfaa7f0e1625d1\",\"dweb:/ipfs/QmXSL4rFMM25pJzvuTzN1DX4ddAwTCnmxS2axDwaZyzNHL\"]},\"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x11e3f4156c76feda27ffa117c3f624972471124411067e8f02c9a6909f35d035\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://beb0d9fe2c5fae15f1ca8a22b2c8cfaaa75984f6c8a94534ba85f98366caa6a5\",\"dweb:/ipfs/QmQEFQtyLACb6j7XajAT7Z1KzANE6JzqDYMEQeG8yzrfqP\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"type":"error","name":"ERC1967InvalidAdmin"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"ProxyDeniedAdminAccess"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":"TransparentUpgradeableProxy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0x31b7f755099238afdf101d132e356ca59a2f5aa3c9d6957bc320c3a89c6b29a8","urls":["bzz-raw://6c1ef7fce6c908e6912cbea81d4655489fb29e328b03502b6dc680a4eda65ae5","dweb:/ipfs/QmQMasWF2fg4DvwYuXto8qvkDYVsrTDmBCgjRPTvn6PgpD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x5f3770f82f75d132e210b43c071d3feec1bef13c385d1d799763a366e8bda311","urls":["bzz-raw://3a50b7702cbd525c4a0fd3c36d1e116432b5f645f84cb25e4473dc9c88a917c5","dweb:/ipfs/QmaN5QKZwgypVK3zAwdgXfsygEeauRYa4sSe4x8yKXDRtV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol":{"keccak256":"0x3cfd70b5e57ac16134caf206c6a71ea5ff113bc2032cd6d845231793f5c62995","urls":["bzz-raw://984097ae51f9be9b94d2a3f5be7f284bd525fd9f0a0ccdca34cfaa7f0e1625d1","dweb:/ipfs/QmXSL4rFMM25pJzvuTzN1DX4ddAwTCnmxS2axDwaZyzNHL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0x11e3f4156c76feda27ffa117c3f624972471124411067e8f02c9a6909f35d035","urls":["bzz-raw://beb0d9fe2c5fae15f1ca8a22b2c8cfaaa75984f6c8a94534ba85f98366caa6a5","dweb:/ipfs/QmQEFQtyLACb6j7XajAT7Z1KzANE6JzqDYMEQeG8yzrfqP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4","urls":["bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097","dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","id":41829,"exportedSymbols":{"ERC1967Proxy":[41159],"ERC1967Utils":[41453],"IERC1967":[40796],"ITransparentUpgradeableProxy":[41714],"ProxyAdmin":[41693],"TransparentUpgradeableProxy":[41828]},"nodeType":"SourceUnit","src":"133:6338:44","nodes":[{"id":41695,"nodeType":"PragmaDirective","src":"133:24:44","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":41697,"nodeType":"ImportDirective","src":"159:57:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"../ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":41829,"sourceUnit":41454,"symbolAliases":[{"foreign":{"id":41696,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41453,"src":"167:12:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41699,"nodeType":"ImportDirective","src":"217:57:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","nameLocation":"-1:-1:-1","scope":41829,"sourceUnit":41160,"symbolAliases":[{"foreign":{"id":41698,"name":"ERC1967Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41159,"src":"225:12:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41701,"nodeType":"ImportDirective","src":"275:55:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","file":"../../interfaces/IERC1967.sol","nameLocation":"-1:-1:-1","scope":41829,"sourceUnit":40797,"symbolAliases":[{"foreign":{"id":41700,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40796,"src":"283:8:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41703,"nodeType":"ImportDirective","src":"331:44:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol","file":"./ProxyAdmin.sol","nameLocation":"-1:-1:-1","scope":41829,"sourceUnit":41694,"symbolAliases":[{"foreign":{"id":41702,"name":"ProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41693,"src":"339:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41714,"nodeType":"ContractDefinition","src":"823:127:44","nodes":[{"id":41713,"nodeType":"FunctionDefinition","src":"880:68:44","nodes":[],"functionSelector":"4f1ef286","implemented":false,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"889:16:44","parameters":{"id":41711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41713,"src":"906:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41707,"name":"address","nodeType":"ElementaryTypeName","src":"906:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41713,"src":"915:14:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":41709,"name":"bytes","nodeType":"ElementaryTypeName","src":"915:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"905:25:44"},"returnParameters":{"id":41712,"nodeType":"ParameterList","parameters":[],"src":"947:0:44"},"scope":41714,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":41705,"name":"IERC1967","nameLocations":["865:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":40796,"src":"865:8:44"},"id":41706,"nodeType":"InheritanceSpecifier","src":"865:8:44"}],"canonicalName":"ITransparentUpgradeableProxy","contractDependencies":[],"contractKind":"interface","documentation":{"id":41704,"nodeType":"StructuredDocumentation","src":"377:445:44","text":" @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch\n mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n include them in the ABI so this interface must be used to interact with it."},"fullyImplemented":false,"linearizedBaseContracts":[41714,40796],"name":"ITransparentUpgradeableProxy","nameLocation":"833:28:44","scope":41829,"usedErrors":[],"usedEvents":[40783,40790,40795]},{"id":41828,"nodeType":"ContractDefinition","src":"4239:2231:44","nodes":[{"id":41719,"nodeType":"VariableDeclaration","src":"4633:32:44","nodes":[],"constant":false,"mutability":"immutable","name":"_admin","nameLocation":"4659:6:44","scope":41828,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41718,"name":"address","nodeType":"ElementaryTypeName","src":"4633:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":41722,"nodeType":"ErrorDefinition","src":"4779:31:44","nodes":[],"documentation":{"id":41720,"nodeType":"StructuredDocumentation","src":"4672:102:44","text":" @dev The proxy caller is the current admin, and can't fallback to the proxy target."},"errorSelector":"d2b576ec","name":"ProxyDeniedAdminAccess","nameLocation":"4785:22:44","parameters":{"id":41721,"nodeType":"ParameterList","parameters":[],"src":"4807:2:44"}},{"id":41755,"nodeType":"FunctionDefinition","src":"5082:296:44","nodes":[],"body":{"id":41754,"nodeType":"Block","src":"5188:190:44","nodes":[],"statements":[{"expression":{"id":41745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41736,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41719,"src":"5198:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":41742,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41727,"src":"5230:12:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"5215:14:44","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ProxyAdmin_$41693_$","typeString":"function (address) returns (contract ProxyAdmin)"},"typeName":{"id":41740,"nodeType":"UserDefinedTypeName","pathNode":{"id":41739,"name":"ProxyAdmin","nameLocations":["5219:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":41693,"src":"5219:10:44"},"referencedDeclaration":41693,"src":"5219:10:44","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$41693","typeString":"contract ProxyAdmin"}}},"id":41743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5215:28:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$41693","typeString":"contract ProxyAdmin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyAdmin_$41693","typeString":"contract ProxyAdmin"}],"id":41738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5207:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41737,"name":"address","nodeType":"ElementaryTypeName","src":"5207:7:44","typeDescriptions":{}}},"id":41744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5207:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5198:46:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41746,"nodeType":"ExpressionStatement","src":"5198:46:44"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":41750,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"5357:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":41751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5357:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41747,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41453,"src":"5332:12:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$41453_$","typeString":"type(library ERC1967Utils)"}},"id":41749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5345:11:44","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":41335,"src":"5332:24:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":41752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5332:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41753,"nodeType":"ExpressionStatement","src":"5332:39:44"}]},"documentation":{"id":41723,"nodeType":"StructuredDocumentation","src":"4816:261:44","text":" @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`,\n backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in\n {ERC1967Proxy-constructor}."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":41732,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41725,"src":"5173:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41733,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41729,"src":"5181:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":41734,"kind":"baseConstructorSpecifier","modifierName":{"id":41731,"name":"ERC1967Proxy","nameLocations":["5160:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":41159,"src":"5160:12:44"},"nodeType":"ModifierInvocation","src":"5160:27:44"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":41730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41725,"mutability":"mutable","name":"_logic","nameLocation":"5102:6:44","nodeType":"VariableDeclaration","scope":41755,"src":"5094:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41724,"name":"address","nodeType":"ElementaryTypeName","src":"5094:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41727,"mutability":"mutable","name":"initialOwner","nameLocation":"5118:12:44","nodeType":"VariableDeclaration","scope":41755,"src":"5110:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41726,"name":"address","nodeType":"ElementaryTypeName","src":"5110:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41729,"mutability":"mutable","name":"_data","nameLocation":"5145:5:44","nodeType":"VariableDeclaration","scope":41755,"src":"5132:18:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41728,"name":"bytes","nodeType":"ElementaryTypeName","src":"5132:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5093:58:44"},"returnParameters":{"id":41735,"nodeType":"ParameterList","parameters":[],"src":"5188:0:44"},"scope":41828,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":41764,"nodeType":"FunctionDefinition","src":"5445:93:44","nodes":[],"body":{"id":41763,"nodeType":"Block","src":"5508:30:44","nodes":[],"statements":[{"expression":{"id":41761,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41719,"src":"5525:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":41760,"id":41762,"nodeType":"Return","src":"5518:13:44"}]},"documentation":{"id":41756,"nodeType":"StructuredDocumentation","src":"5384:56:44","text":" @dev Returns the admin of this proxy."},"implemented":true,"kind":"function","modifiers":[],"name":"_proxyAdmin","nameLocation":"5454:11:44","parameters":{"id":41757,"nodeType":"ParameterList","parameters":[],"src":"5465:2:44"},"returnParameters":{"id":41760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41759,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41764,"src":"5499:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41758,"name":"address","nodeType":"ElementaryTypeName","src":"5499:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5498:9:44"},"scope":41828,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":41798,"nodeType":"FunctionDefinition","src":"5680:369:44","nodes":[],"body":{"id":41797,"nodeType":"Block","src":"5727:322:44","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41769,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5741:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5745:6:44","memberName":"sender","nodeType":"MemberAccess","src":"5741:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":41771,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"5755:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":41772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5755:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5741:27:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41795,"nodeType":"Block","src":"6001:42:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41790,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6015:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$41828_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":41792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6021:9:44","memberName":"_fallback","nodeType":"MemberAccess","referencedDeclaration":41480,"src":"6015:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":41793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6015:17:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41794,"nodeType":"ExpressionStatement","src":"6015:17:44"}]},"id":41796,"nodeType":"IfStatement","src":"5737:306:44","trueBody":{"id":41789,"nodeType":"Block","src":"5770:225:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":41779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41774,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5788:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5792:3:44","memberName":"sig","nodeType":"MemberAccess","src":"5788:7:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":41776,"name":"ITransparentUpgradeableProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41714,"src":"5799:28:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITransparentUpgradeableProxy_$41714_$","typeString":"type(contract ITransparentUpgradeableProxy)"}},"id":41777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5828:16:44","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":41713,"src":"5799:45:44","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes calldata) payable"}},"id":41778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5845:8:44","memberName":"selector","nodeType":"MemberAccess","src":"5799:54:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5788:65:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41787,"nodeType":"Block","src":"5925:60:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41784,"name":"_dispatchUpgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41827,"src":"5943:25:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":41785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5943:27:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41786,"nodeType":"ExpressionStatement","src":"5943:27:44"}]},"id":41788,"nodeType":"IfStatement","src":"5784:201:44","trueBody":{"id":41783,"nodeType":"Block","src":"5855:64:44","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41780,"name":"ProxyDeniedAdminAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41722,"src":"5880:22:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":41781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5880:24:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":41782,"nodeType":"RevertStatement","src":"5873:31:44"}]}}]}}]},"baseFunctions":[41480],"documentation":{"id":41765,"nodeType":"StructuredDocumentation","src":"5544:131:44","text":" @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior."},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"5689:9:44","overrides":{"id":41767,"nodeType":"OverrideSpecifier","overrides":[],"src":"5718:8:44"},"parameters":{"id":41766,"nodeType":"ParameterList","parameters":[],"src":"5698:2:44"},"returnParameters":{"id":41768,"nodeType":"ParameterList","parameters":[],"src":"5727:0:44"},"scope":41828,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":41827,"nodeType":"FunctionDefinition","src":"6251:217:44","nodes":[],"body":{"id":41826,"nodeType":"Block","src":"6296:172:44","nodes":[],"statements":[{"assignments":[41803,41805],"declarations":[{"constant":false,"id":41803,"mutability":"mutable","name":"newImplementation","nameLocation":"6315:17:44","nodeType":"VariableDeclaration","scope":41826,"src":"6307:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41802,"name":"address","nodeType":"ElementaryTypeName","src":"6307:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41805,"mutability":"mutable","name":"data","nameLocation":"6347:4:44","nodeType":"VariableDeclaration","scope":41826,"src":"6334:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41804,"name":"bytes","nodeType":"ElementaryTypeName","src":"6334:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":41818,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":41808,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6366:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6370:4:44","memberName":"data","nodeType":"MemberAccess","src":"6366:8:44","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":41811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6366:12:44","startExpression":{"hexValue":"34","id":41810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},{"components":[{"id":41813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6381:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41812,"name":"address","nodeType":"ElementaryTypeName","src":"6381:7:44","typeDescriptions":{}}},{"id":41815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6390:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":41814,"name":"bytes","nodeType":"ElementaryTypeName","src":"6390:5:44","typeDescriptions":{}}}],"id":41816,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6380:16:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}],"expression":{"id":41806,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6355:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6359:6:44","memberName":"decode","nodeType":"MemberAccess","src":"6355:10:44","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":41817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6355:42:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6306:91:44"},{"expression":{"arguments":[{"id":41822,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41803,"src":"6437:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41823,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41805,"src":"6456:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":41819,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41453,"src":"6407:12:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$41453_$","typeString":"type(library ERC1967Utils)"}},"id":41821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6420:16:44","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":41268,"src":"6407:29:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":41824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6407:54:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41825,"nodeType":"ExpressionStatement","src":"6407:54:44"}]},"documentation":{"id":41799,"nodeType":"StructuredDocumentation","src":"6055:191:44","text":" @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.\n Requirements:\n - If `data` is empty, `msg.value` must be zero."},"implemented":true,"kind":"function","modifiers":[],"name":"_dispatchUpgradeToAndCall","nameLocation":"6260:25:44","parameters":{"id":41800,"nodeType":"ParameterList","parameters":[],"src":"6285:2:44"},"returnParameters":{"id":41801,"nodeType":"ParameterList","parameters":[],"src":"6296:0:44"},"scope":41828,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":41716,"name":"ERC1967Proxy","nameLocations":["4279:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":41159,"src":"4279:12:44"},"id":41717,"nodeType":"InheritanceSpecifier","src":"4279:12:44"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[41693],"contractKind":"contract","documentation":{"id":41715,"nodeType":"StructuredDocumentation","src":"952:3286:44","text":" @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.\n 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to\n the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating\n the proxy admin cannot fallback to the target implementation.\n These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a\n dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to\n call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and\n allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative\n interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.\n NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch\n mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n implementation.\n NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a\n meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.\n IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an\n immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be\n overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an\n undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot\n is generally fine if the implementation is trusted.\n WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the\n compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new\n function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This\n could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency."},"fullyImplemented":true,"linearizedBaseContracts":[41828,41159,41489],"name":"TransparentUpgradeableProxy","nameLocation":"4248:27:44","scope":41829,"usedErrors":[41179,41184,41192,41722,41978,42270],"usedEvents":[40783,40790]}],"license":"MIT"},"id":44} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_logic","type":"address","internalType":"address"},{"name":"initialOwner","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"fallback","stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidAdmin","inputs":[{"name":"admin","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"ProxyDeniedAdminAccess","inputs":[]}],"bytecode":{"object":"0x60a0604052610a99803803806100148161026b565b92833981016060828203126102675761002c82610290565b61003860208401610290565b604084015190936001600160401b03821161026757019180601f8401121561026757825161006d610068826102a4565b61026b565b9381855260208501926020838301011161026757815f926020809301855e85010152813b15610246577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561022e575f809161012d945190845af43d15610226573d9161011e610068846102a4565b9283523d5f602085013e6102bf565b505b604051906104428083016001600160401b0381118482101761021257602092849261063784396001600160a01b031681520301905ff080156102075760018060a01b0316806080525f80516020610a79833981519152547f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6040805160018060a01b0384168152846020820152a181156101f4576001600160a01b031916175f80516020610a7983398151915255604051610319908161031e82396080518160070152f35b633173bdd160e11b5f525f60045260245ffd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6060916102bf565b505050341561012f5763b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761021257604052565b51906001600160a01b038216820361026757565b6001600160401b03811161021257601f01601f191660200190565b906102e357508051156102d457805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610314575b6102f4575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102ec56fe6080604052337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610066575f356001600160e01b03191663278f794360e11b1461005c576334ad5dbb60e21b5f5260045ffd5b61006461010a565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156100ab573d5ff35b3d5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100e957604052565b6100af565b67ffffffffffffffff81116100e957601f01601f191660200190565b36600411610193576040366003190112610193576004356001600160a01b03811690819003610193576024359067ffffffffffffffff8211610193573660238301121561019357816004013590610168610163836100ee565b6100c3565b918083523660248286010111610193576020815f92602461019197018387013784010152610197565b565b5f80fd5b90813b1561022b577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610213576102109161024c565b50565b50503461021c57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f8061027e93602081519101845af43d15610281573d9161026f610163846100ee565b9283523d5f602085013e610285565b90565b6060915b906102a9575080511561029a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806102da575b6102ba575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102b256fea26469706673582212201edb4fb1bf2eaaf67b77df3fc0311b71bb6a2bd9cdd9532fa802a5e5a245f1c664736f6c634300081a003360803460b857601f61044238819003918201601f19168301916001600160401b0383118484101760bc5780849260209460405283398101031260b857516001600160a01b0381169081900360b857801560a5575f80546001600160a01b031981168317825560405192916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a361037190816100d18239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f803560e01c8063715018a6146102785780638da5cb5b146102515780639623609d1461012e578063ad3cb1cc146100e15763f2fde38b14610051575f80fd5b346100de5760203660031901126100de576004356001600160a01b038116908190036100da5761007f610315565b80156100c65781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b80fd5b50346100de57806003193601126100de575061012a6040516101046040826102cf565b60058152640352e302e360dc1b60208201526040519182916020835260208301906102f1565b0390f35b506060366003190112610239576004356001600160a01b03811690819003610239576024356001600160a01b038116908190036102395760443567ffffffffffffffff8111610239573660238201121561023957806004013567ffffffffffffffff811161023d57604051916101ae601f8301601f1916602001846102cf565b818352366024838301011161023957815f9260246020930183860137830101526101d6610315565b823b156102395761020c925f9260405180958194829363278f794360e11b845260048401526040602484015260448301906102f1565b039134905af1801561022e57610220575080f35b61022c91505f906102cf565b005b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b34610239575f366003190112610239575f546040516001600160a01b039091168152602090f35b34610239575f36600319011261023957610290610315565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b90601f8019910116810190811067ffffffffffffffff82111761023d57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f546001600160a01b0316330361032857565b63118cdaa760e01b5f523360045260245ffdfea2646970667358221220a66a8d3547be6a913d76cc474a0232562bfb572a8eea897bf2358f237387a78464736f6c634300081a0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103","sourceMap":"4239:2231:44:-:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;4239:2231:44;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;4239:2231:44;;;;;;;;;;;1758:29:38;;:34;1754:119;;821:66;4239:2231:44;;-1:-1:-1;;;;;;4239:2231:44;-1:-1:-1;;;;;4239:2231:44;;;;;;;;2417:36:38;-1:-1:-1;;2417:36:38;4239:2231:44;;2468:15:38;:11;;-1:-1:-1;4049:25:48;;4091:55;4049:25;;;;;;4239:2231:44;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;4239:2231:44;;;;4091:55:48;:::i;:::-;;2464:148:38;4239:2231:44;;;5215:28;;;;-1:-1:-1;;;;;5215:28:44;;;;;;;;4239:2231;5215:28;;;;;;-1:-1:-1;;;;;4239:2231:44;;;5215:28;;;-1:-1:-1;5215:28:44;;;;;4239:2231;;;;;;5198:46;;;-1:-1:-1;;;;;;;;;;;2878:66:38;3900:43;4239:2231:44;;;;;;;;;;;;;;;;;3900:43:38;3559:22;;3555:91;;-1:-1:-1;;;;;;4239:2231:44;;-1:-1:-1;;;;;;;;;;;4239:2231:44;;;;;;;;;5198:46;4239:2231;;;;;;3555:91:38;3604:31;;;-1:-1:-1;3604:31:38;-1:-1:-1;3604:31:38;4239:2231:44;;-1:-1:-1;3604:31:38;5215:28:44;4239:2231;;;-1:-1:-1;4239:2231:44;;;;;5215:28;4239:2231;;;-1:-1:-1;4239:2231:44;;;;;-1:-1:-1;4239:2231:44;;;;4091:55:48;:::i;2464:148:38:-;6173:9;;;;6169:70;2464:148;6169:70;6209:19;;;-1:-1:-1;6209:19:38;;-1:-1:-1;6209:19:38;1754:119;-1:-1:-1;;;;;1815:47:38;;;-1:-1:-1;;;;;4239:2231:44;;;;1815:47:38;4239:2231:44;;;1815:47:38;4239:2231:44;-1:-1:-1;4239:2231:44;;;;;;;;;-1:-1:-1;;4239:2231:44;;;-1:-1:-1;;;;;4239:2231:44;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4239:2231:44;;;;;;:::o;:::-;-1:-1:-1;;;;;4239:2231:44;;;;;;-1:-1:-1;;4239:2231:44;;;;:::o;4421:582:48:-;;4593:8;;-1:-1:-1;4239:2231:44;;5674:21:48;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;4239:2231:44;;4841:22:48;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:48;4917:24;;;-1:-1:-1;;;;;4239:2231:44;;;;4917:24:48;4239:2231:44;;;4917:24:48;4841:49;4867:18;;;:23;4841:49;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610066575f356001600160e01b03191663278f794360e11b1461005c576334ad5dbb60e21b5f5260045ffd5b61006461010a565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156100ab573d5ff35b3d5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100e957604052565b6100af565b67ffffffffffffffff81116100e957601f01601f191660200190565b36600411610193576040366003190112610193576004356001600160a01b03811690819003610193576024359067ffffffffffffffff8211610193573660238301121561019357816004013590610168610163836100ee565b6100c3565b918083523660248286010111610193576020815f92602461019197018387013784010152610197565b565b5f80fd5b90813b1561022b577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610213576102109161024c565b50565b50503461021c57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f8061027e93602081519101845af43d15610281573d9161026f610163846100ee565b9283523d5f602085013e610285565b90565b6060915b906102a9575080511561029a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806102da575b6102ba575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102b256fea26469706673582212201edb4fb1bf2eaaf67b77df3fc0311b71bb6a2bd9cdd9532fa802a5e5a245f1c664736f6c634300081a0033","sourceMap":"4239:2231:44:-:0;;;5741:10;5525:6;-1:-1:-1;;;;;4239:2231:44;5741:27;4239:2231;;5788:7;;-1:-1:-1;;;;;;5788:7:44;-1:-1:-1;;;5788:65:44;5799:54;;5880:24;;;5788:7;5880:24;;5788:7;5880:24;5784:201;;;:::i;:::-;4239:2231;5737:306;821:66:38;;-1:-1:-1;;;;;;;;;4239:2231:44;1019:819:39;-1:-1:-1;;1019:819:39;;;;;;;-1:-1:-1;1019:819:39;;;;;;-1:-1:-1;1019:819:39;;;-1:-1:-1;1019:819:39;4239:2231:44;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4239:2231:44;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;-1:-1:-1;;4239:2231:44;;;;:::o;6251:217::-;6366:8;6375:1;4239:2231;;;;6366:8;-1:-1:-1;;4239:2231:44;;;;6375:1;4239:2231;-1:-1:-1;;;;;4239:2231:44;;;;;;;;;;;;;;;;6366:8;4239:2231;;;;;;;;6375:1;4239:2231;;;;;;;:::i;:::-;;:::i;:::-;;;;;6366:8;4239:2231;;;;;;;;;;6366:8;4239:2231;;6456:4;4239:2231;;;;;;;;;;6456:4;:::i;:::-;6251:217::o;4239:2231::-;6366:8;4239:2231;;2274:344:38;;1758:29;;:34;1754:119;;821:66;4239:2231:44;;-1:-1:-1;;;;;;4239:2231:44;-1:-1:-1;;;;;4239:2231:44;;;;;;;;2417:36:38;-1:-1:-1;;2417:36:38;4239:2231:44;;2468:15:38;:11;;2499:53;;;:::i;:::-;;2274:344::o;2464:148::-;6173:9;;;6169:70;;2274:344::o;6169:70::-;6209:19;;;1791:1;6209:19;;1791:1;6209:19;1754:119;-1:-1:-1;;;;1791:1:38;1815:47;;;-1:-1:-1;;;;;4239:2231:44;;;;1815:47:38;4239:2231:44;;;1815:47:38;3900:253:48;4049:25;3900:253;4091:55;3900:253;4049:25;;;;;;;;4239:2231:44;;;;;;;;;;:::i;:::-;;;;;4049:25:48;;4239:2231:44;;;4091:55:48;:::i;:::-;3900:253;:::o;4239:2231:44:-;;;4421:582:48;;4593:8;;-1:-1:-1;4239:2231:44;;5674:21:48;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;4239:2231:44;;4841:22:48;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:48;4917:24;;;-1:-1:-1;;;;;4239:2231:44;;;;4917:24:48;4239:2231:44;;;4917:24:48;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"41719":[{"start":7,"length":32}]}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProxyDeniedAdminAccess\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself. 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating the proxy admin cannot fallback to the target implementation. These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership. NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to fully implement transparency without decoding reverts caused by selector clashes between the proxy and the implementation. NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract. IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot is generally fine if the implementation is trusted. WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"ProxyDeniedAdminAccess()\":[{\"details\":\"The proxy caller is the current admin, and can't fallback to the proxy target.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":\"TransparentUpgradeableProxy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x31b7f755099238afdf101d132e356ca59a2f5aa3c9d6957bc320c3a89c6b29a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c1ef7fce6c908e6912cbea81d4655489fb29e328b03502b6dc680a4eda65ae5\",\"dweb:/ipfs/QmQMasWF2fg4DvwYuXto8qvkDYVsrTDmBCgjRPTvn6PgpD\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x5f3770f82f75d132e210b43c071d3feec1bef13c385d1d799763a366e8bda311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a50b7702cbd525c4a0fd3c36d1e116432b5f645f84cb25e4473dc9c88a917c5\",\"dweb:/ipfs/QmaN5QKZwgypVK3zAwdgXfsygEeauRYa4sSe4x8yKXDRtV\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0x3cfd70b5e57ac16134caf206c6a71ea5ff113bc2032cd6d845231793f5c62995\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://984097ae51f9be9b94d2a3f5be7f284bd525fd9f0a0ccdca34cfaa7f0e1625d1\",\"dweb:/ipfs/QmXSL4rFMM25pJzvuTzN1DX4ddAwTCnmxS2axDwaZyzNHL\"]},\"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x11e3f4156c76feda27ffa117c3f624972471124411067e8f02c9a6909f35d035\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://beb0d9fe2c5fae15f1ca8a22b2c8cfaaa75984f6c8a94534ba85f98366caa6a5\",\"dweb:/ipfs/QmQEFQtyLACb6j7XajAT7Z1KzANE6JzqDYMEQeG8yzrfqP\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a\",\"dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"type":"error","name":"ERC1967InvalidAdmin"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"ProxyDeniedAdminAccess"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":"TransparentUpgradeableProxy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0x31b7f755099238afdf101d132e356ca59a2f5aa3c9d6957bc320c3a89c6b29a8","urls":["bzz-raw://6c1ef7fce6c908e6912cbea81d4655489fb29e328b03502b6dc680a4eda65ae5","dweb:/ipfs/QmQMasWF2fg4DvwYuXto8qvkDYVsrTDmBCgjRPTvn6PgpD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x5f3770f82f75d132e210b43c071d3feec1bef13c385d1d799763a366e8bda311","urls":["bzz-raw://3a50b7702cbd525c4a0fd3c36d1e116432b5f645f84cb25e4473dc9c88a917c5","dweb:/ipfs/QmaN5QKZwgypVK3zAwdgXfsygEeauRYa4sSe4x8yKXDRtV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol":{"keccak256":"0x3cfd70b5e57ac16134caf206c6a71ea5ff113bc2032cd6d845231793f5c62995","urls":["bzz-raw://984097ae51f9be9b94d2a3f5be7f284bd525fd9f0a0ccdca34cfaa7f0e1625d1","dweb:/ipfs/QmXSL4rFMM25pJzvuTzN1DX4ddAwTCnmxS2axDwaZyzNHL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0x11e3f4156c76feda27ffa117c3f624972471124411067e8f02c9a6909f35d035","urls":["bzz-raw://beb0d9fe2c5fae15f1ca8a22b2c8cfaaa75984f6c8a94534ba85f98366caa6a5","dweb:/ipfs/QmQEFQtyLACb6j7XajAT7Z1KzANE6JzqDYMEQeG8yzrfqP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0xc452b8c0ab5a57e6ca49c4fbe6aead2460c2f8d60d58bc60af68e559b7ca1179","urls":["bzz-raw://0980b3b9e8cd9d9a0f2ae848f0f36a85158887e6fd961142a13b11299ae7f30a","dweb:/ipfs/QmUrmDji3NR2V3YezV8xHSS3wjeBKq16FL7cHdBCnwLjKd"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4","urls":["bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097","dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","id":41829,"exportedSymbols":{"ERC1967Proxy":[41159],"ERC1967Utils":[41453],"IERC1967":[40796],"ITransparentUpgradeableProxy":[41714],"ProxyAdmin":[41693],"TransparentUpgradeableProxy":[41828]},"nodeType":"SourceUnit","src":"133:6338:44","nodes":[{"id":41695,"nodeType":"PragmaDirective","src":"133:24:44","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":41697,"nodeType":"ImportDirective","src":"159:57:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"../ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":41829,"sourceUnit":41454,"symbolAliases":[{"foreign":{"id":41696,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41453,"src":"167:12:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41699,"nodeType":"ImportDirective","src":"217:57:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","nameLocation":"-1:-1:-1","scope":41829,"sourceUnit":41160,"symbolAliases":[{"foreign":{"id":41698,"name":"ERC1967Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41159,"src":"225:12:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41701,"nodeType":"ImportDirective","src":"275:55:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","file":"../../interfaces/IERC1967.sol","nameLocation":"-1:-1:-1","scope":41829,"sourceUnit":40797,"symbolAliases":[{"foreign":{"id":41700,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40796,"src":"283:8:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41703,"nodeType":"ImportDirective","src":"331:44:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol","file":"./ProxyAdmin.sol","nameLocation":"-1:-1:-1","scope":41829,"sourceUnit":41694,"symbolAliases":[{"foreign":{"id":41702,"name":"ProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41693,"src":"339:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41714,"nodeType":"ContractDefinition","src":"823:127:44","nodes":[{"id":41713,"nodeType":"FunctionDefinition","src":"880:68:44","nodes":[],"functionSelector":"4f1ef286","implemented":false,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"889:16:44","parameters":{"id":41711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41713,"src":"906:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41707,"name":"address","nodeType":"ElementaryTypeName","src":"906:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41713,"src":"915:14:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":41709,"name":"bytes","nodeType":"ElementaryTypeName","src":"915:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"905:25:44"},"returnParameters":{"id":41712,"nodeType":"ParameterList","parameters":[],"src":"947:0:44"},"scope":41714,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":41705,"name":"IERC1967","nameLocations":["865:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":40796,"src":"865:8:44"},"id":41706,"nodeType":"InheritanceSpecifier","src":"865:8:44"}],"canonicalName":"ITransparentUpgradeableProxy","contractDependencies":[],"contractKind":"interface","documentation":{"id":41704,"nodeType":"StructuredDocumentation","src":"377:445:44","text":" @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch\n mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n include them in the ABI so this interface must be used to interact with it."},"fullyImplemented":false,"linearizedBaseContracts":[41714,40796],"name":"ITransparentUpgradeableProxy","nameLocation":"833:28:44","scope":41829,"usedErrors":[],"usedEvents":[40783,40790,40795]},{"id":41828,"nodeType":"ContractDefinition","src":"4239:2231:44","nodes":[{"id":41719,"nodeType":"VariableDeclaration","src":"4633:32:44","nodes":[],"constant":false,"mutability":"immutable","name":"_admin","nameLocation":"4659:6:44","scope":41828,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41718,"name":"address","nodeType":"ElementaryTypeName","src":"4633:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":41722,"nodeType":"ErrorDefinition","src":"4779:31:44","nodes":[],"documentation":{"id":41720,"nodeType":"StructuredDocumentation","src":"4672:102:44","text":" @dev The proxy caller is the current admin, and can't fallback to the proxy target."},"errorSelector":"d2b576ec","name":"ProxyDeniedAdminAccess","nameLocation":"4785:22:44","parameters":{"id":41721,"nodeType":"ParameterList","parameters":[],"src":"4807:2:44"}},{"id":41755,"nodeType":"FunctionDefinition","src":"5082:296:44","nodes":[],"body":{"id":41754,"nodeType":"Block","src":"5188:190:44","nodes":[],"statements":[{"expression":{"id":41745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41736,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41719,"src":"5198:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":41742,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41727,"src":"5230:12:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"5215:14:44","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ProxyAdmin_$41693_$","typeString":"function (address) returns (contract ProxyAdmin)"},"typeName":{"id":41740,"nodeType":"UserDefinedTypeName","pathNode":{"id":41739,"name":"ProxyAdmin","nameLocations":["5219:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":41693,"src":"5219:10:44"},"referencedDeclaration":41693,"src":"5219:10:44","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$41693","typeString":"contract ProxyAdmin"}}},"id":41743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5215:28:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$41693","typeString":"contract ProxyAdmin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyAdmin_$41693","typeString":"contract ProxyAdmin"}],"id":41738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5207:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41737,"name":"address","nodeType":"ElementaryTypeName","src":"5207:7:44","typeDescriptions":{}}},"id":41744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5207:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5198:46:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41746,"nodeType":"ExpressionStatement","src":"5198:46:44"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":41750,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"5357:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":41751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5357:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41747,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41453,"src":"5332:12:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$41453_$","typeString":"type(library ERC1967Utils)"}},"id":41749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5345:11:44","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":41335,"src":"5332:24:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":41752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5332:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41753,"nodeType":"ExpressionStatement","src":"5332:39:44"}]},"documentation":{"id":41723,"nodeType":"StructuredDocumentation","src":"4816:261:44","text":" @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`,\n backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in\n {ERC1967Proxy-constructor}."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":41732,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41725,"src":"5173:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41733,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41729,"src":"5181:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":41734,"kind":"baseConstructorSpecifier","modifierName":{"id":41731,"name":"ERC1967Proxy","nameLocations":["5160:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":41159,"src":"5160:12:44"},"nodeType":"ModifierInvocation","src":"5160:27:44"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":41730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41725,"mutability":"mutable","name":"_logic","nameLocation":"5102:6:44","nodeType":"VariableDeclaration","scope":41755,"src":"5094:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41724,"name":"address","nodeType":"ElementaryTypeName","src":"5094:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41727,"mutability":"mutable","name":"initialOwner","nameLocation":"5118:12:44","nodeType":"VariableDeclaration","scope":41755,"src":"5110:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41726,"name":"address","nodeType":"ElementaryTypeName","src":"5110:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41729,"mutability":"mutable","name":"_data","nameLocation":"5145:5:44","nodeType":"VariableDeclaration","scope":41755,"src":"5132:18:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41728,"name":"bytes","nodeType":"ElementaryTypeName","src":"5132:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5093:58:44"},"returnParameters":{"id":41735,"nodeType":"ParameterList","parameters":[],"src":"5188:0:44"},"scope":41828,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":41764,"nodeType":"FunctionDefinition","src":"5445:93:44","nodes":[],"body":{"id":41763,"nodeType":"Block","src":"5508:30:44","nodes":[],"statements":[{"expression":{"id":41761,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41719,"src":"5525:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":41760,"id":41762,"nodeType":"Return","src":"5518:13:44"}]},"documentation":{"id":41756,"nodeType":"StructuredDocumentation","src":"5384:56:44","text":" @dev Returns the admin of this proxy."},"implemented":true,"kind":"function","modifiers":[],"name":"_proxyAdmin","nameLocation":"5454:11:44","parameters":{"id":41757,"nodeType":"ParameterList","parameters":[],"src":"5465:2:44"},"returnParameters":{"id":41760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41759,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41764,"src":"5499:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41758,"name":"address","nodeType":"ElementaryTypeName","src":"5499:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5498:9:44"},"scope":41828,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":41798,"nodeType":"FunctionDefinition","src":"5680:369:44","nodes":[],"body":{"id":41797,"nodeType":"Block","src":"5727:322:44","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41769,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5741:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5745:6:44","memberName":"sender","nodeType":"MemberAccess","src":"5741:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":41771,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"5755:11:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":41772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5755:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5741:27:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41795,"nodeType":"Block","src":"6001:42:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41790,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6015:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$41828_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":41792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6021:9:44","memberName":"_fallback","nodeType":"MemberAccess","referencedDeclaration":41480,"src":"6015:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":41793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6015:17:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41794,"nodeType":"ExpressionStatement","src":"6015:17:44"}]},"id":41796,"nodeType":"IfStatement","src":"5737:306:44","trueBody":{"id":41789,"nodeType":"Block","src":"5770:225:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":41779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41774,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5788:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5792:3:44","memberName":"sig","nodeType":"MemberAccess","src":"5788:7:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":41776,"name":"ITransparentUpgradeableProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41714,"src":"5799:28:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITransparentUpgradeableProxy_$41714_$","typeString":"type(contract ITransparentUpgradeableProxy)"}},"id":41777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5828:16:44","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":41713,"src":"5799:45:44","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes calldata) payable"}},"id":41778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5845:8:44","memberName":"selector","nodeType":"MemberAccess","src":"5799:54:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5788:65:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41787,"nodeType":"Block","src":"5925:60:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41784,"name":"_dispatchUpgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41827,"src":"5943:25:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":41785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5943:27:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41786,"nodeType":"ExpressionStatement","src":"5943:27:44"}]},"id":41788,"nodeType":"IfStatement","src":"5784:201:44","trueBody":{"id":41783,"nodeType":"Block","src":"5855:64:44","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41780,"name":"ProxyDeniedAdminAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41722,"src":"5880:22:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":41781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5880:24:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":41782,"nodeType":"RevertStatement","src":"5873:31:44"}]}}]}}]},"baseFunctions":[41480],"documentation":{"id":41765,"nodeType":"StructuredDocumentation","src":"5544:131:44","text":" @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior."},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"5689:9:44","overrides":{"id":41767,"nodeType":"OverrideSpecifier","overrides":[],"src":"5718:8:44"},"parameters":{"id":41766,"nodeType":"ParameterList","parameters":[],"src":"5698:2:44"},"returnParameters":{"id":41768,"nodeType":"ParameterList","parameters":[],"src":"5727:0:44"},"scope":41828,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":41827,"nodeType":"FunctionDefinition","src":"6251:217:44","nodes":[],"body":{"id":41826,"nodeType":"Block","src":"6296:172:44","nodes":[],"statements":[{"assignments":[41803,41805],"declarations":[{"constant":false,"id":41803,"mutability":"mutable","name":"newImplementation","nameLocation":"6315:17:44","nodeType":"VariableDeclaration","scope":41826,"src":"6307:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41802,"name":"address","nodeType":"ElementaryTypeName","src":"6307:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41805,"mutability":"mutable","name":"data","nameLocation":"6347:4:44","nodeType":"VariableDeclaration","scope":41826,"src":"6334:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41804,"name":"bytes","nodeType":"ElementaryTypeName","src":"6334:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":41818,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":41808,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6366:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6370:4:44","memberName":"data","nodeType":"MemberAccess","src":"6366:8:44","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":41811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6366:12:44","startExpression":{"hexValue":"34","id":41810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:44","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},{"components":[{"id":41813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6381:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41812,"name":"address","nodeType":"ElementaryTypeName","src":"6381:7:44","typeDescriptions":{}}},{"id":41815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6390:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":41814,"name":"bytes","nodeType":"ElementaryTypeName","src":"6390:5:44","typeDescriptions":{}}}],"id":41816,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6380:16:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}],"expression":{"id":41806,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6355:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6359:6:44","memberName":"decode","nodeType":"MemberAccess","src":"6355:10:44","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":41817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6355:42:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6306:91:44"},{"expression":{"arguments":[{"id":41822,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41803,"src":"6437:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41823,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41805,"src":"6456:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":41819,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41453,"src":"6407:12:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$41453_$","typeString":"type(library ERC1967Utils)"}},"id":41821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6420:16:44","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":41268,"src":"6407:29:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":41824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6407:54:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41825,"nodeType":"ExpressionStatement","src":"6407:54:44"}]},"documentation":{"id":41799,"nodeType":"StructuredDocumentation","src":"6055:191:44","text":" @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.\n Requirements:\n - If `data` is empty, `msg.value` must be zero."},"implemented":true,"kind":"function","modifiers":[],"name":"_dispatchUpgradeToAndCall","nameLocation":"6260:25:44","parameters":{"id":41800,"nodeType":"ParameterList","parameters":[],"src":"6285:2:44"},"returnParameters":{"id":41801,"nodeType":"ParameterList","parameters":[],"src":"6296:0:44"},"scope":41828,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":41716,"name":"ERC1967Proxy","nameLocations":["4279:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":41159,"src":"4279:12:44"},"id":41717,"nodeType":"InheritanceSpecifier","src":"4279:12:44"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[41693],"contractKind":"contract","documentation":{"id":41715,"nodeType":"StructuredDocumentation","src":"952:3286:44","text":" @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.\n 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to\n the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating\n the proxy admin cannot fallback to the target implementation.\n These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a\n dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to\n call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and\n allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative\n interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.\n NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch\n mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n implementation.\n NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a\n meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.\n IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an\n immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be\n overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an\n undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot\n is generally fine if the implementation is trusted.\n WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the\n compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new\n function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This\n could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency."},"fullyImplemented":true,"linearizedBaseContracts":[41828,41159,41489],"name":"TransparentUpgradeableProxy","nameLocation":"4248:27:44","scope":41829,"usedErrors":[41179,41184,41192,41722,41978,42270],"usedEvents":[40783,40790]}],"license":"MIT"},"id":44} \ No newline at end of file diff --git a/ethexe/ethereum/WrappedVara.json b/ethexe/ethereum/WrappedVara.json index 913a61f420c..f73cb3d8436 100644 --- a/ethexe/ethereum/WrappedVara.json +++ b/ethexe/ethereum/WrappedVara.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b604051611cc090816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120f578063095ea7b3146111e957806318160ddd146111c057806323b872dd14611188578063313ce5671461116d5780633644e5151461114b57806340c10f191461110e57806342966c68146110f15780636c2eb3501461105757806370a0823114611013578063715018a614610fac57806379cc679014610f7c5780637ecebe0014610f2657806384b0196e14610c525780638da5cb5b14610c1e57806395d89b4114610b24578063a9059cbb14610af3578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112f0565b6101246115b4565b6113ae565b005b5f80fd5b3461012b57604036600319011261012b576101486112f0565b610159610153611306565b91611376565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112f0565b610197611306565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611354565b5190206102636117c2565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611854565b909291926118e1565b6001600160a01b03168481036102ae5750610129935061169d565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112f0565b5f80516020611c6b833981519152549060ff8260401c16159167ffffffffffffffff811680159081610aeb575b6001149081610ae1575b159081610ad8575b50610ac95767ffffffffffffffff1981166001175f80516020611c6b8339815191525582610a9d575b5060405191610369604084611354565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611354565b6005835264575641524160d81b60208401526103ab611829565b6103b3611829565b835167ffffffffffffffff81116107aa576103db5f80516020611b8b8339815191525461131c565b601f8111610a2e575b50602094601f82116001146109b3579481929394955f926109a8575b50508160011b915f199060031b1c1916175f80516020611b8b833981519152555b825167ffffffffffffffff81116107aa576104495f80516020611beb8339815191525461131c565b601f8111610939575b506020601f82116001146108be57819293945f926108b3575b50508160011b915f199060031b1c1916175f80516020611beb833981519152555b610494611829565b61049c611829565b6104a4611829565b6104ad816113ae565b604051916104bc604084611354565b600c83526b57726170706564205661726160a01b60208401526104dd611829565b604051916104ec604084611354565b60018352603160f81b6020840152610502611829565b835167ffffffffffffffff81116107aa5761052a5f80516020611bcb8339815191525461131c565b601f8111610844575b50602094601f82116001146107c9579481929394955f926107be575b50508160011b915f199060031b1c1916175f80516020611bcb833981519152555b825167ffffffffffffffff81116107aa576105985f80516020611c4b8339815191525461131c565b601f811161073b575b506020601f82116001146106c057819293945f926106b5575b50508160011b915f199060031b1c1916175f80516020611c4b833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a25769d3c21bcecceda100000061064591611700565b61064b57005b68ff0000000000000000195f80516020611c6b83398151915254165f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c4b8339815191525f52805f20915f5b8181106107235750958360019596971061070b575b505050811b015f80516020611c4b833981519152556105db565b01515f1960f88460031b161c191690558480806106f1565b9192602060018192868b0151815501940192016106dc565b5f80516020611c4b8339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c810191602084106107a0575b601f0160051c01905b81811061079557506105a1565b5f8155600101610788565b909150819061077f565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bcb8339815191525f52805f20915f5b88811061082c57508360019596979810610814575b505050811b015f80516020611bcb83398151915255610570565b01515f1960f88460031b161c191690558580806107fa565b919260206001819286850151815501940192016107e5565b5f80516020611bcb8339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a9575b601f0160051c01905b81811061089e5750610533565b5f8155600101610891565b9091508190610888565b01519050848061046b565b601f198216905f80516020611beb8339815191525f52805f20915f5b81811061092157509583600195969710610909575b505050811b015f80516020611beb8339815191525561048c565b01515f1960f88460031b161c191690558480806108ef565b9192602060018192868b0151815501940192016108da565b5f80516020611beb8339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099e575b601f0160051c01905b8181106109935750610452565b5f8155600101610986565b909150819061097d565b015190508580610400565b601f198216955f80516020611b8b8339815191525f52805f20915f5b888110610a16575083600195969798106109fe575b505050811b015f80516020611b8b83398151915255610421565b01515f1960f88460031b161c191690558580806109e4565b919260206001819286850151815501940192016109cf565b5f80516020611b8b8339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a93575b601f0160051c01905b818110610a8857506103e4565b5f8155600101610a7b565b9091508190610a72565b68ffffffffffffffffff191668010000000000000001175f80516020611c6b8339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b19610b0f6112f0565b60243590336114e3565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611beb83398151915254610b508161131c565b8084529060018116908115610bfa5750600114610b90575b610b8c83610b7881850382611354565b6040519182916020835260208301906112cc565b0390f35b5f80516020611beb8339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610be057509091508101602001610b78610b68565b919260018160209254838588010152019101909291610bc8565b60ff191660208086019190915291151560051b84019091019150610b789050610b68565b3461012b575f36600319011261012b575f80516020611c0b833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efd575b15610ec0576040515f80516020611bcb83398151915254815f610cad8361131c565b8083529260018116908115610ea15750600114610e36575b610cd192500382611354565b6040515f80516020611c4b83398151915254815f610cee8361131c565b8083529260018116908115610e175750600114610dac575b610d1991925092610d5094930382611354565b6020610d5e60405192610d2c8385611354565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112cc565b9085820360408701526112cc565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9557505050500390f35b835185528695509381019392810192600101610d86565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610dfb575050906020610d1992820101610d06565b6020919350806001915483858801015201910190918392610de3565b60209250610d1994915060ff191682840152151560051b820101610d06565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e85575050906020610cd192820101610cc5565b6020919350806001915483858801015201910190918392610e6d565b60209250610cd194915060ff191682840152151560051b820101610cc5565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c8b565b3461012b57602036600319011261012b57610f3f6112f0565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f986112f0565b60243590610fa782338361141f565b6115e7565b3461012b575f36600319011261012b57610fc46115b4565b5f80516020611c0b83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110346112f0565b165f525f80516020611bab833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106f6115b4565b5f80516020611c6b8339815191525460ff8160401c1680156110dc575b610ac95760029068ffffffffffffffffff1916175f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108c565b3461012b57602036600319011261012b57610129600435336115e7565b3461012b57604036600319011261012b576111276112f0565b61112f6115b4565b6001600160a01b038116156106a2576101299060243590611700565b3461012b575f36600319011261012b5760206111656117c2565b604051908152f35b3461012b575f36600319011261012b57602060405160128152f35b3461012b57606036600319011261012b57610b196111a46112f0565b6111ac611306565b604435916111bb83338361141f565b6114e3565b3461012b575f36600319011261012b5760205f80516020611c2b83398151915254604051908152f35b3461012b57604036600319011261012b57610b196112056112f0565b602435903361169d565b3461012b575f36600319011261012b576040515f5f80516020611b8b8339815191525461123b8161131c565b8084529060018116908115610bfa575060011461126257610b8c83610b7881850382611354565b5f80516020611b8b8339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b257509091508101602001610b78610b68565b91926001816020925483858801015201910190929161129a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c9216801561134a575b602083101461133657565b634e487b7160e01b5f52602260045260245ffd5b91607f169161132b565b90601f8019910116810190811067ffffffffffffffff8211176107aa57604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140c575f80516020611c0b83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142a83611376565b60018060a01b0382165f5260205260405f2054925f19840361144d575b50505050565b8284106114c0576001600160a01b038116156114ad576001600160a01b0382161561149a5761147b90611376565b9060018060a01b03165f5260205260405f20910390555f808080611447565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b03169081156115a1576001600160a01b03169182156106a257815f525f80516020611bab83398151915260205260405f205481811061158857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611bab83398151915284520360405f2055845f525f80516020611bab833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c0b833981519152546001600160a01b031633036115d457565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b031680156115a157805f525f80516020611bab83398151915260205260405f2054838110611683576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611bab8339815191528452036040862055805f80516020611c2b83398151915254035f80516020611c2b83398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ad576001600160a01b031692831561149a577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ec602092611376565b855f5282528060405f2055604051908152a3565b5f80516020611c2b83398151915254908282018092116117ae575f80516020611c2b833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178c57805f80516020611c2b83398151915254035f80516020611c2b833981519152555b604051908152a3565b8484525f80516020611bab833981519152825260408420818154019055611783565b634e487b7160e01b5f52601160045260245ffd5b6117ca611955565b6117d2611a82565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182360c082611354565b51902090565b60ff5f80516020611c6b8339815191525460401c161561184557565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d6579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118cb575f516001600160a01b038116156118c157905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561194157806118f3575050565b6001810361190a5763f645eedf60e01b5f5260045ffd5b60028103611925575063fce698f760e01b5f5260045260245ffd5b60031461192f5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bcb83398151915254905f816119738461131c565b9182825260208201946001811690815f14611a6657506001146119fb575b61199d92500382611354565b519081156119a9572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d65790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4a57505090602061199d92820101611991565b6020919350806001915483858801015201910190918392611a32565b60ff191686525061199d92151560051b82016020019050611991565b6040515f80516020611c4b83398151915254905f81611aa08461131c565b9182825260208201946001811690815f14611b6e5750600114611b03575b611aca92500382611354565b51908115611ad6572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d65790565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b52575050906020611aca92820101611abe565b6020919350806001915483858801015201910190918392611b3a565b60ff1916865250611aca92151560051b82016020019050611abe56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212209da26bb79b9ef65d56e69c8dd0f9b8882c07271218158f84deaaef27e65e2ebb64736f6c634300081a0033","sourceMap":"632:901:83:-:0;;;;;;;8837:64:25;632:901:83;;;;;;7896:76:25;;-1:-1:-1;;;;;;;;;;;632:901:83;;7985:34:25;7981:146;;-1:-1:-1;632:901:83;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;632:901:83;-1:-1:-1;;;;;632:901:83;;;8837:64:25;632:901:83;;;8087:29:25;;632:901:83;;8087:29:25;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:25;;-1:-1:-1;7938:23:25;632:901:83;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120f578063095ea7b3146111e957806318160ddd146111c057806323b872dd14611188578063313ce5671461116d5780633644e5151461114b57806340c10f191461110e57806342966c68146110f15780636c2eb3501461105757806370a0823114611013578063715018a614610fac57806379cc679014610f7c5780637ecebe0014610f2657806384b0196e14610c525780638da5cb5b14610c1e57806395d89b4114610b24578063a9059cbb14610af3578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112f0565b6101246115b4565b6113ae565b005b5f80fd5b3461012b57604036600319011261012b576101486112f0565b610159610153611306565b91611376565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112f0565b610197611306565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611354565b5190206102636117c2565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611854565b909291926118e1565b6001600160a01b03168481036102ae5750610129935061169d565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112f0565b5f80516020611c6b833981519152549060ff8260401c16159167ffffffffffffffff811680159081610aeb575b6001149081610ae1575b159081610ad8575b50610ac95767ffffffffffffffff1981166001175f80516020611c6b8339815191525582610a9d575b5060405191610369604084611354565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611354565b6005835264575641524160d81b60208401526103ab611829565b6103b3611829565b835167ffffffffffffffff81116107aa576103db5f80516020611b8b8339815191525461131c565b601f8111610a2e575b50602094601f82116001146109b3579481929394955f926109a8575b50508160011b915f199060031b1c1916175f80516020611b8b833981519152555b825167ffffffffffffffff81116107aa576104495f80516020611beb8339815191525461131c565b601f8111610939575b506020601f82116001146108be57819293945f926108b3575b50508160011b915f199060031b1c1916175f80516020611beb833981519152555b610494611829565b61049c611829565b6104a4611829565b6104ad816113ae565b604051916104bc604084611354565b600c83526b57726170706564205661726160a01b60208401526104dd611829565b604051916104ec604084611354565b60018352603160f81b6020840152610502611829565b835167ffffffffffffffff81116107aa5761052a5f80516020611bcb8339815191525461131c565b601f8111610844575b50602094601f82116001146107c9579481929394955f926107be575b50508160011b915f199060031b1c1916175f80516020611bcb833981519152555b825167ffffffffffffffff81116107aa576105985f80516020611c4b8339815191525461131c565b601f811161073b575b506020601f82116001146106c057819293945f926106b5575b50508160011b915f199060031b1c1916175f80516020611c4b833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a25769d3c21bcecceda100000061064591611700565b61064b57005b68ff0000000000000000195f80516020611c6b83398151915254165f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c4b8339815191525f52805f20915f5b8181106107235750958360019596971061070b575b505050811b015f80516020611c4b833981519152556105db565b01515f1960f88460031b161c191690558480806106f1565b9192602060018192868b0151815501940192016106dc565b5f80516020611c4b8339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c810191602084106107a0575b601f0160051c01905b81811061079557506105a1565b5f8155600101610788565b909150819061077f565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bcb8339815191525f52805f20915f5b88811061082c57508360019596979810610814575b505050811b015f80516020611bcb83398151915255610570565b01515f1960f88460031b161c191690558580806107fa565b919260206001819286850151815501940192016107e5565b5f80516020611bcb8339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a9575b601f0160051c01905b81811061089e5750610533565b5f8155600101610891565b9091508190610888565b01519050848061046b565b601f198216905f80516020611beb8339815191525f52805f20915f5b81811061092157509583600195969710610909575b505050811b015f80516020611beb8339815191525561048c565b01515f1960f88460031b161c191690558480806108ef565b9192602060018192868b0151815501940192016108da565b5f80516020611beb8339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099e575b601f0160051c01905b8181106109935750610452565b5f8155600101610986565b909150819061097d565b015190508580610400565b601f198216955f80516020611b8b8339815191525f52805f20915f5b888110610a16575083600195969798106109fe575b505050811b015f80516020611b8b83398151915255610421565b01515f1960f88460031b161c191690558580806109e4565b919260206001819286850151815501940192016109cf565b5f80516020611b8b8339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a93575b601f0160051c01905b818110610a8857506103e4565b5f8155600101610a7b565b9091508190610a72565b68ffffffffffffffffff191668010000000000000001175f80516020611c6b8339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b19610b0f6112f0565b60243590336114e3565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611beb83398151915254610b508161131c565b8084529060018116908115610bfa5750600114610b90575b610b8c83610b7881850382611354565b6040519182916020835260208301906112cc565b0390f35b5f80516020611beb8339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610be057509091508101602001610b78610b68565b919260018160209254838588010152019101909291610bc8565b60ff191660208086019190915291151560051b84019091019150610b789050610b68565b3461012b575f36600319011261012b575f80516020611c0b833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efd575b15610ec0576040515f80516020611bcb83398151915254815f610cad8361131c565b8083529260018116908115610ea15750600114610e36575b610cd192500382611354565b6040515f80516020611c4b83398151915254815f610cee8361131c565b8083529260018116908115610e175750600114610dac575b610d1991925092610d5094930382611354565b6020610d5e60405192610d2c8385611354565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112cc565b9085820360408701526112cc565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9557505050500390f35b835185528695509381019392810192600101610d86565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610dfb575050906020610d1992820101610d06565b6020919350806001915483858801015201910190918392610de3565b60209250610d1994915060ff191682840152151560051b820101610d06565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e85575050906020610cd192820101610cc5565b6020919350806001915483858801015201910190918392610e6d565b60209250610cd194915060ff191682840152151560051b820101610cc5565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c8b565b3461012b57602036600319011261012b57610f3f6112f0565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f986112f0565b60243590610fa782338361141f565b6115e7565b3461012b575f36600319011261012b57610fc46115b4565b5f80516020611c0b83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110346112f0565b165f525f80516020611bab833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106f6115b4565b5f80516020611c6b8339815191525460ff8160401c1680156110dc575b610ac95760029068ffffffffffffffffff1916175f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108c565b3461012b57602036600319011261012b57610129600435336115e7565b3461012b57604036600319011261012b576111276112f0565b61112f6115b4565b6001600160a01b038116156106a2576101299060243590611700565b3461012b575f36600319011261012b5760206111656117c2565b604051908152f35b3461012b575f36600319011261012b57602060405160128152f35b3461012b57606036600319011261012b57610b196111a46112f0565b6111ac611306565b604435916111bb83338361141f565b6114e3565b3461012b575f36600319011261012b5760205f80516020611c2b83398151915254604051908152f35b3461012b57604036600319011261012b57610b196112056112f0565b602435903361169d565b3461012b575f36600319011261012b576040515f5f80516020611b8b8339815191525461123b8161131c565b8084529060018116908115610bfa575060011461126257610b8c83610b7881850382611354565b5f80516020611b8b8339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b257509091508101602001610b78610b68565b91926001816020925483858801015201910190929161129a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c9216801561134a575b602083101461133657565b634e487b7160e01b5f52602260045260245ffd5b91607f169161132b565b90601f8019910116810190811067ffffffffffffffff8211176107aa57604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140c575f80516020611c0b83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142a83611376565b60018060a01b0382165f5260205260405f2054925f19840361144d575b50505050565b8284106114c0576001600160a01b038116156114ad576001600160a01b0382161561149a5761147b90611376565b9060018060a01b03165f5260205260405f20910390555f808080611447565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b03169081156115a1576001600160a01b03169182156106a257815f525f80516020611bab83398151915260205260405f205481811061158857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611bab83398151915284520360405f2055845f525f80516020611bab833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c0b833981519152546001600160a01b031633036115d457565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b031680156115a157805f525f80516020611bab83398151915260205260405f2054838110611683576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611bab8339815191528452036040862055805f80516020611c2b83398151915254035f80516020611c2b83398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ad576001600160a01b031692831561149a577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ec602092611376565b855f5282528060405f2055604051908152a3565b5f80516020611c2b83398151915254908282018092116117ae575f80516020611c2b833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178c57805f80516020611c2b83398151915254035f80516020611c2b833981519152555b604051908152a3565b8484525f80516020611bab833981519152825260408420818154019055611783565b634e487b7160e01b5f52601160045260245ffd5b6117ca611955565b6117d2611a82565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182360c082611354565b51902090565b60ff5f80516020611c6b8339815191525460401c161561184557565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d6579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118cb575f516001600160a01b038116156118c157905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561194157806118f3575050565b6001810361190a5763f645eedf60e01b5f5260045ffd5b60028103611925575063fce698f760e01b5f5260045260245ffd5b60031461192f5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bcb83398151915254905f816119738461131c565b9182825260208201946001811690815f14611a6657506001146119fb575b61199d92500382611354565b519081156119a9572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d65790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4a57505090602061199d92820101611991565b6020919350806001915483858801015201910190918392611a32565b60ff191686525061199d92151560051b82016020019050611991565b6040515f80516020611c4b83398151915254905f81611aa08461131c565b9182825260208201946001811690815f14611b6e5750600114611b03575b611aca92500382611354565b51908115611ad6572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d65790565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b52575050906020611aca92820101611abe565b6020919350806001915483858801015201910190918392611b3a565b60ff1916865250611aca92151560051b82016020019050611abe56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212209da26bb79b9ef65d56e69c8dd0f9b8882c07271218158f84deaaef27e65e2ebb64736f6c634300081a0033","sourceMap":"632:901:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;2357:1:24;632:901:83;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;:::-;632:901:83;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;;;:::i;:::-;4867:20:26;632:901:83;;:::i;:::-;4867:20:26;;:::i;:::-;:29;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;;-1:-1:-1;632:901:83;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:28;;:26;2297:97;;6967:25:55;7021:8;632:901:83;;;;;;;;;;;;972:64:30;632:901:83;;;;;;;;;;;;;;;;2435:78:28;632:901:83;2435:78:28;;632:901:83;1279:95:28;632:901:83;;1279:95:28;632:901:83;1279:95:28;;632:901:83;;;;;;;;;1279:95:28;;632:901:83;1279:95:28;632:901:83;1279:95:28;;632:901:83;;1279:95:28;;632:901:83;;1279:95:28;;632:901:83;;2435:78:28;;;632:901:83;2435:78:28;;:::i;:::-;632:901:83;2425:89:28;;4094:23:31;;:::i;:::-;3515:233:56;632:901:83;3515:233:56;;-1:-1:-1;;;3515:233:56;;;;;;;;;;632:901:83;;;3515:233:56;632:901:83;;3515:233:56;;6967:25:55;:::i;:::-;7021:8;;;;;:::i;:::-;-1:-1:-1;;;;;632:901:83;2638:15:28;;;2634:88;;10117:4:26;;;;;:::i;2634:88:28:-;2676:35;;;;;632:901:83;2676:35:28;632:901:83;;;;;;2676:35:28;2297:97;2350:33;;;;632:901:83;2350:33:28;632:901:83;;;;2350:33:28;632:901:83;;;;;;-1:-1:-1;;632:901:83;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;4301:16:25;632:901:83;;;;4726:16:25;;:34;;;;632:901:83;4805:1:25;4790:16;:50;;;;632:901:83;4855:13:25;:30;;;;632:901:83;4851:91:25;;;-1:-1:-1;;632:901:83;;4805:1:25;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;4979:67:25;;632:901:83;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:901:83;;;;;;;;;;;:::i;:::-;821:14;632:901;;-1:-1:-1;;;632:901:83;821:14;;;6893:76:25;;:::i;:::-;;;:::i;:::-;632:901:83;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;2600:7:26;632:901:83;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;2600:7:26;632:901:83;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;6893:76:25;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6961:1;;;:::i;:::-;632:901:83;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:901:83;;;;6893:76:25;;:::i;:::-;632:901:83;;;;;;;:::i;:::-;4805:1:25;632:901:83;;-1:-1:-1;;;632:901:83;;;;6893:76:25;;:::i;:::-;632:901:83;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;2600:7:26;632:901:83;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;2600:7:26;632:901:83;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;2806:64:31;632:901:83;;;3902:16:31;632:901:83;-1:-1:-1;;;;;632:901:83;;8803:21:26;8799:91;;941:9:83;8928:5:26;;;:::i;:::-;5066:101:25;;632:901:83;5066:101:25;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;5142:14:25;632:901:83;;;4805:1:25;632:901:83;;5142:14:25;632:901:83;8799:91:26;8847:32;;;632:901:83;8847:32:26;632:901:83;;;;;8847:32:26;632:901:83;;;;-1:-1:-1;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;2600:7:26;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;2600:7:26;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;2600:7:26;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;2600:7:26;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;4979:67:25;-1:-1:-1;;632:901:83;;;-1:-1:-1;;;;;;;;;;;632:901:83;4979:67:25;;;4851:91;6498:23;;;632:901:83;4908:23:25;632:901:83;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;632:901:83;;;;;;-1:-1:-1;;632:901:83;;;;4616:5:26;632:901:83;;:::i;:::-;;;966:10:29;;4616:5:26;:::i;:::-;632:901:83;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;-1:-1:-1;632:901:83;;;;;;;-1:-1:-1;632:901:83;;-1:-1:-1;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:83;;-1:-1:-1;632:901:83;;;;;;;;-1:-1:-1;;632:901:83;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;-1:-1:-1;;;;;632:901:83;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;2806:64:31;632:901:83;5777:18:31;:43;;;632:901:83;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5965:13:31;632:901:83;;;;6000:4:31;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;632:901:83;;;;;;;;;;;;-1:-1:-1;;;632:901:83;;;;;;;5777:43:31;632:901:83;5799:16:31;632:901:83;5799:21:31;5777:43;;632:901:83;;;;;;-1:-1:-1;;632:901:83;;;;;;:::i;:::-;;;;;;;;;972:64:30;632:901:83;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;1479:5:27;632:901:83;;:::i;:::-;;;966:10:29;1448:5:27;966:10:29;;1448:5:27;;:::i;:::-;1479;:::i;632:901:83:-;;;;;;-1:-1:-1;;632:901:83;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:83;;-1:-1:-1;;;;;;632:901:83;;;;;;;-1:-1:-1;;;;;632:901:83;3975:40:24;632:901:83;;3975:40:24;632:901:83;;;;;;;-1:-1:-1;;632:901:83;;;;-1:-1:-1;;;;;632:901:83;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;6431:44:25;;;;632:901:83;6427:105:25;;1427:1:83;632:901;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;6656:20:25;632:901:83;;;1427:1;632:901;;6656:20:25;632:901:83;6431:44:25;632:901:83;1427:1;632:901;;;6450:25:25;;6431:44;;632:901:83;;;;;;-1:-1:-1;;632:901:83;;;;1005:5:27;632:901:83;;966:10:29;1005:5:27;:::i;632:901:83:-;;;;;;-1:-1:-1;;632:901:83;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;632:901:83;;8803:21:26;8799:91;;8928:5;632:901:83;;;8928:5:26;;:::i;632:901:83:-;;;;;;-1:-1:-1;;632:901:83;;;;;4094:23:31;;:::i;:::-;632:901:83;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;;;;3827:2:26;632:901:83;;;;;;;;;-1:-1:-1;;632:901:83;;;;6198:5:26;632:901:83;;:::i;:::-;;;:::i;:::-;;;966:10:29;6162:5:26;966:10:29;;6162:5:26;;:::i;:::-;6198;:::i;632:901:83:-;;;;;;-1:-1:-1;;632:901:83;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;10117:4:26;632:901:83;;:::i;:::-;;;966:10:29;;10117:4:26;:::i;632:901:83:-;;;;;;-1:-1:-1;;632:901:83;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;-1:-1:-1;632:901:83;;;;;;;-1:-1:-1;632:901:83;;-1:-1:-1;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:83;;;;;;;;-1:-1:-1;;632:901:83;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:901:83;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:901:83;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:901:83;;;;;4867:13:26;632:901:83;;;;;;:::o;3405:215:24:-;-1:-1:-1;;;;;632:901:83;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;632:901:83;;-1:-1:-1;;;;;;632:901:83;;;;;;;-1:-1:-1;;;;;632:901:83;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;632:901:83;;3509:1:24;3534:31;11745:477:26;;;4867:20;;;:::i;:::-;632:901:83;;;;;;;-1:-1:-1;632:901:83;;;;-1:-1:-1;632:901:83;;;;;11910:37:26;;11906:310;;11745:477;;;;;:::o;11906:310::-;11967:24;;;11963:130;;-1:-1:-1;;;;;632:901:83;;11141:19:26;11137:89;;-1:-1:-1;;;;;632:901:83;;11239:21:26;11235:90;;11334:20;;;:::i;:::-;:29;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;-1:-1:-1;632:901:83;;;;;11906:310:26;;;;;;11235:90;11283:31;;;-1:-1:-1;11283:31:26;-1:-1:-1;11283:31:26;632:901:83;;-1:-1:-1;11283:31:26;11137:89;11183:32;;;-1:-1:-1;11183:32:26;-1:-1:-1;11183:32:26;632:901:83;;-1:-1:-1;11183:32:26;11963:130;12018:60;;;;;;-1:-1:-1;12018:60:26;632:901:83;;;;;;12018:60:26;632:901:83;;;;;;-1:-1:-1;12018:60:26;6605:300;-1:-1:-1;;;;;632:901:83;;6688:18:26;;6684:86;;-1:-1:-1;;;;;632:901:83;;6783:16:26;;6779:86;;632:901:83;6704:1:26;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;;6704:1:26;632:901:83;;7609:19:26;;;7605:115;;632:901:83;8358:25:26;632:901:83;;;;6704:1:26;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;;;6704:1:26;632:901:83;;;6704:1:26;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;;6704:1:26;632:901:83;;;;;;;;;;;;8358:25:26;6605:300::o;7605:115::-;7655:50;;;;6704:1;7655:50;;632:901:83;;;;;;6704:1:26;7655:50;6684:86;6729:30;;;6704:1;6729:30;6704:1;6729:30;632:901:83;;6704:1:26;6729:30;2658:162:24;-1:-1:-1;;;;;;;;;;;632:901:83;-1:-1:-1;;;;;632:901:83;966:10:29;2717:23:24;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:24;966:10:29;2763:40:24;632:901:83;;-1:-1:-1;2763:40:24;9259:206:26;;;;-1:-1:-1;;;;;632:901:83;9329:21:26;;9325:89;;632:901:83;9348:1:26;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;;9348:1:26;632:901:83;;7609:19:26;;;7605:115;;632:901:83;;9348:1:26;632:901:83;;8358:25:26;632:901:83;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;8358:25:26;9259:206::o;7605:115::-;7655:50;;;;;9348:1;7655:50;;632:901:83;;;;;;9348:1:26;7655:50;10976:487;;-1:-1:-1;;;;;632:901:83;;;11141:19:26;;11137:89;;-1:-1:-1;;;;;632:901:83;;11239:21:26;;11235:90;;11415:31;11334:20;;632:901:83;11334:20:26;;:::i;:::-;632:901:83;-1:-1:-1;632:901:83;;;;;-1:-1:-1;632:901:83;;;;;;;11415:31:26;10976:487::o;7220:1170::-;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;-1:-1:-1;;;;;632:901:83;;;;8358:25:26;;632:901:83;;7918:16:26;632:901:83;;;-1:-1:-1;;;;;;;;;;;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;7914:429:26;632:901:83;;;;;8358:25:26;7220:1170::o;7914:429::-;632:901:83;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;7914:429:26;;632:901:83;;;;;941:9;;;;;632:901;941:9;4130:191:31;4243:17;;:::i;:::-;4262:20;;:::i;:::-;632:901:83;;4221:92:31;;;;632:901:83;2073:95:31;632:901:83;;;2073:95:31;;632:901:83;2073:95:31;;;632:901:83;4284:13:31;2073:95;;;632:901:83;4307:4:31;2073:95;;;632:901:83;2073:95:31;4221:92;;;;;;:::i;:::-;632:901:83;4211:103:31;;4130:191;:::o;7084:141:25:-;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:25;;-1:-1:-1;7191:17:25;5140:1530:55;;;6199:66;6186:79;;6182:164;;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;;;;;;;;;;6457:24:55;;;;;;;;;-1:-1:-1;6457:24:55;-1:-1:-1;;;;;632:901:83;;6495:20:55;6491:113;;6614:49;-1:-1:-1;6614:49:55;-1:-1:-1;5140:1530:55;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:55;6457:24;6531:62;-1:-1:-1;6531:62:55;:::o;6457:24::-;632:901:83;;;-1:-1:-1;632:901:83;;;;;6182:164:55;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;7196:532::-;632:901:83;;;;;;7282:29:55;;;7327:7;;:::o;7278:444::-;632:901:83;7378:38:55;;632:901:83;;7439:23:55;;;7291:20;7439:23;632:901:83;7291:20:55;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;632:901:83;;;7291:20:55;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;632:901:83;;;7291:20:55;7679:32;632:901:83;;;;7291:20:55;632:901:83;;;;;7291:20:55;632:901:83;7058:687:31;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7230:22:31;;;;7275;7268:29;:::o;7226:513::-;-1:-1:-1;;2806:64:31;632:901:83;7603:15:31;;;;7638:17;:::o;7599:130::-;7694:20;7701:13;7694:20;:::o;632:901:83:-;-1:-1:-1;;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;-1:-1:-1;632:901:83;;;;;;;;;;;-1:-1:-1;632:901:83;;7966:723:31;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8147:25:31;;;;8195;8188:32;:::o;8143:540::-;-1:-1:-1;;8507:16:31;632:901:83;8541:18:31;;;;8579:20;:::o;632:901:83:-;-1:-1:-1;;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;-1:-1:-1;632:901:83;;;;;;;;;;;-1:-1:-1;632:901:83;","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","eip712Domain()":"84b0196e","initialize(address)":"c4d66de8","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152\",\"dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol\":{\"keccak256\":\"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f\",\"dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883\",\"dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827\",\"dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e\",\"dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd\",\"dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x546b478734d72773f420a95e83f146771966ea29f4448e8ff9c7a739d13bba43\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e61793dfd06dfc3393a06527a7ca1c51aeb0a273bbfcc5d10f966cfd5f98e0b4\",\"dweb:/ipfs/Qmed9Ksq1uscNucYVuccr3NigGgYgJ5vFqEXvEGLrjTmoJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"eip712Domain()":{"details":"See {IERC-5267}."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"owner()":{"details":"Returns the address of the current owner."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72","urls":["bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152","dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol":{"keccak256":"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f","urls":["bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f","dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506","urls":["bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883","dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol":{"keccak256":"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4","urls":["bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827","dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf","urls":["bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e","dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1","urls":["bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd","dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x546b478734d72773f420a95e83f146771966ea29f4448e8ff9c7a739d13bba43","urls":["bzz-raw://e61793dfd06dfc3393a06527a7ca1c51aeb0a273bbfcc5d10f966cfd5f98e0b4","dweb:/ipfs/Qmed9Ksq1uscNucYVuccr3NigGgYgJ5vFqEXvEGLrjTmoJ"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":56368,"exportedSymbols":{"ERC20BurnableUpgradeable":[39957],"ERC20PermitUpgradeable":[40126],"ERC20Upgradeable":[39895],"Initializable":[39278],"OwnableUpgradeable":[39024],"WrappedVara":[56367]},"nodeType":"SourceUnit","src":"39:1495:83","nodes":[{"id":56271,"nodeType":"PragmaDirective","src":"39:24:83","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":56273,"nodeType":"ImportDirective","src":"65:96:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":56368,"sourceUnit":39279,"symbolAliases":[{"foreign":{"id":56272,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39278,"src":"73:13:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56275,"nodeType":"ImportDirective","src":"162:102:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":56368,"sourceUnit":39896,"symbolAliases":[{"foreign":{"id":56274,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39895,"src":"170:16:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56277,"nodeType":"ImportDirective","src":"265:133:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":56368,"sourceUnit":39958,"symbolAliases":[{"foreign":{"id":56276,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39957,"src":"273:24:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56279,"nodeType":"ImportDirective","src":"399:101:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":56368,"sourceUnit":39025,"symbolAliases":[{"foreign":{"id":56278,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39024,"src":"407:18:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56281,"nodeType":"ImportDirective","src":"501:129:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":56368,"sourceUnit":40127,"symbolAliases":[{"foreign":{"id":56280,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40126,"src":"509:22:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56367,"nodeType":"ContractDefinition","src":"632:901:83","nodes":[{"id":56294,"nodeType":"VariableDeclaration","src":"784:51:83","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"808:10:83","scope":56367,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56292,"name":"string","nodeType":"ElementaryTypeName","src":"784:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":56293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"821:14:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":56297,"nodeType":"VariableDeclaration","src":"841:46:83","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"865:12:83","scope":56367,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56295,"name":"string","nodeType":"ElementaryTypeName","src":"841:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":56296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"880:7:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":56300,"nodeType":"VariableDeclaration","src":"893:57:83","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"918:20:83","scope":56367,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56298,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":56299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:9:83","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":56308,"nodeType":"FunctionDefinition","src":"1010:53:83","nodes":[],"body":{"id":56307,"nodeType":"Block","src":"1024:39:83","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":56304,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39246,"src":"1034:20:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":56305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1034:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56306,"nodeType":"ExpressionStatement","src":"1034:22:83"}]},"documentation":{"id":56301,"nodeType":"StructuredDocumentation","src":"957:48:83","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":56302,"nodeType":"ParameterList","parameters":[],"src":"1021:2:83"},"returnParameters":{"id":56303,"nodeType":"ParameterList","parameters":[],"src":"1024:0:83"},"scope":56367,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56342,"nodeType":"FunctionDefinition","src":"1069:297:83","nodes":[],"body":{"id":56341,"nodeType":"Block","src":"1130:236:83","nodes":[],"statements":[{"expression":{"arguments":[{"id":56316,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56294,"src":"1153:10:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":56317,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56297,"src":"1165:12:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":56315,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39346,"src":"1140:12:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":56318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:38:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56319,"nodeType":"ExpressionStatement","src":"1140:38:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":56320,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"1188:20:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":56321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56322,"nodeType":"ExpressionStatement","src":"1188:22:83"},{"expression":{"arguments":[{"id":56324,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56310,"src":"1235:12:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56323,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38884,"src":"1220:14:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":56325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56326,"nodeType":"ExpressionStatement","src":"1220:28:83"},{"expression":{"arguments":[{"id":56328,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56294,"src":"1277:10:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":56327,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40013,"src":"1258:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":56329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:30:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56330,"nodeType":"ExpressionStatement","src":"1258:30:83"},{"expression":{"arguments":[{"id":56332,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56310,"src":"1305:12:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56333,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56300,"src":"1319:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":56334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:2:83","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":56335,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39415,"src":"1348:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint8_$","typeString":"function () view returns (uint8)"}},"id":56336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1348:10:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1342:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:39:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56331,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"1299:5:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":56339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1299:60:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56340,"nodeType":"ExpressionStatement","src":"1299:60:83"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":56313,"kind":"modifierInvocation","modifierName":{"id":56312,"name":"initializer","nameLocations":["1118:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":39132,"src":"1118:11:83"},"nodeType":"ModifierInvocation","src":"1118:11:83"}],"name":"initialize","nameLocation":"1078:10:83","parameters":{"id":56311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56310,"mutability":"mutable","name":"initialOwner","nameLocation":"1097:12:83","nodeType":"VariableDeclaration","scope":56342,"src":"1089:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56309,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1088:22:83"},"returnParameters":{"id":56314,"nodeType":"ParameterList","parameters":[],"src":"1130:0:83"},"scope":56367,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56351,"nodeType":"FunctionDefinition","src":"1372:60:83","nodes":[],"body":{"id":56350,"nodeType":"Block","src":"1430:2:83","nodes":[],"statements":[]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":56345,"kind":"modifierInvocation","modifierName":{"id":56344,"name":"onlyOwner","nameLocations":["1403:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"1403:9:83"},"nodeType":"ModifierInvocation","src":"1403:9:83"},{"arguments":[{"hexValue":"32","id":56347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1427:1:83","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":56348,"kind":"modifierInvocation","modifierName":{"id":56346,"name":"reinitializer","nameLocations":["1413:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":39179,"src":"1413:13:83"},"nodeType":"ModifierInvocation","src":"1413:16:83"}],"name":"reinitialize","nameLocation":"1381:12:83","parameters":{"id":56343,"nodeType":"ParameterList","parameters":[],"src":"1393:2:83"},"returnParameters":{"id":56349,"nodeType":"ParameterList","parameters":[],"src":"1430:0:83"},"scope":56367,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56366,"nodeType":"FunctionDefinition","src":"1438:93:83","nodes":[],"body":{"id":56365,"nodeType":"Block","src":"1497:34:83","nodes":[],"statements":[{"expression":{"arguments":[{"id":56361,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56353,"src":"1513:2:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56362,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56355,"src":"1517:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56360,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"1507:5:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":56363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1507:17:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56364,"nodeType":"ExpressionStatement","src":"1507:17:83"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":56358,"kind":"modifierInvocation","modifierName":{"id":56357,"name":"onlyOwner","nameLocations":["1487:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"1487:9:83"},"nodeType":"ModifierInvocation","src":"1487:9:83"}],"name":"mint","nameLocation":"1447:4:83","parameters":{"id":56356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56353,"mutability":"mutable","name":"to","nameLocation":"1460:2:83","nodeType":"VariableDeclaration","scope":56366,"src":"1452:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56352,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56355,"mutability":"mutable","name":"amount","nameLocation":"1472:6:83","nodeType":"VariableDeclaration","scope":56366,"src":"1464:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56354,"name":"uint256","nodeType":"ElementaryTypeName","src":"1464:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1451:28:83"},"returnParameters":{"id":56359,"nodeType":"ParameterList","parameters":[],"src":"1497:0:83"},"scope":56367,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":56282,"name":"Initializable","nameLocations":["660:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":39278,"src":"660:13:83"},"id":56283,"nodeType":"InheritanceSpecifier","src":"660:13:83"},{"baseName":{"id":56284,"name":"ERC20Upgradeable","nameLocations":["679:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":39895,"src":"679:16:83"},"id":56285,"nodeType":"InheritanceSpecifier","src":"679:16:83"},{"baseName":{"id":56286,"name":"ERC20BurnableUpgradeable","nameLocations":["701:24:83"],"nodeType":"IdentifierPath","referencedDeclaration":39957,"src":"701:24:83"},"id":56287,"nodeType":"InheritanceSpecifier","src":"701:24:83"},{"baseName":{"id":56288,"name":"OwnableUpgradeable","nameLocations":["731:18:83"],"nodeType":"IdentifierPath","referencedDeclaration":39024,"src":"731:18:83"},"id":56289,"nodeType":"InheritanceSpecifier","src":"731:18:83"},{"baseName":{"id":56290,"name":"ERC20PermitUpgradeable","nameLocations":["755:22:83"],"nodeType":"IdentifierPath","referencedDeclaration":40126,"src":"755:22:83"},"id":56291,"nodeType":"InheritanceSpecifier","src":"755:22:83"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56367,40126,40283,40627,40821,41968,39024,39957,39895,40863,41932,41906,40172,39278],"name":"WrappedVara","nameLocation":"641:11:83","scope":56368,"usedErrors":[38860,38865,39041,39044,39992,39999,40186,40833,40838,40843,40852,40857,40862,43050,43055,43060],"usedEvents":[38871,39049,40801,41840,41849]}],"license":"UNLICENSED"},"id":83} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523460d0577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b604051611cc090816100d58239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80604d565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120f578063095ea7b3146111e957806318160ddd146111c057806323b872dd14611188578063313ce5671461116d5780633644e5151461114b57806340c10f191461110e57806342966c68146110f15780636c2eb3501461105757806370a0823114611013578063715018a614610fac57806379cc679014610f7c5780637ecebe0014610f2657806384b0196e14610c525780638da5cb5b14610c1e57806395d89b4114610b24578063a9059cbb14610af3578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112f0565b6101246115b4565b6113ae565b005b5f80fd5b3461012b57604036600319011261012b576101486112f0565b610159610153611306565b91611376565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112f0565b610197611306565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611354565b5190206102636117c2565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611854565b909291926118e1565b6001600160a01b03168481036102ae5750610129935061169d565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112f0565b5f80516020611c6b833981519152549060ff8260401c16159167ffffffffffffffff811680159081610aeb575b6001149081610ae1575b159081610ad8575b50610ac95767ffffffffffffffff1981166001175f80516020611c6b8339815191525582610a9d575b5060405191610369604084611354565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611354565b6005835264575641524160d81b60208401526103ab611829565b6103b3611829565b835167ffffffffffffffff81116107aa576103db5f80516020611b8b8339815191525461131c565b601f8111610a2e575b50602094601f82116001146109b3579481929394955f926109a8575b50508160011b915f199060031b1c1916175f80516020611b8b833981519152555b825167ffffffffffffffff81116107aa576104495f80516020611beb8339815191525461131c565b601f8111610939575b506020601f82116001146108be57819293945f926108b3575b50508160011b915f199060031b1c1916175f80516020611beb833981519152555b610494611829565b61049c611829565b6104a4611829565b6104ad816113ae565b604051916104bc604084611354565b600c83526b57726170706564205661726160a01b60208401526104dd611829565b604051916104ec604084611354565b60018352603160f81b6020840152610502611829565b835167ffffffffffffffff81116107aa5761052a5f80516020611bcb8339815191525461131c565b601f8111610844575b50602094601f82116001146107c9579481929394955f926107be575b50508160011b915f199060031b1c1916175f80516020611bcb833981519152555b825167ffffffffffffffff81116107aa576105985f80516020611c4b8339815191525461131c565b601f811161073b575b506020601f82116001146106c057819293945f926106b5575b50508160011b915f199060031b1c1916175f80516020611c4b833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a25769d3c21bcecceda100000061064591611700565b61064b57005b68ff0000000000000000195f80516020611c6b83398151915254165f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c4b8339815191525f52805f20915f5b8181106107235750958360019596971061070b575b505050811b015f80516020611c4b833981519152556105db565b01515f1960f88460031b161c191690558480806106f1565b9192602060018192868b0151815501940192016106dc565b5f80516020611c4b8339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c810191602084106107a0575b601f0160051c01905b81811061079557506105a1565b5f8155600101610788565b909150819061077f565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bcb8339815191525f52805f20915f5b88811061082c57508360019596979810610814575b505050811b015f80516020611bcb83398151915255610570565b01515f1960f88460031b161c191690558580806107fa565b919260206001819286850151815501940192016107e5565b5f80516020611bcb8339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a9575b601f0160051c01905b81811061089e5750610533565b5f8155600101610891565b9091508190610888565b01519050848061046b565b601f198216905f80516020611beb8339815191525f52805f20915f5b81811061092157509583600195969710610909575b505050811b015f80516020611beb8339815191525561048c565b01515f1960f88460031b161c191690558480806108ef565b9192602060018192868b0151815501940192016108da565b5f80516020611beb8339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099e575b601f0160051c01905b8181106109935750610452565b5f8155600101610986565b909150819061097d565b015190508580610400565b601f198216955f80516020611b8b8339815191525f52805f20915f5b888110610a16575083600195969798106109fe575b505050811b015f80516020611b8b83398151915255610421565b01515f1960f88460031b161c191690558580806109e4565b919260206001819286850151815501940192016109cf565b5f80516020611b8b8339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a93575b601f0160051c01905b818110610a8857506103e4565b5f8155600101610a7b565b9091508190610a72565b68ffffffffffffffffff191668010000000000000001175f80516020611c6b8339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b19610b0f6112f0565b60243590336114e3565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611beb83398151915254610b508161131c565b8084529060018116908115610bfa5750600114610b90575b610b8c83610b7881850382611354565b6040519182916020835260208301906112cc565b0390f35b5f80516020611beb8339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610be057509091508101602001610b78610b68565b919260018160209254838588010152019101909291610bc8565b60ff191660208086019190915291151560051b84019091019150610b789050610b68565b3461012b575f36600319011261012b575f80516020611c0b833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efd575b15610ec0576040515f80516020611bcb83398151915254815f610cad8361131c565b8083529260018116908115610ea15750600114610e36575b610cd192500382611354565b6040515f80516020611c4b83398151915254815f610cee8361131c565b8083529260018116908115610e175750600114610dac575b610d1991925092610d5094930382611354565b6020610d5e60405192610d2c8385611354565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112cc565b9085820360408701526112cc565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9557505050500390f35b835185528695509381019392810192600101610d86565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610dfb575050906020610d1992820101610d06565b6020919350806001915483858801015201910190918392610de3565b60209250610d1994915060ff191682840152151560051b820101610d06565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e85575050906020610cd192820101610cc5565b6020919350806001915483858801015201910190918392610e6d565b60209250610cd194915060ff191682840152151560051b820101610cc5565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c8b565b3461012b57602036600319011261012b57610f3f6112f0565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f986112f0565b60243590610fa782338361141f565b6115e7565b3461012b575f36600319011261012b57610fc46115b4565b5f80516020611c0b83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110346112f0565b165f525f80516020611bab833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106f6115b4565b5f80516020611c6b8339815191525460ff8160401c1680156110dc575b610ac95760029068ffffffffffffffffff1916175f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108c565b3461012b57602036600319011261012b57610129600435336115e7565b3461012b57604036600319011261012b576111276112f0565b61112f6115b4565b6001600160a01b038116156106a2576101299060243590611700565b3461012b575f36600319011261012b5760206111656117c2565b604051908152f35b3461012b575f36600319011261012b57602060405160128152f35b3461012b57606036600319011261012b57610b196111a46112f0565b6111ac611306565b604435916111bb83338361141f565b6114e3565b3461012b575f36600319011261012b5760205f80516020611c2b83398151915254604051908152f35b3461012b57604036600319011261012b57610b196112056112f0565b602435903361169d565b3461012b575f36600319011261012b576040515f5f80516020611b8b8339815191525461123b8161131c565b8084529060018116908115610bfa575060011461126257610b8c83610b7881850382611354565b5f80516020611b8b8339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b257509091508101602001610b78610b68565b91926001816020925483858801015201910190929161129a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c9216801561134a575b602083101461133657565b634e487b7160e01b5f52602260045260245ffd5b91607f169161132b565b90601f8019910116810190811067ffffffffffffffff8211176107aa57604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140c575f80516020611c0b83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142a83611376565b60018060a01b0382165f5260205260405f2054925f19840361144d575b50505050565b8284106114c0576001600160a01b038116156114ad576001600160a01b0382161561149a5761147b90611376565b9060018060a01b03165f5260205260405f20910390555f808080611447565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b03169081156115a1576001600160a01b03169182156106a257815f525f80516020611bab83398151915260205260405f205481811061158857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611bab83398151915284520360405f2055845f525f80516020611bab833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c0b833981519152546001600160a01b031633036115d457565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b031680156115a157805f525f80516020611bab83398151915260205260405f2054838110611683576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611bab8339815191528452036040862055805f80516020611c2b83398151915254035f80516020611c2b83398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ad576001600160a01b031692831561149a577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ec602092611376565b855f5282528060405f2055604051908152a3565b5f80516020611c2b83398151915254908282018092116117ae575f80516020611c2b833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178c57805f80516020611c2b83398151915254035f80516020611c2b833981519152555b604051908152a3565b8484525f80516020611bab833981519152825260408420818154019055611783565b634e487b7160e01b5f52601160045260245ffd5b6117ca611955565b6117d2611a82565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182360c082611354565b51902090565b60ff5f80516020611c6b8339815191525460401c161561184557565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d6579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118cb575f516001600160a01b038116156118c157905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561194157806118f3575050565b6001810361190a5763f645eedf60e01b5f5260045ffd5b60028103611925575063fce698f760e01b5f5260045260245ffd5b60031461192f5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bcb83398151915254905f816119738461131c565b9182825260208201946001811690815f14611a6657506001146119fb575b61199d92500382611354565b519081156119a9572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d65790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4a57505090602061199d92820101611991565b6020919350806001915483858801015201910190918392611a32565b60ff191686525061199d92151560051b82016020019050611991565b6040515f80516020611c4b83398151915254905f81611aa08461131c565b9182825260208201946001811690815f14611b6e5750600114611b03575b611aca92500382611354565b51908115611ad6572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d65790565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b52575050906020611aca92820101611abe565b6020919350806001915483858801015201910190918392611b3a565b60ff1916865250611aca92151560051b82016020019050611abe56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207c01710bc450b8bcdeda1ea230921ccc8081b1aba057bcb3f67d3d95cb5fa00c64736f6c634300081a0033","sourceMap":"632:901:83:-:0;;;;;;;8837:64:25;632:901:83;;;;;;7896:76:25;;-1:-1:-1;;;;;;;;;;;632:901:83;;7985:34:25;7981:146;;-1:-1:-1;632:901:83;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;632:901:83;-1:-1:-1;;;;;632:901:83;;;8837:64:25;632:901:83;;;8087:29:25;;632:901:83;;8087:29:25;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:25;;-1:-1:-1;7938:23:25;632:901:83;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120f578063095ea7b3146111e957806318160ddd146111c057806323b872dd14611188578063313ce5671461116d5780633644e5151461114b57806340c10f191461110e57806342966c68146110f15780636c2eb3501461105757806370a0823114611013578063715018a614610fac57806379cc679014610f7c5780637ecebe0014610f2657806384b0196e14610c525780638da5cb5b14610c1e57806395d89b4114610b24578063a9059cbb14610af3578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112f0565b6101246115b4565b6113ae565b005b5f80fd5b3461012b57604036600319011261012b576101486112f0565b610159610153611306565b91611376565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112f0565b610197611306565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611354565b5190206102636117c2565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611854565b909291926118e1565b6001600160a01b03168481036102ae5750610129935061169d565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112f0565b5f80516020611c6b833981519152549060ff8260401c16159167ffffffffffffffff811680159081610aeb575b6001149081610ae1575b159081610ad8575b50610ac95767ffffffffffffffff1981166001175f80516020611c6b8339815191525582610a9d575b5060405191610369604084611354565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611354565b6005835264575641524160d81b60208401526103ab611829565b6103b3611829565b835167ffffffffffffffff81116107aa576103db5f80516020611b8b8339815191525461131c565b601f8111610a2e575b50602094601f82116001146109b3579481929394955f926109a8575b50508160011b915f199060031b1c1916175f80516020611b8b833981519152555b825167ffffffffffffffff81116107aa576104495f80516020611beb8339815191525461131c565b601f8111610939575b506020601f82116001146108be57819293945f926108b3575b50508160011b915f199060031b1c1916175f80516020611beb833981519152555b610494611829565b61049c611829565b6104a4611829565b6104ad816113ae565b604051916104bc604084611354565b600c83526b57726170706564205661726160a01b60208401526104dd611829565b604051916104ec604084611354565b60018352603160f81b6020840152610502611829565b835167ffffffffffffffff81116107aa5761052a5f80516020611bcb8339815191525461131c565b601f8111610844575b50602094601f82116001146107c9579481929394955f926107be575b50508160011b915f199060031b1c1916175f80516020611bcb833981519152555b825167ffffffffffffffff81116107aa576105985f80516020611c4b8339815191525461131c565b601f811161073b575b506020601f82116001146106c057819293945f926106b5575b50508160011b915f199060031b1c1916175f80516020611c4b833981519152555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a25769d3c21bcecceda100000061064591611700565b61064b57005b68ff0000000000000000195f80516020611c6b83398151915254165f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f80516020611c4b8339815191525f52805f20915f5b8181106107235750958360019596971061070b575b505050811b015f80516020611c4b833981519152556105db565b01515f1960f88460031b161c191690558480806106f1565b9192602060018192868b0151815501940192016106dc565b5f80516020611c4b8339815191525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c810191602084106107a0575b601f0160051c01905b81811061079557506105a1565b5f8155600101610788565b909150819061077f565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f80516020611bcb8339815191525f52805f20915f5b88811061082c57508360019596979810610814575b505050811b015f80516020611bcb83398151915255610570565b01515f1960f88460031b161c191690558580806107fa565b919260206001819286850151815501940192016107e5565b5f80516020611bcb8339815191525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a9575b601f0160051c01905b81811061089e5750610533565b5f8155600101610891565b9091508190610888565b01519050848061046b565b601f198216905f80516020611beb8339815191525f52805f20915f5b81811061092157509583600195969710610909575b505050811b015f80516020611beb8339815191525561048c565b01515f1960f88460031b161c191690558480806108ef565b9192602060018192868b0151815501940192016108da565b5f80516020611beb8339815191525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099e575b601f0160051c01905b8181106109935750610452565b5f8155600101610986565b909150819061097d565b015190508580610400565b601f198216955f80516020611b8b8339815191525f52805f20915f5b888110610a16575083600195969798106109fe575b505050811b015f80516020611b8b83398151915255610421565b01515f1960f88460031b161c191690558580806109e4565b919260206001819286850151815501940192016109cf565b5f80516020611b8b8339815191525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a93575b601f0160051c01905b818110610a8857506103e4565b5f8155600101610a7b565b9091508190610a72565b68ffffffffffffffffff191668010000000000000001175f80516020611c6b8339815191525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b19610b0f6112f0565b60243590336114e3565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f80516020611beb83398151915254610b508161131c565b8084529060018116908115610bfa5750600114610b90575b610b8c83610b7881850382611354565b6040519182916020835260208301906112cc565b0390f35b5f80516020611beb8339815191525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610be057509091508101602001610b78610b68565b919260018160209254838588010152019101909291610bc8565b60ff191660208086019190915291151560051b84019091019150610b789050610b68565b3461012b575f36600319011261012b575f80516020611c0b833981519152546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efd575b15610ec0576040515f80516020611bcb83398151915254815f610cad8361131c565b8083529260018116908115610ea15750600114610e36575b610cd192500382611354565b6040515f80516020611c4b83398151915254815f610cee8361131c565b8083529260018116908115610e175750600114610dac575b610d1991925092610d5094930382611354565b6020610d5e60405192610d2c8385611354565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112cc565b9085820360408701526112cc565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9557505050500390f35b835185528695509381019392810192600101610d86565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610dfb575050906020610d1992820101610d06565b6020919350806001915483858801015201910190918392610de3565b60209250610d1994915060ff191682840152151560051b820101610d06565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e85575050906020610cd192820101610cc5565b6020919350806001915483858801015201910190918392610e6d565b60209250610cd194915060ff191682840152151560051b820101610cc5565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c8b565b3461012b57602036600319011261012b57610f3f6112f0565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f986112f0565b60243590610fa782338361141f565b6115e7565b3461012b575f36600319011261012b57610fc46115b4565b5f80516020611c0b83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110346112f0565b165f525f80516020611bab833981519152602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106f6115b4565b5f80516020611c6b8339815191525460ff8160401c1680156110dc575b610ac95760029068ffffffffffffffffff1916175f80516020611c6b833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108c565b3461012b57602036600319011261012b57610129600435336115e7565b3461012b57604036600319011261012b576111276112f0565b61112f6115b4565b6001600160a01b038116156106a2576101299060243590611700565b3461012b575f36600319011261012b5760206111656117c2565b604051908152f35b3461012b575f36600319011261012b57602060405160128152f35b3461012b57606036600319011261012b57610b196111a46112f0565b6111ac611306565b604435916111bb83338361141f565b6114e3565b3461012b575f36600319011261012b5760205f80516020611c2b83398151915254604051908152f35b3461012b57604036600319011261012b57610b196112056112f0565b602435903361169d565b3461012b575f36600319011261012b576040515f5f80516020611b8b8339815191525461123b8161131c565b8084529060018116908115610bfa575060011461126257610b8c83610b7881850382611354565b5f80516020611b8b8339815191525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b257509091508101602001610b78610b68565b91926001816020925483858801015201910190929161129a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c9216801561134a575b602083101461133657565b634e487b7160e01b5f52602260045260245ffd5b91607f169161132b565b90601f8019910116810190811067ffffffffffffffff8211176107aa57604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140c575f80516020611c0b83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142a83611376565b60018060a01b0382165f5260205260405f2054925f19840361144d575b50505050565b8284106114c0576001600160a01b038116156114ad576001600160a01b0382161561149a5761147b90611376565b9060018060a01b03165f5260205260405f20910390555f808080611447565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b03169081156115a1576001600160a01b03169182156106a257815f525f80516020611bab83398151915260205260405f205481811061158857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f80516020611bab83398151915284520360405f2055845f525f80516020611bab833981519152825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f80516020611c0b833981519152546001600160a01b031633036115d457565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b031680156115a157805f525f80516020611bab83398151915260205260405f2054838110611683576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f80516020611bab8339815191528452036040862055805f80516020611c2b83398151915254035f80516020611c2b83398151915255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ad576001600160a01b031692831561149a577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ec602092611376565b855f5282528060405f2055604051908152a3565b5f80516020611c2b83398151915254908282018092116117ae575f80516020611c2b833981519152919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178c57805f80516020611c2b83398151915254035f80516020611c2b833981519152555b604051908152a3565b8484525f80516020611bab833981519152825260408420818154019055611783565b634e487b7160e01b5f52601160045260245ffd5b6117ca611955565b6117d2611a82565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182360c082611354565b51902090565b60ff5f80516020611c6b8339815191525460401c161561184557565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d6579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118cb575f516001600160a01b038116156118c157905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561194157806118f3575050565b6001810361190a5763f645eedf60e01b5f5260045ffd5b60028103611925575063fce698f760e01b5f5260045260245ffd5b60031461192f5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f80516020611bcb83398151915254905f816119738461131c565b9182825260208201946001811690815f14611a6657506001146119fb575b61199d92500382611354565b519081156119a9572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d65790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f80516020611bcb8339815191525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4a57505090602061199d92820101611991565b6020919350806001915483858801015201910190918392611a32565b60ff191686525061199d92151560051b82016020019050611991565b6040515f80516020611c4b83398151915254905f81611aa08461131c565b9182825260208201946001811690815f14611b6e5750600114611b03575b611aca92500382611354565b51908115611ad6572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d65790565b505f80516020611c4b8339815191525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b52575050906020611aca92820101611abe565b6020919350806001915483858801015201910190918392611b3a565b60ff1916865250611aca92151560051b82016020019050611abe56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207c01710bc450b8bcdeda1ea230921ccc8081b1aba057bcb3f67d3d95cb5fa00c64736f6c634300081a0033","sourceMap":"632:901:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;2357:1:24;632:901:83;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;:::-;632:901:83;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;;;:::i;:::-;4867:20:26;632:901:83;;:::i;:::-;4867:20:26;;:::i;:::-;:29;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;;-1:-1:-1;632:901:83;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:28;;:26;2297:97;;6967:25:55;7021:8;632:901:83;;;;;;;;;;;;972:64:30;632:901:83;;;;;;;;;;;;;;;;2435:78:28;632:901:83;2435:78:28;;632:901:83;1279:95:28;632:901:83;;1279:95:28;632:901:83;1279:95:28;;632:901:83;;;;;;;;;1279:95:28;;632:901:83;1279:95:28;632:901:83;1279:95:28;;632:901:83;;1279:95:28;;632:901:83;;1279:95:28;;632:901:83;;2435:78:28;;;632:901:83;2435:78:28;;:::i;:::-;632:901:83;2425:89:28;;4094:23:31;;:::i;:::-;3515:233:56;632:901:83;3515:233:56;;-1:-1:-1;;;3515:233:56;;;;;;;;;;632:901:83;;;3515:233:56;632:901:83;;3515:233:56;;6967:25:55;:::i;:::-;7021:8;;;;;:::i;:::-;-1:-1:-1;;;;;632:901:83;2638:15:28;;;2634:88;;10117:4:26;;;;;:::i;2634:88:28:-;2676:35;;;;;632:901:83;2676:35:28;632:901:83;;;;;;2676:35:28;2297:97;2350:33;;;;632:901:83;2350:33:28;632:901:83;;;;2350:33:28;632:901:83;;;;;;-1:-1:-1;;632:901:83;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;4301:16:25;632:901:83;;;;4726:16:25;;:34;;;;632:901:83;4805:1:25;4790:16;:50;;;;632:901:83;4855:13:25;:30;;;;632:901:83;4851:91:25;;;-1:-1:-1;;632:901:83;;4805:1:25;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;4979:67:25;;632:901:83;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:901:83;;;;;;;;;;;:::i;:::-;821:14;632:901;;-1:-1:-1;;;632:901:83;821:14;;;6893:76:25;;:::i;:::-;;;:::i;:::-;632:901:83;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;2600:7:26;632:901:83;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;2600:7:26;632:901:83;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;6893:76:25;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6961:1;;;:::i;:::-;632:901:83;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:901:83;;;;6893:76:25;;:::i;:::-;632:901:83;;;;;;;:::i;:::-;4805:1:25;632:901:83;;-1:-1:-1;;;632:901:83;;;;6893:76:25;;:::i;:::-;632:901:83;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;2600:7:26;632:901:83;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;2600:7:26;632:901:83;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;2806:64:31;632:901:83;;;3902:16:31;632:901:83;-1:-1:-1;;;;;632:901:83;;8803:21:26;8799:91;;941:9:83;8928:5:26;;;:::i;:::-;5066:101:25;;632:901:83;5066:101:25;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;5142:14:25;632:901:83;;;4805:1:25;632:901:83;;5142:14:25;632:901:83;8799:91:26;8847:32;;;632:901:83;8847:32:26;632:901:83;;;;;8847:32:26;632:901:83;;;;-1:-1:-1;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;2600:7:26;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;2600:7:26;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;2600:7:26;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;2600:7:26;632:901:83;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;821:14;632:901;;;;;;;;;;;;821:14;632:901;;;;;;;;;;;;;;;;4805:1:25;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;4979:67:25;-1:-1:-1;;632:901:83;;;-1:-1:-1;;;;;;;;;;;632:901:83;4979:67:25;;;4851:91;6498:23;;;632:901:83;4908:23:25;632:901:83;;4908:23:25;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:25;;4726:34;;;-1:-1:-1;4726:34:25;;632:901:83;;;;;;-1:-1:-1;;632:901:83;;;;4616:5:26;632:901:83;;:::i;:::-;;;966:10:29;;4616:5:26;:::i;:::-;632:901:83;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;-1:-1:-1;632:901:83;;;;;;;-1:-1:-1;632:901:83;;-1:-1:-1;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:83;;-1:-1:-1;632:901:83;;;;;;;;-1:-1:-1;;632:901:83;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;-1:-1:-1;;;;;632:901:83;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;2806:64:31;632:901:83;5777:18:31;:43;;;632:901:83;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5965:13:31;632:901:83;;;;6000:4:31;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;632:901:83;;;;;;;;;;;;-1:-1:-1;;;632:901:83;;;;;;;5777:43:31;632:901:83;5799:16:31;632:901:83;5799:21:31;5777:43;;632:901:83;;;;;;-1:-1:-1;;632:901:83;;;;;;:::i;:::-;;;;;;;;;972:64:30;632:901:83;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;1479:5:27;632:901:83;;:::i;:::-;;;966:10:29;1448:5:27;966:10:29;;1448:5:27;;:::i;:::-;1479;:::i;632:901:83:-;;;;;;-1:-1:-1;;632:901:83;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:83;;-1:-1:-1;;;;;;632:901:83;;;;;;;-1:-1:-1;;;;;632:901:83;3975:40:24;632:901:83;;3975:40:24;632:901:83;;;;;;;-1:-1:-1;;632:901:83;;;;-1:-1:-1;;;;;632:901:83;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;6431:44:25;;;;632:901:83;6427:105:25;;1427:1:83;632:901;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;6656:20:25;632:901:83;;;1427:1;632:901;;6656:20:25;632:901:83;6431:44:25;632:901:83;1427:1;632:901;;;6450:25:25;;6431:44;;632:901:83;;;;;;-1:-1:-1;;632:901:83;;;;1005:5:27;632:901:83;;966:10:29;1005:5:27;:::i;632:901:83:-;;;;;;-1:-1:-1;;632:901:83;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;632:901:83;;8803:21:26;8799:91;;8928:5;632:901:83;;;8928:5:26;;:::i;632:901:83:-;;;;;;-1:-1:-1;;632:901:83;;;;;4094:23:31;;:::i;:::-;632:901:83;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;;;;3827:2:26;632:901:83;;;;;;;;;-1:-1:-1;;632:901:83;;;;6198:5:26;632:901:83;;:::i;:::-;;;:::i;:::-;;;966:10:29;6162:5:26;966:10:29;;6162:5:26;;:::i;:::-;6198;:::i;632:901:83:-;;;;;;-1:-1:-1;;632:901:83;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;;10117:4:26;632:901:83;;:::i;:::-;;;966:10:29;;10117:4:26;:::i;632:901:83:-;;;;;;-1:-1:-1;;632:901:83;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;-1:-1:-1;632:901:83;;;;;;;-1:-1:-1;632:901:83;;-1:-1:-1;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:901:83;;;;;;;;-1:-1:-1;;632:901:83;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:901:83;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:901:83;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:901:83;;;;;4867:13:26;632:901:83;;;;;;:::o;3405:215:24:-;-1:-1:-1;;;;;632:901:83;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;632:901:83;;-1:-1:-1;;;;;;632:901:83;;;;;;;-1:-1:-1;;;;;632:901:83;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;632:901:83;;3509:1:24;3534:31;11745:477:26;;;4867:20;;;:::i;:::-;632:901:83;;;;;;;-1:-1:-1;632:901:83;;;;-1:-1:-1;632:901:83;;;;;11910:37:26;;11906:310;;11745:477;;;;;:::o;11906:310::-;11967:24;;;11963:130;;-1:-1:-1;;;;;632:901:83;;11141:19:26;11137:89;;-1:-1:-1;;;;;632:901:83;;11239:21:26;11235:90;;11334:20;;;:::i;:::-;:29;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;-1:-1:-1;632:901:83;;;;;11906:310:26;;;;;;11235:90;11283:31;;;-1:-1:-1;11283:31:26;-1:-1:-1;11283:31:26;632:901:83;;-1:-1:-1;11283:31:26;11137:89;11183:32;;;-1:-1:-1;11183:32:26;-1:-1:-1;11183:32:26;632:901:83;;-1:-1:-1;11183:32:26;11963:130;12018:60;;;;;;-1:-1:-1;12018:60:26;632:901:83;;;;;;12018:60:26;632:901:83;;;;;;-1:-1:-1;12018:60:26;6605:300;-1:-1:-1;;;;;632:901:83;;6688:18:26;;6684:86;;-1:-1:-1;;;;;632:901:83;;6783:16:26;;6779:86;;632:901:83;6704:1:26;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;;6704:1:26;632:901:83;;7609:19:26;;;7605:115;;632:901:83;8358:25:26;632:901:83;;;;6704:1:26;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;;;6704:1:26;632:901:83;;;6704:1:26;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;;6704:1:26;632:901:83;;;;;;;;;;;;8358:25:26;6605:300::o;7605:115::-;7655:50;;;;6704:1;7655:50;;632:901:83;;;;;;6704:1:26;7655:50;6684:86;6729:30;;;6704:1;6729:30;6704:1;6729:30;632:901:83;;6704:1:26;6729:30;2658:162:24;-1:-1:-1;;;;;;;;;;;632:901:83;-1:-1:-1;;;;;632:901:83;966:10:29;2717:23:24;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:24;966:10:29;2763:40:24;632:901:83;;-1:-1:-1;2763:40:24;9259:206:26;;;;-1:-1:-1;;;;;632:901:83;9329:21:26;;9325:89;;632:901:83;9348:1:26;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;;9348:1:26;632:901:83;;7609:19:26;;;7605:115;;632:901:83;;9348:1:26;632:901:83;;8358:25:26;632:901:83;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;8358:25:26;9259:206::o;7605:115::-;7655:50;;;;;9348:1;7655:50;;632:901:83;;;;;;9348:1:26;7655:50;10976:487;;-1:-1:-1;;;;;632:901:83;;;11141:19:26;;11137:89;;-1:-1:-1;;;;;632:901:83;;11239:21:26;;11235:90;;11415:31;11334:20;;632:901:83;11334:20:26;;:::i;:::-;632:901:83;-1:-1:-1;632:901:83;;;;;-1:-1:-1;632:901:83;;;;;;;11415:31:26;10976:487::o;7220:1170::-;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;-1:-1:-1;;;;;632:901:83;;;;8358:25:26;;632:901:83;;7918:16:26;632:901:83;;;-1:-1:-1;;;;;;;;;;;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;7914:429:26;632:901:83;;;;;8358:25:26;7220:1170::o;7914:429::-;632:901:83;;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;;;;;7914:429:26;;632:901:83;;;;;941:9;;;;;632:901;941:9;4130:191:31;4243:17;;:::i;:::-;4262:20;;:::i;:::-;632:901:83;;4221:92:31;;;;632:901:83;2073:95:31;632:901:83;;;2073:95:31;;632:901:83;2073:95:31;;;632:901:83;4284:13:31;2073:95;;;632:901:83;4307:4:31;2073:95;;;632:901:83;2073:95:31;4221:92;;;;;;:::i;:::-;632:901:83;4211:103:31;;4130:191;:::o;7084:141:25:-;632:901:83;-1:-1:-1;;;;;;;;;;;632:901:83;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:25;;-1:-1:-1;7191:17:25;5140:1530:55;;;6199:66;6186:79;;6182:164;;632:901:83;;;;;;-1:-1:-1;632:901:83;;;;;;;;;;;;;;;;;;;6457:24:55;;;;;;;;;-1:-1:-1;6457:24:55;-1:-1:-1;;;;;632:901:83;;6495:20:55;6491:113;;6614:49;-1:-1:-1;6614:49:55;-1:-1:-1;5140:1530:55;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:55;6457:24;6531:62;-1:-1:-1;6531:62:55;:::o;6457:24::-;632:901:83;;;-1:-1:-1;632:901:83;;;;;6182:164:55;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;7196:532::-;632:901:83;;;;;;7282:29:55;;;7327:7;;:::o;7278:444::-;632:901:83;7378:38:55;;632:901:83;;7439:23:55;;;7291:20;7439:23;632:901:83;7291:20:55;7439:23;7374:348;7492:35;7483:44;;7492:35;;7550:46;;;;7291:20;7550:46;632:901:83;;;7291:20:55;7550:46;7479:243;7626:30;7617:39;7613:109;;7479:243;7196:532::o;7613:109::-;7679:32;;;7291:20;7679:32;632:901:83;;;7291:20:55;7679:32;632:901:83;;;;7291:20:55;632:901:83;;;;;7291:20:55;632:901:83;7058:687:31;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7230:22:31;;;;7275;7268:29;:::o;7226:513::-;-1:-1:-1;;2806:64:31;632:901:83;7603:15:31;;;;7638:17;:::o;7599:130::-;7694:20;7701:13;7694:20;:::o;632:901:83:-;-1:-1:-1;;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;-1:-1:-1;632:901:83;;;;;;;;;;;-1:-1:-1;632:901:83;;7966:723:31;632:901:83;;-1:-1:-1;;;;;;;;;;;632:901:83;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8147:25:31;;;;8195;8188:32;:::o;8143:540::-;-1:-1:-1;;8507:16:31;632:901:83;8541:18:31;;;;8579:20;:::o;632:901:83:-;-1:-1:-1;;;;;;;;;;;;632:901:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:901:83;;;-1:-1:-1;632:901:83;;;;;;;;;;;-1:-1:-1;632:901:83;","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","eip712Domain()":"84b0196e","initialize(address)":"c4d66de8","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152\",\"dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol\":{\"keccak256\":\"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f\",\"dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883\",\"dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827\",\"dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e\",\"dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd\",\"dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6\",\"dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087\",\"dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8\",\"dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da\",\"dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615\",\"dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x546b478734d72773f420a95e83f146771966ea29f4448e8ff9c7a739d13bba43\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e61793dfd06dfc3393a06527a7ca1c51aeb0a273bbfcc5d10f966cfd5f98e0b4\",\"dweb:/ipfs/Qmed9Ksq1uscNucYVuccr3NigGgYgJ5vFqEXvEGLrjTmoJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"eip712Domain()":{"details":"See {IERC-5267}."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"owner()":{"details":"Returns the address of the current owner."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x5a5f22721ffb66d3e1ecc568c0d37c91f91223d8663c8a5e78396e780b849c72","urls":["bzz-raw://bdd108133c98ea251513424bf17905090c8a7e0755562a6d12a81b8bccbd6152","dweb:/ipfs/QmahpnB63Up9aVx4jDqxEgry5BRN5itHRvy9rwBvMT2yqL"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol":{"keccak256":"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f","urls":["bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f","dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x6ff1ff6f25ebee2f778775b26d81610a04e37993bc06a7f54e0c768330ef1506","urls":["bzz-raw://6f1fa246b88750fe26a30495db812eb2788dba8e5191a11f9dedb37bd6f4d883","dweb:/ipfs/QmZUcDXW1a9xEAfQwqUG6NXQ6AwCs5gfv89NkwzTCeDify"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol":{"keccak256":"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4","urls":["bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827","dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x06d93977f6018359ef432d3b649b7c92efb0326d3ddbbeaf08648105bdcacbbf","urls":["bzz-raw://c8574fdb7ffb0e8e9841ba6394432d3e31b496a0953baa6f64837062fb29b02e","dweb:/ipfs/QmdjZNdnBUVzzWXMYXsFmHdvh2KL5Lnc1uBfvbuqPNU9X3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1","urls":["bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd","dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x686a21b9be2594ccfda3a855270dd8ebc4288b8a9ed84ecd4ef1bca2ea3fc46b","urls":["bzz-raw://7c0bbc37f4d1aaae086d73f13f41b8043a9ad5b07f30a2fd7b8a74ead99b1ef6","dweb:/ipfs/QmZpFyfCCFpbrkNtfHTn18qV7VvptPdoLN82Qu5XtMCci6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xa548dd62e9e17616ae80a1e7ac7b1447ae377efc27fb9f7b4f4fbf5c0b0a1dfb","urls":["bzz-raw://d27e9ae3e67eb229444cd43d49db5be57c586155fd1d363b3b1f9bb1b7bb0087","dweb:/ipfs/QmT2GFnpXsTWBs8bkeVJtQ4VNX7f3igxwB77JBCr4mDXb3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x3f1998a2904792ff2a576827876638b4917573186537f878d30b23277a3b8d38","urls":["bzz-raw://a8dfb08ed617c9d874de901e44ac8af7af7b13e7c84000a1da3cdaf6004593e8","dweb:/ipfs/QmPX2hZAvCZJCQNSXcWqhxh3xp6UitwESrw3K2u3aYNqiu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x2be34e47fc07baed68c4878618a6e13c13243753c3f656ca1b6e05287c5df4ee","urls":["bzz-raw://e0bc7f3ae934c76aae959cf061b9764a6dbb2313c4281944dde278cd418599da","dweb:/ipfs/QmYtYLrwC1nPJd86kVrQFQAGeS3XGmhXjCj25LQGfGkugi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5c8d4114f077f6803bb89b8b07bfa26dfbf8f2001708e4e7fdf1e8d9ddd42f44","urls":["bzz-raw://b66c74efa1f994e3ea467b4165da1575857b29d81bec36e94678fe494ce5c615","dweb:/ipfs/QmeXQFdzSJFmN8UdhxMqQwwUh1U2WEha5NoVLbSg3pCJc5"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x546b478734d72773f420a95e83f146771966ea29f4448e8ff9c7a739d13bba43","urls":["bzz-raw://e61793dfd06dfc3393a06527a7ca1c51aeb0a273bbfcc5d10f966cfd5f98e0b4","dweb:/ipfs/Qmed9Ksq1uscNucYVuccr3NigGgYgJ5vFqEXvEGLrjTmoJ"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":56368,"exportedSymbols":{"ERC20BurnableUpgradeable":[39957],"ERC20PermitUpgradeable":[40126],"ERC20Upgradeable":[39895],"Initializable":[39278],"OwnableUpgradeable":[39024],"WrappedVara":[56367]},"nodeType":"SourceUnit","src":"39:1495:83","nodes":[{"id":56271,"nodeType":"PragmaDirective","src":"39:24:83","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":56273,"nodeType":"ImportDirective","src":"65:96:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":56368,"sourceUnit":39279,"symbolAliases":[{"foreign":{"id":56272,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39278,"src":"73:13:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56275,"nodeType":"ImportDirective","src":"162:102:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":56368,"sourceUnit":39896,"symbolAliases":[{"foreign":{"id":56274,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39895,"src":"170:16:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56277,"nodeType":"ImportDirective","src":"265:133:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":56368,"sourceUnit":39958,"symbolAliases":[{"foreign":{"id":56276,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39957,"src":"273:24:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56279,"nodeType":"ImportDirective","src":"399:101:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":56368,"sourceUnit":39025,"symbolAliases":[{"foreign":{"id":56278,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39024,"src":"407:18:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56281,"nodeType":"ImportDirective","src":"501:129:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":56368,"sourceUnit":40127,"symbolAliases":[{"foreign":{"id":56280,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40126,"src":"509:22:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56367,"nodeType":"ContractDefinition","src":"632:901:83","nodes":[{"id":56294,"nodeType":"VariableDeclaration","src":"784:51:83","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"808:10:83","scope":56367,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56292,"name":"string","nodeType":"ElementaryTypeName","src":"784:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":56293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"821:14:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":56297,"nodeType":"VariableDeclaration","src":"841:46:83","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"865:12:83","scope":56367,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56295,"name":"string","nodeType":"ElementaryTypeName","src":"841:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":56296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"880:7:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":56300,"nodeType":"VariableDeclaration","src":"893:57:83","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"918:20:83","scope":56367,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56298,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":56299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:9:83","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":56308,"nodeType":"FunctionDefinition","src":"1010:53:83","nodes":[],"body":{"id":56307,"nodeType":"Block","src":"1024:39:83","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":56304,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39246,"src":"1034:20:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":56305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1034:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56306,"nodeType":"ExpressionStatement","src":"1034:22:83"}]},"documentation":{"id":56301,"nodeType":"StructuredDocumentation","src":"957:48:83","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":56302,"nodeType":"ParameterList","parameters":[],"src":"1021:2:83"},"returnParameters":{"id":56303,"nodeType":"ParameterList","parameters":[],"src":"1024:0:83"},"scope":56367,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56342,"nodeType":"FunctionDefinition","src":"1069:297:83","nodes":[],"body":{"id":56341,"nodeType":"Block","src":"1130:236:83","nodes":[],"statements":[{"expression":{"arguments":[{"id":56316,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56294,"src":"1153:10:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":56317,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56297,"src":"1165:12:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":56315,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39346,"src":"1140:12:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":56318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:38:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56319,"nodeType":"ExpressionStatement","src":"1140:38:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":56320,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"1188:20:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":56321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56322,"nodeType":"ExpressionStatement","src":"1188:22:83"},{"expression":{"arguments":[{"id":56324,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56310,"src":"1235:12:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56323,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38884,"src":"1220:14:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":56325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56326,"nodeType":"ExpressionStatement","src":"1220:28:83"},{"expression":{"arguments":[{"id":56328,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56294,"src":"1277:10:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":56327,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40013,"src":"1258:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":56329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:30:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56330,"nodeType":"ExpressionStatement","src":"1258:30:83"},{"expression":{"arguments":[{"id":56332,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56310,"src":"1305:12:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56333,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56300,"src":"1319:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":56334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:2:83","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":56335,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39415,"src":"1348:8:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint8_$","typeString":"function () view returns (uint8)"}},"id":56336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1348:10:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1342:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:39:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56331,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"1299:5:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":56339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1299:60:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56340,"nodeType":"ExpressionStatement","src":"1299:60:83"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":56313,"kind":"modifierInvocation","modifierName":{"id":56312,"name":"initializer","nameLocations":["1118:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":39132,"src":"1118:11:83"},"nodeType":"ModifierInvocation","src":"1118:11:83"}],"name":"initialize","nameLocation":"1078:10:83","parameters":{"id":56311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56310,"mutability":"mutable","name":"initialOwner","nameLocation":"1097:12:83","nodeType":"VariableDeclaration","scope":56342,"src":"1089:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56309,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1088:22:83"},"returnParameters":{"id":56314,"nodeType":"ParameterList","parameters":[],"src":"1130:0:83"},"scope":56367,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56351,"nodeType":"FunctionDefinition","src":"1372:60:83","nodes":[],"body":{"id":56350,"nodeType":"Block","src":"1430:2:83","nodes":[],"statements":[]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":56345,"kind":"modifierInvocation","modifierName":{"id":56344,"name":"onlyOwner","nameLocations":["1403:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"1403:9:83"},"nodeType":"ModifierInvocation","src":"1403:9:83"},{"arguments":[{"hexValue":"32","id":56347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1427:1:83","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":56348,"kind":"modifierInvocation","modifierName":{"id":56346,"name":"reinitializer","nameLocations":["1413:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":39179,"src":"1413:13:83"},"nodeType":"ModifierInvocation","src":"1413:16:83"}],"name":"reinitialize","nameLocation":"1381:12:83","parameters":{"id":56343,"nodeType":"ParameterList","parameters":[],"src":"1393:2:83"},"returnParameters":{"id":56349,"nodeType":"ParameterList","parameters":[],"src":"1430:0:83"},"scope":56367,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56366,"nodeType":"FunctionDefinition","src":"1438:93:83","nodes":[],"body":{"id":56365,"nodeType":"Block","src":"1497:34:83","nodes":[],"statements":[{"expression":{"arguments":[{"id":56361,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56353,"src":"1513:2:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56362,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56355,"src":"1517:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56360,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"1507:5:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":56363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1507:17:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56364,"nodeType":"ExpressionStatement","src":"1507:17:83"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":56358,"kind":"modifierInvocation","modifierName":{"id":56357,"name":"onlyOwner","nameLocations":["1487:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":38919,"src":"1487:9:83"},"nodeType":"ModifierInvocation","src":"1487:9:83"}],"name":"mint","nameLocation":"1447:4:83","parameters":{"id":56356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56353,"mutability":"mutable","name":"to","nameLocation":"1460:2:83","nodeType":"VariableDeclaration","scope":56366,"src":"1452:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56352,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56355,"mutability":"mutable","name":"amount","nameLocation":"1472:6:83","nodeType":"VariableDeclaration","scope":56366,"src":"1464:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56354,"name":"uint256","nodeType":"ElementaryTypeName","src":"1464:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1451:28:83"},"returnParameters":{"id":56359,"nodeType":"ParameterList","parameters":[],"src":"1497:0:83"},"scope":56367,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":56282,"name":"Initializable","nameLocations":["660:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":39278,"src":"660:13:83"},"id":56283,"nodeType":"InheritanceSpecifier","src":"660:13:83"},{"baseName":{"id":56284,"name":"ERC20Upgradeable","nameLocations":["679:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":39895,"src":"679:16:83"},"id":56285,"nodeType":"InheritanceSpecifier","src":"679:16:83"},{"baseName":{"id":56286,"name":"ERC20BurnableUpgradeable","nameLocations":["701:24:83"],"nodeType":"IdentifierPath","referencedDeclaration":39957,"src":"701:24:83"},"id":56287,"nodeType":"InheritanceSpecifier","src":"701:24:83"},{"baseName":{"id":56288,"name":"OwnableUpgradeable","nameLocations":["731:18:83"],"nodeType":"IdentifierPath","referencedDeclaration":39024,"src":"731:18:83"},"id":56289,"nodeType":"InheritanceSpecifier","src":"731:18:83"},{"baseName":{"id":56290,"name":"ERC20PermitUpgradeable","nameLocations":["755:22:83"],"nodeType":"IdentifierPath","referencedDeclaration":40126,"src":"755:22:83"},"id":56291,"nodeType":"InheritanceSpecifier","src":"755:22:83"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56367,40126,40283,40627,40821,41968,39024,39957,39895,40863,41932,41906,40172,39278],"name":"WrappedVara","nameLocation":"641:11:83","scope":56368,"usedErrors":[38860,38865,39041,39044,39992,39999,40186,40833,40838,40843,40852,40857,40862,43050,43055,43060],"usedEvents":[38871,39049,40801,41840,41849]}],"license":"UNLICENSED"},"id":83} \ No newline at end of file diff --git a/ethexe/ethereum/src/lib.rs b/ethexe/ethereum/src/lib.rs index 7705621e4c4..f87b6824128 100644 --- a/ethexe/ethereum/src/lib.rs +++ b/ethexe/ethereum/src/lib.rs @@ -26,11 +26,12 @@ use abi::{ }; use alloy::{ consensus::{self as alloy_consensus, SignableTransaction}, - network::{Ethereum as AlloyEthereum, EthereumWallet, TxSigner}, + network::{Ethereum as AlloyEthereum, EthereumWallet, Network, TxSigner}, primitives::{Address, Bytes, ChainId, Signature, B256, U256}, providers::{ fillers::{FillProvider, JoinFill, RecommendedFiller, WalletFiller}, - Provider, ProviderBuilder, RootProvider, + PendingTransactionBuilder, PendingTransactionError, Provider, ProviderBuilder, + RootProvider, }, rpc::types::eth::Log, signers::{ @@ -38,14 +39,14 @@ use alloy::{ Result as SignerResult, Signer, SignerSync, }, sol_types::{SolCall, SolEvent}, - transports::BoxTransport, + transports::{BoxTransport, RpcError, Transport}, }; use anyhow::{anyhow, Result}; use async_trait::async_trait; use ethexe_signer::{Address as LocalAddress, PublicKey, Signer as LocalSigner}; use mirror::Mirror; use router::{Router, RouterQuery}; -use std::sync::Arc; +use std::{sync::Arc, time::Duration}; mod abi; mod eip1167; @@ -157,7 +158,7 @@ impl Ethereum { let mirror_proxy = IMirrorProxy::deploy(provider.clone(), router_address).await?; let builder = wrapped_vara.approve(router_address, U256::MAX); - builder.send().await?.get_receipt().await?; + builder.send().await?.try_get_receipt().await?; assert_eq!(router.mirror().call().await?._0, *mirror.address()); assert_eq!( @@ -270,3 +271,40 @@ impl SignerSync for Sender { self.chain_id } } + +// TODO: Maybe better to append solution like this to alloy. +trait TryGetReceipt { + /// Works like `self.get_receipt().await`, but retries a few times if rpc returns a null response. + async fn try_get_receipt(self) -> Result; +} + +impl TryGetReceipt for PendingTransactionBuilder<'_, T, N> { + async fn try_get_receipt(self) -> Result { + let tx_hash = *self.tx_hash(); + let provider = self.provider().clone(); + + let mut err = match self.get_receipt().await { + Ok(r) => return Ok(r), + Err(err) => err, + }; + + for _ in 0..3 { + match err { + PendingTransactionError::TransportError(RpcError::NullResp) => {} + _ => break, + } + + tokio::time::sleep(Duration::from_millis(100)).await; + + match provider.get_transaction_receipt(tx_hash).await { + Ok(Some(r)) => return Ok(r), + Ok(None) => {} + Err(e) => err = e.into(), + } + } + + Err(anyhow!( + "Failed to get transaction receipt for {tx_hash}: {err}" + )) + } +} diff --git a/ethexe/ethereum/src/mirror/mod.rs b/ethexe/ethereum/src/mirror/mod.rs index a94fae47d6e..9c8d7dec4d3 100644 --- a/ethexe/ethereum/src/mirror/mod.rs +++ b/ethexe/ethereum/src/mirror/mod.rs @@ -16,7 +16,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use crate::{abi::IMirror, AlloyProvider, AlloyTransport}; +use crate::{abi::IMirror, AlloyProvider, AlloyTransport, TryGetReceipt}; use alloy::{ primitives::Address, providers::{Provider, ProviderBuilder, RootProvider}, @@ -59,9 +59,7 @@ impl Mirror { value: u128, ) -> Result<(H256, MessageId)> { let builder = self.0.sendMessage(payload.as_ref().to_vec().into(), value); - let tx = builder.send().await?; - - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; let tx_hash = (*receipt.transaction_hash).into(); let mut message_id = None; @@ -95,17 +93,14 @@ impl Mirror { payload.as_ref().to_vec().into(), value, ); - let tx = builder.send().await?; + let receipt = builder.send().await?.try_get_receipt().await?; - let receipt = tx.get_receipt().await?; Ok((*receipt.transaction_hash).into()) } pub async fn claim_value(&self, claimed_id: MessageId) -> Result { let builder = self.0.claimValue(claimed_id.into_bytes().into()); - let tx = builder.send().await?; - - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; Ok((*receipt.transaction_hash).into()) } diff --git a/ethexe/ethereum/src/router/mod.rs b/ethexe/ethereum/src/router/mod.rs index 6c89fb4ea50..9b603010be5 100644 --- a/ethexe/ethereum/src/router/mod.rs +++ b/ethexe/ethereum/src/router/mod.rs @@ -16,7 +16,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use crate::{abi::IRouter, wvara::WVara, AlloyProvider, AlloyTransport}; +use crate::{abi::IRouter, wvara::WVara, AlloyProvider, AlloyTransport, TryGetReceipt}; use alloy::{ consensus::{SidecarBuilder, SimpleCoder}, primitives::{Address, Bytes, B256}, @@ -81,9 +81,7 @@ impl Router { .collect(); let builder = self.instance.updateValidators(validators); - let tx = builder.send().await?; - - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; Ok((*receipt.transaction_hash).into()) } @@ -97,9 +95,7 @@ impl Router { code_id.into_bytes().into(), blob_tx_hash.to_fixed_bytes().into(), ); - let tx = builder.send().await?; - - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; Ok((*receipt.transaction_hash).into()) } @@ -114,9 +110,7 @@ impl Router { .instance .requestCodeValidation(code_id.into_bytes().into(), B256::ZERO) .sidecar(SidecarBuilder::::from_slice(code).build()?); - let tx = builder.send().await?; - - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; Ok(((*receipt.transaction_hash).into(), code_id)) } @@ -161,9 +155,7 @@ impl Router { payload.as_ref().to_vec().into(), value, ); - let tx = builder.send().await?; - - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; let tx_hash = (*receipt.transaction_hash).into(); let mut actor_id = None; @@ -195,8 +187,7 @@ impl Router { .map(|signature| Bytes::copy_from_slice(signature.as_ref())) .collect(), ); - let tx = builder.send().await?; - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; Ok(H256(receipt.transaction_hash.0)) } @@ -215,8 +206,7 @@ impl Router { .collect(), ) .gas(10_000_000); - let tx = builder.send().await?; - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; Ok(H256(receipt.transaction_hash.0)) } } diff --git a/ethexe/ethereum/src/wvara/mod.rs b/ethexe/ethereum/src/wvara/mod.rs index db8902639f1..2e333101e38 100644 --- a/ethexe/ethereum/src/wvara/mod.rs +++ b/ethexe/ethereum/src/wvara/mod.rs @@ -18,7 +18,7 @@ use crate::{ abi::{self, IWrappedVara}, - AlloyProvider, AlloyTransport, + AlloyProvider, AlloyTransport, TryGetReceipt, }; use alloy::{ primitives::{Address, U256 as AlloyU256}, @@ -58,9 +58,7 @@ impl WVara { pub async fn transfer(&self, to: Address, value: u128) -> Result { let builder = self.0.transfer(to, AlloyU256::from(value)); - let tx = builder.send().await?; - - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; let tx_hash = (*receipt.transaction_hash).into(); @@ -69,9 +67,7 @@ impl WVara { pub async fn transfer_from(&self, from: Address, to: Address, value: u128) -> Result { let builder = self.0.transferFrom(from, to, AlloyU256::from(value)); - let tx = builder.send().await?; - - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; let tx_hash = (*receipt.transaction_hash).into(); @@ -88,9 +84,7 @@ impl WVara { async fn _approve(&self, address: Address, value: AlloyU256) -> Result { let builder = self.0.approve(address, value); - let tx = builder.send().await?; - - let receipt = tx.get_receipt().await?; + let receipt = builder.send().await?.try_get_receipt().await?; let tx_hash = (*receipt.transaction_hash).into();