From fc63d8832a9c6bd2bc2efe6582a39d5873a5fd95 Mon Sep 17 00:00:00 2001 From: StackOverflowExcept1on <109800286+StackOverflowExcept1on@users.noreply.github.com> Date: Fri, 20 Dec 2024 20:26:24 +0300 Subject: [PATCH] feat(ethexe/contracts): improve interaction with MirrorProxy via etherscan (#4411) --- ethexe/cli/src/args.rs | 2 +- ethexe/contracts/src/MirrorProxy.sol | 34 +++++++++++++++++++ ethexe/ethereum/Mirror.json | 2 +- ethexe/ethereum/MirrorProxy.json | 2 +- ethexe/ethereum/Router.json | 2 +- .../ethereum/TransparentUpgradeableProxy.json | 2 +- ethexe/ethereum/WrappedVara.json | 2 +- 7 files changed, 40 insertions(+), 6 deletions(-) diff --git a/ethexe/cli/src/args.rs b/ethexe/cli/src/args.rs index 05ea0dbd1a0..b7c85a92ed2 100644 --- a/ethexe/cli/src/args.rs +++ b/ethexe/cli/src/args.rs @@ -305,7 +305,7 @@ impl ExtraCommands { println!("Completed in transaction {tx:?}"); println!( - "Program address on Ethereum {}", + "Program address on Ethereum {:?}", actor_id.to_address_lossy() ); diff --git a/ethexe/contracts/src/MirrorProxy.sol b/ethexe/contracts/src/MirrorProxy.sol index aeecba61f2e..f5740dde250 100644 --- a/ethexe/contracts/src/MirrorProxy.sol +++ b/ethexe/contracts/src/MirrorProxy.sol @@ -14,10 +14,44 @@ import {IRouter} from "./IRouter.sol"; contract MirrorProxy is IMirrorProxy, Proxy { address public immutable router; + address public decoder; + address public inheritor; + address public initializer; + bytes32 public stateHash; + uint256 public nonce; + constructor(address _router) { router = _router; } + /* Primary Gear logic */ + + function sendMessage(bytes calldata payload, uint128 value) external /*returns (bytes32)*/ { + _delegate(); + } + + function sendReply(bytes32 repliedTo, bytes calldata payload, uint128 value) external { + _delegate(); + } + + function claimValue(bytes32 claimedId) external { + _delegate(); + } + + function executableBalanceTopUp(uint128 value) external { + _delegate(); + } + + function transferLockedValueToInheritor() external { + _delegate(); + } + + /* MirrorProxy implementation */ + + function _delegate() internal { + _delegate(_implementation()); + } + function _implementation() internal view virtual override returns (address) { return IRouter(router).mirrorImpl(); } diff --git a/ethexe/ethereum/Mirror.json b/ethexe/ethereum/Mirror.json index c9896ce70d6..e6f20377362 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":"decoder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initializer","type":"address","internalType":"address"},{"name":"_decoder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"performStateTransition","inputs":[{"name":"_transition","type":"tuple","internalType":"struct Gear.StateTransition","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]}]}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"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":"nonpayable"},{"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":"nonpayable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferLockedValueToInheritor","inputs":[],"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}],"bytecode":{"object":"0x608080604052346015576116bb908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806329336f3914610d3957806336a52a1814610d11578063485cc95514610c7c578063701da98e14610c5f578063704ed54214610b4b57806391d5a64c14610aee5780639cb3300514610ac75780639ce110d714610a9f5780639ed323501461043e578063affed0e014610421578063d5624222146101e0578063e43f3433146100d85763f887ea40146100a8575f80fd5b346100d4575f3660031901126100d45760206100c26111ad565b6040516001600160a01b039091168152f35b5f80fd5b346100d4575f3660031901126100d4576001546001600160a01b0316801561019b5760249060206001600160a01b036101176101126111ad565b611200565b16604051938480926370a0823160e01b82523060048301525afa918215610190575f92610155575b506001600160801b03610153921690611293565b005b91506020823d602011610188575b8161017060209383610f96565b810103126100d4579051906001600160801b0361013f565b3d9150610163565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601960248201527f70726f6772616d206973206e6f74207465726d696e61746564000000000000006044820152606490fd5b346100d45760403660031901126100d4576004356001600160401b0381116100d457610210903690600401610e9d565b906024356001600160801b0381168082036100d45760015461023b906001600160a01b031615610ef2565b60045415801590610402575b15610384576102ee575b6004545f1981146102da576020938160017f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c69301600455604051868101913060601b83526034820152603481526102a9605482610f96565b519020936102cf6001600160a01b036102c061125d565b16946040519384938885611095565b0390a2604051908152f35b634e487b7160e01b5f52601160045260245ffd5b6103356020826102fc6111ad565b6001600160a01b0361030d82611200565b16905f61031861125d565b6040516323b872dd60e01b81529687958694859360048501610fcf565b03925af1801561019057610350915f91610355575b50610ff9565b610251565b610377915060203d60201161037d575b61036f8183610f96565b810190610fb7565b8561034a565b503d610365565b60405162461bcd60e51b815260206004820152604a60248201527f696e697469616c697a6572206861736e2774206372656174656420696e69742060448201527f6d657373616765207965743b20616e6420736f75726365206973206e6f7420696064820152693734ba34b0b634bd32b960b11b608482015260a490fd5b5061040b61125d565b6002546001600160a01b03918216911614610247565b346100d4575f3660031901126100d4576020600454604051908152f35b346100d45760203660031901126100d4576004356001600160401b0381116100d45736819003906004810160c06003198401126100d4576104906001600160a01b036104886111ad565b1633146110c3565b61049981611166565b306001600160a01b0390911603610a5a5760a4820135926022190192838112156100d4578201906004820135906001600160401b0382116100d4578160051b360360248401136100d4575f94919360e2193685900301929060605b8688101561070a576024600589901b87010135858112156100d4576004908701019760208901601f198a3603019260c084126100d45760405160a081018181106001600160401b038211176106f6576040528235815261055660408d01610ede565b906020810191825260608d01356001600160401b0381116100d4576020908e010136601f820112156100d45780359061058e82611278565b9161059c6040519384610f96565b80835236602082840101116100d4578f6080905f6020846105d0958260409801838a01378701015283860194855201610eca565b6060840190815297607f1901126100d45760405193604085018581106001600160401b038211176106f65760405260a08f01358086529e60c00135936001600160e01b0319851685036100d4576001986106ad6034605460209996876106d39a8c9a8b809b019182528260808201525197519251965191519063ffffffff60e01b905116908a6040519889958287019b8c526001600160601b03199060601b1660408701528051918291018787015e8401926001600160801b03199060801b16858401526064830152608482015203016014810184520182610f96565b5190206040519582879351918291018585015e8201908382015203018084520182610f96565b996106e8576106e19061155f565b01966104f4565b6106f1906113dc565b6106e1565b634e487b7160e01b5f52604160045260245ffd5b60208151910120916084820135908112156100d4578101906004820135926001600160401b0384116100d45760608402360360248401136100d4576060945f5b85811015610899576004606082028601016060601f1982360301126100d45760405190606082018281106001600160401b038211176106f657604052602081013591828152604082019961079d8b610ede565b92836020840152606001926107b184610eca565b6040819401526040519260208401918683526001600160601b03199060601b1660408501526001600160801b03199060801b166054840152604483526107f8606484610f96565b60405192828493516020819201602086015e83019060208201905f8252519283915e016020015f815203601f19810182526108339082610f96565b9861083d90611166565b6108468261117a565b61084f91611293565b6108589061117a565b6040519182526001600160801b0316602082015260407fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578391a160010161074a565b50855160208701206044840192906001600160a01b036108b885611166565b16610988575b6020946108ee60646108e76108e160035497602486013580990361095657611166565b97611166565b920161117a565b9060405194878601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b166068840152607883015260988201526098815261094b60b882610f96565b519020604051908152f35b886003557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c0809308b6040518b8152a1611166565b61099184611166565b60015495906109a96001600160a01b03881615610ef2565b6001600160a01b03166001600160a01b0319969096168617600155851561019b57602460206001600160a01b036109e16101126111ad565b16604051928380926370a0823160e01b82523060048301525afa908115610190575f91610a27575b506020966001600160801b03610a20921690611293565b94506108be565b90506020813d602011610a52575b81610a4260209383610f96565b810103126100d457516020610a09565b3d9150610a35565b60405162461bcd60e51b815260206004820152601d60248201527f6163746f724964206d757374206265207468697320636f6e74726163740000006044820152606490fd5b346100d4575f3660031901126100d4576002546040516001600160a01b039091168152602090f35b346100d4575f3660031901126100d4575f546040516001600160a01b039091168152602090f35b346100d45760203660031901126100d457610b0c6004541515610f36565b6001600160a01b03610b1c61125d565b167f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860206040516004358152a2005b346100d45760203660031901126100d4576004356001600160801b038116908181036100d457600154610b87906001600160a01b031615610ef2565b81610bba575b7f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667602083604051908152a1005b906020610c0292610bc96111ad565b6001600160a01b03610bda82611200565b16905f610be561125d565b6040516323b872dd60e01b81529788958694859360048501610fcf565b03925af190811561019057610c416020927f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667945f91610c485750610ff9565b9150610b8d565b6103779150843d861161037d5761036f8183610f96565b346100d4575f3660031901126100d4576020600354604051908152f35b346100d45760403660031901126100d4576004356001600160a01b038116908190036100d4576024356001600160a01b03811691908290036100d457610ccb6001600160a01b036104886111ad565b60025490610ce26001600160a01b0383161561110f565b5f5491610cf86001600160a01b0384161561110f565b6001600160a01b03199081169190911760025516175f55005b346100d4575f3660031901126100d4576001546040516001600160a01b039091168152602090f35b346100d45760603660031901126100d4576024356001600160401b0381116100d457610d69903690600401610e9d565b90604435916001600160801b0383168084036100d457600154610d95906001600160a01b031615610ef2565b610da26004541515610f36565b610df2575b7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f91610ded6001600160a01b03610ddc61125d565b169460405193849360043585611095565b0390a2005b610e3a91602084610e016111ad565b6001600160a01b03610e1282611200565b16905f610e1d61125d565b6040516323b872dd60e01b81529889958694859360048501610fcf565b03925af1928315610190577fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f93610e77915f91610e7e5750610ff9565b9150610da7565b610e97915060203d60201161037d5761036f8183610f96565b8661034a565b9181601f840112156100d4578235916001600160401b0383116100d457602083818601950101116100d457565b35906001600160801b03821682036100d457565b35906001600160a01b03821682036100d457565b15610ef957565b60405162461bcd60e51b81526020600482015260156024820152741c1c9bd9dc985b481a5cc81d195c9b5a5b985d1959605a1b6044820152606490fd5b15610f3d57565b60405162461bcd60e51b815260206004820152602b60248201527f696e697469616c697a6572206861736e2774206372656174656420696e69742060448201526a1b595cdcd859d9481e595d60aa1b6064820152608490fd5b90601f801991011681019081106001600160401b038211176106f657604052565b908160209103126100d4575180151581036100d45790565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b1561100057565b60405162461bcd60e51b815260206004820152604160248201527f6661696c656420746f207472616e73666572206e6f6e2d7a65726f20616d6f7560448201527f6e74206f662057566172612066726f6d20736f7572636520746f20726f7574656064820152603960f91b608482015260a490fd5b908060209392818452848401375f828201840152601f01601f1916010190565b926040926110bc916001600160801b03939796978652606060208701526060860191611075565b9416910152565b156110ca57565b60405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f742074686520726f7574657200000000000000006044820152606490fd5b1561111657565b60405162461bcd60e51b815260206004820152602260248201527f696e697469616c697a657220636f756c64206f6e6c7920626520736574206f6e604482015261636560f01b6064820152608490fd5b356001600160a01b03811681036100d45790565b356001600160801b03811681036100d45790565b908160209103126100d457516001600160a01b03811681036100d45790565b6040516303e21fa960e61b8152602081600481305afa908115610190575f916111d4575090565b6111f6915060203d6020116111f9575b6111ee8183610f96565b81019061118e565b90565b503d6111e4565b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115610190575f9161123e575b506001600160a01b031690565b611257915060203d6020116111f9576111ee8183610f96565b5f611231565b5f54336001600160a01b0390911603611274573290565b3390565b6001600160401b0381116106f657601f01601f191660200190565b906001600160801b0316806112a6575050565b60209060446001600160a01b036112be6101126111ad565b60405163a9059cbb60e01b81526001600160a01b0390961660048701526024860193909352849283915f91165af1908115610190575f91611347575b501561130257565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207472616e7366657220575661726100000000000000006044820152606490fd5b611360915060203d60201161037d5761036f8183610f96565b5f6112fa565b903590601e19813603018212156100d457018035906001600160401b0382116100d4576020019181360383136100d457565b356001600160e01b0319811681036100d45790565b3d156113d7573d906113be82611278565b916113cc6040519384610f96565b82523d5f602084013e565b606090565b602081016113e981611166565b9061140160608401926113fb8461117a565b90611293565b5f546001600160a01b0316908161149a575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c69061144f6114476040850185611366565b91909261117a565b60806001600160e01b031961146660a08801611398565b16956001600160801b03611487604051968796606088526060880191611075565b93166020850152013560408301520390a2565b5f916114a68392611166565b826115406114b76040890189611366565b6114c38993929361117a565b6114cf60a08c01611398565b604051639649744960e01b602082019081526001600160a01b03909816602482015260a060448201529485936001600160801b03916115129160c4870191611075565b9216606484015260808c013560848401526001600160e01b03191660a483015203601f198101835282610f96565b51926207a120f161154f6113ad565b5061155b575f80611413565b5050565b5f546001600160a01b0316806115d9575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736115d46115a160208401611166565b6115ae6040850185611366565b6115bd6060879593950161117a565b9060405194859460018060a01b0316973585611095565b0390a2565b5f809183826115ea60208301611166565b6116686115fa6040850185611366565b92906001600160801b036116536116136060890161117a565b6040516374fad4ef60e01b60208201908152993560248201526001600160a01b03909516604486015260806064860152939586949360a486019190611075565b9116608483015203601f198101835282610f96565b51926207a120f16116776113ad565b50611682575f611570565b5056fea2646970667358221220bce46f8db7a45a91e6f4aaf7f3264e88d392541dfb781568d6e0b81aab4b4c1364736f6c634300081c0033","sourceMap":"403:9266:118:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806329336f3914610d3957806336a52a1814610d11578063485cc95514610c7c578063701da98e14610c5f578063704ed54214610b4b57806391d5a64c14610aee5780639cb3300514610ac75780639ce110d714610a9f5780639ed323501461043e578063affed0e014610421578063d5624222146101e0578063e43f3433146100d85763f887ea40146100a8575f80fd5b346100d4575f3660031901126100d45760206100c26111ad565b6040516001600160a01b039091168152f35b5f80fd5b346100d4575f3660031901126100d4576001546001600160a01b0316801561019b5760249060206001600160a01b036101176101126111ad565b611200565b16604051938480926370a0823160e01b82523060048301525afa918215610190575f92610155575b506001600160801b03610153921690611293565b005b91506020823d602011610188575b8161017060209383610f96565b810103126100d4579051906001600160801b0361013f565b3d9150610163565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601960248201527f70726f6772616d206973206e6f74207465726d696e61746564000000000000006044820152606490fd5b346100d45760403660031901126100d4576004356001600160401b0381116100d457610210903690600401610e9d565b906024356001600160801b0381168082036100d45760015461023b906001600160a01b031615610ef2565b60045415801590610402575b15610384576102ee575b6004545f1981146102da576020938160017f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c69301600455604051868101913060601b83526034820152603481526102a9605482610f96565b519020936102cf6001600160a01b036102c061125d565b16946040519384938885611095565b0390a2604051908152f35b634e487b7160e01b5f52601160045260245ffd5b6103356020826102fc6111ad565b6001600160a01b0361030d82611200565b16905f61031861125d565b6040516323b872dd60e01b81529687958694859360048501610fcf565b03925af1801561019057610350915f91610355575b50610ff9565b610251565b610377915060203d60201161037d575b61036f8183610f96565b810190610fb7565b8561034a565b503d610365565b60405162461bcd60e51b815260206004820152604a60248201527f696e697469616c697a6572206861736e2774206372656174656420696e69742060448201527f6d657373616765207965743b20616e6420736f75726365206973206e6f7420696064820152693734ba34b0b634bd32b960b11b608482015260a490fd5b5061040b61125d565b6002546001600160a01b03918216911614610247565b346100d4575f3660031901126100d4576020600454604051908152f35b346100d45760203660031901126100d4576004356001600160401b0381116100d45736819003906004810160c06003198401126100d4576104906001600160a01b036104886111ad565b1633146110c3565b61049981611166565b306001600160a01b0390911603610a5a5760a4820135926022190192838112156100d4578201906004820135906001600160401b0382116100d4578160051b360360248401136100d4575f94919360e2193685900301929060605b8688101561070a576024600589901b87010135858112156100d4576004908701019760208901601f198a3603019260c084126100d45760405160a081018181106001600160401b038211176106f6576040528235815261055660408d01610ede565b906020810191825260608d01356001600160401b0381116100d4576020908e010136601f820112156100d45780359061058e82611278565b9161059c6040519384610f96565b80835236602082840101116100d4578f6080905f6020846105d0958260409801838a01378701015283860194855201610eca565b6060840190815297607f1901126100d45760405193604085018581106001600160401b038211176106f65760405260a08f01358086529e60c00135936001600160e01b0319851685036100d4576001986106ad6034605460209996876106d39a8c9a8b809b019182528260808201525197519251965191519063ffffffff60e01b905116908a6040519889958287019b8c526001600160601b03199060601b1660408701528051918291018787015e8401926001600160801b03199060801b16858401526064830152608482015203016014810184520182610f96565b5190206040519582879351918291018585015e8201908382015203018084520182610f96565b996106e8576106e19061155f565b01966104f4565b6106f1906113dc565b6106e1565b634e487b7160e01b5f52604160045260245ffd5b60208151910120916084820135908112156100d4578101906004820135926001600160401b0384116100d45760608402360360248401136100d4576060945f5b85811015610899576004606082028601016060601f1982360301126100d45760405190606082018281106001600160401b038211176106f657604052602081013591828152604082019961079d8b610ede565b92836020840152606001926107b184610eca565b6040819401526040519260208401918683526001600160601b03199060601b1660408501526001600160801b03199060801b166054840152604483526107f8606484610f96565b60405192828493516020819201602086015e83019060208201905f8252519283915e016020015f815203601f19810182526108339082610f96565b9861083d90611166565b6108468261117a565b61084f91611293565b6108589061117a565b6040519182526001600160801b0316602082015260407fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578391a160010161074a565b50855160208701206044840192906001600160a01b036108b885611166565b16610988575b6020946108ee60646108e76108e160035497602486013580990361095657611166565b97611166565b920161117a565b9060405194878601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b166068840152607883015260988201526098815261094b60b882610f96565b519020604051908152f35b886003557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c0809308b6040518b8152a1611166565b61099184611166565b60015495906109a96001600160a01b03881615610ef2565b6001600160a01b03166001600160a01b0319969096168617600155851561019b57602460206001600160a01b036109e16101126111ad565b16604051928380926370a0823160e01b82523060048301525afa908115610190575f91610a27575b506020966001600160801b03610a20921690611293565b94506108be565b90506020813d602011610a52575b81610a4260209383610f96565b810103126100d457516020610a09565b3d9150610a35565b60405162461bcd60e51b815260206004820152601d60248201527f6163746f724964206d757374206265207468697320636f6e74726163740000006044820152606490fd5b346100d4575f3660031901126100d4576002546040516001600160a01b039091168152602090f35b346100d4575f3660031901126100d4575f546040516001600160a01b039091168152602090f35b346100d45760203660031901126100d457610b0c6004541515610f36565b6001600160a01b03610b1c61125d565b167f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860206040516004358152a2005b346100d45760203660031901126100d4576004356001600160801b038116908181036100d457600154610b87906001600160a01b031615610ef2565b81610bba575b7f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667602083604051908152a1005b906020610c0292610bc96111ad565b6001600160a01b03610bda82611200565b16905f610be561125d565b6040516323b872dd60e01b81529788958694859360048501610fcf565b03925af190811561019057610c416020927f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667945f91610c485750610ff9565b9150610b8d565b6103779150843d861161037d5761036f8183610f96565b346100d4575f3660031901126100d4576020600354604051908152f35b346100d45760403660031901126100d4576004356001600160a01b038116908190036100d4576024356001600160a01b03811691908290036100d457610ccb6001600160a01b036104886111ad565b60025490610ce26001600160a01b0383161561110f565b5f5491610cf86001600160a01b0384161561110f565b6001600160a01b03199081169190911760025516175f55005b346100d4575f3660031901126100d4576001546040516001600160a01b039091168152602090f35b346100d45760603660031901126100d4576024356001600160401b0381116100d457610d69903690600401610e9d565b90604435916001600160801b0383168084036100d457600154610d95906001600160a01b031615610ef2565b610da26004541515610f36565b610df2575b7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f91610ded6001600160a01b03610ddc61125d565b169460405193849360043585611095565b0390a2005b610e3a91602084610e016111ad565b6001600160a01b03610e1282611200565b16905f610e1d61125d565b6040516323b872dd60e01b81529889958694859360048501610fcf565b03925af1928315610190577fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f93610e77915f91610e7e5750610ff9565b9150610da7565b610e97915060203d60201161037d5761036f8183610f96565b8661034a565b9181601f840112156100d4578235916001600160401b0383116100d457602083818601950101116100d457565b35906001600160801b03821682036100d457565b35906001600160a01b03821682036100d457565b15610ef957565b60405162461bcd60e51b81526020600482015260156024820152741c1c9bd9dc985b481a5cc81d195c9b5a5b985d1959605a1b6044820152606490fd5b15610f3d57565b60405162461bcd60e51b815260206004820152602b60248201527f696e697469616c697a6572206861736e2774206372656174656420696e69742060448201526a1b595cdcd859d9481e595d60aa1b6064820152608490fd5b90601f801991011681019081106001600160401b038211176106f657604052565b908160209103126100d4575180151581036100d45790565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b1561100057565b60405162461bcd60e51b815260206004820152604160248201527f6661696c656420746f207472616e73666572206e6f6e2d7a65726f20616d6f7560448201527f6e74206f662057566172612066726f6d20736f7572636520746f20726f7574656064820152603960f91b608482015260a490fd5b908060209392818452848401375f828201840152601f01601f1916010190565b926040926110bc916001600160801b03939796978652606060208701526060860191611075565b9416910152565b156110ca57565b60405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f742074686520726f7574657200000000000000006044820152606490fd5b1561111657565b60405162461bcd60e51b815260206004820152602260248201527f696e697469616c697a657220636f756c64206f6e6c7920626520736574206f6e604482015261636560f01b6064820152608490fd5b356001600160a01b03811681036100d45790565b356001600160801b03811681036100d45790565b908160209103126100d457516001600160a01b03811681036100d45790565b6040516303e21fa960e61b8152602081600481305afa908115610190575f916111d4575090565b6111f6915060203d6020116111f9575b6111ee8183610f96565b81019061118e565b90565b503d6111e4565b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115610190575f9161123e575b506001600160a01b031690565b611257915060203d6020116111f9576111ee8183610f96565b5f611231565b5f54336001600160a01b0390911603611274573290565b3390565b6001600160401b0381116106f657601f01601f191660200190565b906001600160801b0316806112a6575050565b60209060446001600160a01b036112be6101126111ad565b60405163a9059cbb60e01b81526001600160a01b0390961660048701526024860193909352849283915f91165af1908115610190575f91611347575b501561130257565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207472616e7366657220575661726100000000000000006044820152606490fd5b611360915060203d60201161037d5761036f8183610f96565b5f6112fa565b903590601e19813603018212156100d457018035906001600160401b0382116100d4576020019181360383136100d457565b356001600160e01b0319811681036100d45790565b3d156113d7573d906113be82611278565b916113cc6040519384610f96565b82523d5f602084013e565b606090565b602081016113e981611166565b9061140160608401926113fb8461117a565b90611293565b5f546001600160a01b0316908161149a575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c69061144f6114476040850185611366565b91909261117a565b60806001600160e01b031961146660a08801611398565b16956001600160801b03611487604051968796606088526060880191611075565b93166020850152013560408301520390a2565b5f916114a68392611166565b826115406114b76040890189611366565b6114c38993929361117a565b6114cf60a08c01611398565b604051639649744960e01b602082019081526001600160a01b03909816602482015260a060448201529485936001600160801b03916115129160c4870191611075565b9216606484015260808c013560848401526001600160e01b03191660a483015203601f198101835282610f96565b51926207a120f161154f6113ad565b5061155b575f80611413565b5050565b5f546001600160a01b0316806115d9575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736115d46115a160208401611166565b6115ae6040850185611366565b6115bd6060879593950161117a565b9060405194859460018060a01b0316973585611095565b0390a2565b5f809183826115ea60208301611166565b6116686115fa6040850185611366565b92906001600160801b036116536116136060890161117a565b6040516374fad4ef60e01b60208201908152993560248201526001600160a01b03909516604486015260806064860152939586949360a486019190611075565b9116608483015203601f198101835282610f96565b51926207a120f16116776113ad565b50611682575f611570565b5056fea2646970667358221220bce46f8db7a45a91e6f4aaf7f3264e88d392541dfb781568d6e0b81aab4b4c1364736f6c634300081c0033","sourceMap":"403:9266:118:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;1633:23;;403:9266;;3811:41;;403:9266;-1:-1:-1;;;;;3811:16:118;3818:8;;:::i;:::-;3811:16;:::i;:::-;403:9266;;;;;;;;;;3811:41;;3846:4;403:9266;3811:41;;403:9266;3811:41;;;;;;;403:9266;3811:41;;;403:9266;;-1:-1:-1;;;;;3888:16:118;403:9266;;3888:16;;:::i;:::-;403:9266;3811:41;;;403:9266;3811:41;;403:9266;3811:41;;;;;;403:9266;3811:41;;;:::i;:::-;;;403:9266;;;;;;;-1:-1:-1;;;;;3811:41:118;;;;;-1:-1:-1;3811:41:118;;;403:9266;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;2492:57;;-1:-1:-1;;;;;403:9266:118;2500:23;2492:57;:::i;:::-;403:9266;;2204:9;;;:37;;;403:9266;;;;1103:259;;403:9266;;;-1:-1:-1;;403:9266:118;;;;;;;2500:9;3049:57;403:9266;;;;;;2992:40;;;3017:4;;403:9266;;;;;;;;;2992:40;;;;;;:::i;:::-;403:9266;2982:51;;;3049:57;-1:-1:-1;;;;;3078:9:118;;:::i;:::-;403:9266;;;;3049:57;;;;;;:::i;:::-;;;;403:9266;;;;;;;;;;;;;;;;;;1103:259;1191:61;403:9266;1154:8;;;:::i;:::-;-1:-1:-1;;;;;1191:18:118;;;:::i;:::-;403:9266;1223:9;403:9266;1223:9;;:::i;:::-;403:9266;;-1:-1:-1;;;1191:61:118;;403:9266;;;;;;;;1191:61;;;:::i;:::-;;;;;;;;;1266:85;1191:61;403:9266;1191:61;;;1103:259;1266:85;;:::i;:::-;1103:259;;1191:61;;;;403:9266;1191:61;403:9266;1191:61;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;403:9266;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;2204:37;2217:9;;;:::i;:::-;2230:11;403:9266;-1:-1:-1;;;;;403:9266:118;;;;;2217:24;2204:37;;403:9266;;;;;;-1:-1:-1;;403:9266:118;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;860:59;-1:-1:-1;;;;;882:8:118;;:::i;:::-;403:9266;868:10;:22;860:59;:::i;:::-;4564:19;;;:::i;:::-;4595:4;-1:-1:-1;;;;;403:9266:118;;;4564:36;403:9266;;4733:20;;;403:9266;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;5828:27;;-1:-1:-1;;403:9266:118;;;;;;5828:27;403:9266;5908:3;5886:20;;;;;;403:9266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4733:20;403:9266;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;4733:20;403:9266;;;;;;;;;;;-1:-1:-1;;;;;;403:9266:118;;;;;;;;4318:243:122;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;;4417:15:122;;403:9266:118;;;;;;;;;;;;;;;4318:243:122;;;;;;403:9266:118;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;4318:243:122;;;;;;;;;;:::i;:::-;403:9266:118;4295:276:122;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6144:28;;;6214:7;;;:::i;:::-;403:9266;5871:13;;;6140:162;6279:7;;;:::i;:::-;6140:162;;403:9266;;;;;;;;;;;;5886:20;403:9266;;;;;6329:25;4848:23;;;;403:9266;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;8077:13;403:9266;8112:3;8092:18;;;;;;403:9266;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;8303:65:122;403:9266:118;8303:65:122;;403:9266:118;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;8303:65:122;;;;;;:::i;:::-;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8297:17;;;;:::i;:::-;8316:11;;;:::i;:::-;;;;:::i;:::-;8378;;;:::i;:::-;403:9266;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;8348:42;;;403:9266;;8077:13;;8092:18;-1:-1:-1;403:9266:118;;;;;8418:27;403:9266;4932:21;;;;-1:-1:-1;;;;;4932:21:118;;;:::i;:::-;403:9266;4928:102;;8072:329;403:9266;;5422:26;8303:65:122;5387:21:118;5316:19;5095:9;403:9266;5108:24;;;;403:9266;5095:37;;;5091:110;;5316:19;:::i;:::-;5387:21;;:::i;:::-;5422:26;;;:::i;:::-;403:9266;;;5047:101:122;;;;403:9266:118;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;;5047:101:122;;;;;;:::i;:::-;403:9266:118;5024:134:122;;403:9266:118;;;;;;5091:110;403:9266;5095:9;403:9266;8978:23;403:9266;;;;;;8978:23;5316:19;:::i;4928:102::-;4997:21;;;:::i;:::-;403:9266;;;;2492:57;-1:-1:-1;;;;;403:9266:118;;2500:23;2492:57;:::i;:::-;-1:-1:-1;;;;;403:9266:118;-1:-1:-1;;;;;;403:9266:118;;;;;;;;1633:23;;403:9266;;3811:41;403:9266;-1:-1:-1;;;;;3811:16:118;3818:8;;:::i;3811:16::-;403:9266;;;;;;;;;;3811:41;;4595:4;403:9266;3811:41;;403:9266;3811:41;;;;;;;403:9266;3811:41;;;4928:102;403:9266;;;-1:-1:-1;;;;;3888:16:118;403:9266;;3888:16;;:::i;:::-;4928:102;;;;3811:41;;;403:9266;3811:41;;403:9266;3811:41;;;;;;403:9266;3811:41;;;:::i;:::-;;;403:9266;;;;;;3811:41;;;;;-1:-1:-1;3811:41:118;;403:9266;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;664:26;403:9266;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;1874:65;403:9266;;1882:9;;1874:65;:::i;:::-;-1:-1:-1;;;;;3536:9:118;;:::i;:::-;403:9266;3501:45;403:9266;;;;;;;3501:45;403:9266;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;2492:57;;-1:-1:-1;;;;;403:9266:118;2500:23;2492:57;:::i;:::-;1107:10;1103:259;;403:9266;3667:39;403:9266;;;;;;;3667:39;403:9266;1103:259;1154:8;403:9266;1191:61;1154:8;;;:::i;:::-;-1:-1:-1;;;;;1191:18:118;;;:::i;:::-;403:9266;1223:9;403:9266;1223:9;;:::i;:::-;403:9266;;-1:-1:-1;;;1191:61:118;;403:9266;;;;;;;;1191:61;;;:::i;:::-;;;;;;;;;;1266:85;403:9266;1191:61;3667:39;1191:61;403:9266;1191:61;;;1266:85;;:::i;:::-;1103:259;;;;1191:61;;;;;;;;;;;;;;:::i;403:9266::-;;;;;;-1:-1:-1;;403:9266:118;;;;;696:24;403:9266;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;860:59;-1:-1:-1;;;;;882:8:118;;:::i;860:59::-;4066:11;403:9266;;4058:72;-1:-1:-1;;;;;403:9266:118;;4066:25;4058:72;:::i;:::-;403:9266;;;4140:68;-1:-1:-1;;;;;403:9266:118;;4148:21;4140:68;:::i;:::-;-1:-1:-1;;;;;;403:9266:118;;;;;;;4066:11;403:9266;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;2492:57;;-1:-1:-1;;;;;403:9266:118;2500:23;2492:57;:::i;:::-;1874:65;403:9266;;1882:9;;1874:65;:::i;:::-;1103:259;;403:9266;3338:63;;;-1:-1:-1;;;;;3373:9:118;;:::i;:::-;403:9266;;;;;;;;;3338:63;;:::i;:::-;;;;403:9266;1103:259;1191:61;1154:8;403:9266;1154:8;;;:::i;:::-;-1:-1:-1;;;;;1191:18:118;;;:::i;:::-;403:9266;1223:9;403:9266;1223:9;;:::i;:::-;403:9266;;-1:-1:-1;;;1191:61:118;;403:9266;;;;;;;;1191:61;;;:::i;:::-;;;;;;;;;;3338:63;1191:61;1266:85;1191:61;403:9266;1191:61;;;1266:85;;:::i;:::-;1103:259;;;;1191:61;;;;403:9266;1191:61;403:9266;1191:61;;;;;;;:::i;:::-;;;;403:9266;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;403:9266:118;;;;;;:::o;:::-;;;-1:-1:-1;;;;;403:9266:118;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;-1:-1:-1;403:9266:118;;;;;;;;-1:-1:-1;;403:9266:118;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;:::o;:::-;;-1:-1:-1;;;;;403:9266:118;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;:::o;2606:108::-;403:9266;;-1:-1:-1;;;2671:36:118;;;403:9266;2671:36;403:9266;2692:4;2671:36;;;;;;;-1:-1:-1;2671:36:118;;;2664:43;2606:108;:::o;2671:36::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2606:108;:::o;2671:36::-;;;;;9048:182;403:9266;;-1:-1:-1;;;9150:33:118;;403:9266;9150:33;;403:9266;;9150:33;;403:9266;;-1:-1:-1;;;;;403:9266:118;9150:33;;;;;;;-1:-1:-1;9150:33:118;;;9048:182;-1:-1:-1;;;;;;403:9266:118;;9048:182::o;9150:33::-;;;;;;;;;;;;;;:::i;:::-;;;;9236:182;403:9266;;9300:10;-1:-1:-1;;;;;403:9266:118;;;9300:21;403:9266;;9344:9;9337:16;:::o;9296:116::-;9300:10;9384:17;:::o;403:9266::-;-1:-1:-1;;;;;403:9266:118;;;;;;-1:-1:-1;;403:9266:118;;;;:::o;9424:243::-;;-1:-1:-1;;;;;403:9266:118;9506:10;9502:159;;9424:243;;:::o;9502:159::-;403:9266;;9547:45;-1:-1:-1;;;;;9547:16:118;9554:8;;:::i;9547:16::-;403:9266;;-1:-1:-1;;;9547:45:118;;-1:-1:-1;;;;;403:9266:118;;;9547:45;;;403:9266;;;;;;;;;;;;9515:1;;403:9266;9547:45;;;;;;;9515:1;9547:45;;;9502:159;403:9266;;;;9424:243::o;403:9266::-;;;-1:-1:-1;;;403:9266:118;;;9547:45;403:9266;;;;;;;;;9547:45;403:9266;;;;;;9547:45;;;;403:9266;9547:45;403:9266;9547:45;;;;;;;:::i;:::-;;;;403:9266;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;403:9266:118;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;403:9266:118;;;;:::o;:::-;;;:::o;7148:784::-;7240:20;;;;;;:::i;:::-;7262:14;;;;;;;;;:::i;:::-;;;:::i;:::-;7292:7;403:9266;-1:-1:-1;;;;;403:9266:118;;;7288:529;;7148:784;7838:16;;7832:93;7838:16;7856:14;7838:16;;;;;;:::i;:::-;7856:14;;;;:::i;:::-;7872:21;-1:-1:-1;;;;;;7898:26:118;;;;;:::i;:::-;403:9266;;-1:-1:-1;;;;;403:9266:118;7838:16;403:9266;;;;7262:14;403:9266;;7262:14;403:9266;;;;:::i;:::-;;;7240:20;403:9266;;;7872:21;403:9266;7838:16;403:9266;;;7832:93;;;7148:784::o;7288:529::-;7292:7;7446:20;;;;;:::i;:::-;7484:16;7353:279;7484:16;;;;;;:::i;:::-;7518:14;;;;;;:::i;:::-;7592:26;;;;;:::i;:::-;7484:16;403:9266;-1:-1:-1;;;7240:20:118;7353:279;;;;;-1:-1:-1;;;;;403:9266:118;;;7353:279;;;403:9266;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;:::i;:::-;;;;;;;7550:21;;;403:9266;;;;;-1:-1:-1;;;;;;403:9266:118;;;;;7353:279;-1:-1:-1;;7353:279:118;;;;;;:::i;:::-;7704:36;;7722:7;7704:36;;;:::i;:::-;;7755:52;;7288:529;;;;7755:52;7786:7;;:::o;6420:653::-;6505:7;403:9266;-1:-1:-1;;;;;403:9266:118;;6501:474;;6420:653;7011:20;6990:76;;7011:20;;;;;:::i;:::-;7033:16;;;;;;:::i;:::-;7051:14;;;;;;;;:::i;:::-;403:9266;7033:16;403:9266;;;;;;;;;;;;6990:76;;:::i;:::-;;;;6420:653::o;6501:474::-;6505:7;6690:20;;;;;;;;;:::i;:::-;6566:224;6728:16;;;;;;:::i;:::-;6762:14;;-1:-1:-1;;;;;403:9266:118;6762:14;;;;;:::i;:::-;6728:16;403:9266;-1:-1:-1;;;6690:20:118;6566:224;;;;;403:9266;;6566:224;;;403:9266;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;6566:224;403:9266;:::i;:::-;;;;;;;6566:224;403:9266;;6566:224;;;;;;:::i;:::-;6862:36;;6880:7;6862:36;;;:::i;:::-;;6913:52;;6501:474;;;6913:52;6944:7;:::o","linkReferences":{}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","decoder()":"9cb33005","executableBalanceTopUp(uint128)":"704ed542","inheritor()":"36a52a18","initialize(address,address)":"485cc955","initializer()":"9ce110d7","nonce()":"affed0e0","performStateTransition((address,bytes32,address,uint128,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4))[]))":"9ed32350","router()":"f887ea40","sendMessage(bytes,uint128)":"d5624222","sendReply(bytes32,bytes,uint128)":"29336f39","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":[],\"name\":\"decoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_decoder\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"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 Gear.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 Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":{},\"stateVariables\":{\"initializer\":{\"details\":\"This nonce is the source for message ids unique generations. Must be bumped on each send. Zeroed nonce is always represent init message by eligible account.\"}},\"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/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0\",\"dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x1899463c32e174ebde503846dd1b40ddb6d6ba15e21d68b21b8151e97af35a5e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c91227968491548c006b70f1de87bb1b67a83d72d05faf19ba09ddfe27de3f6\",\"dweb:/ipfs/QmeXXQd2Wk1Jp1rvbysD1hZb3QVXR3sPxkU8UKBfwrKmkm\"]},\"src/IMirrorDecoder.sol\":{\"keccak256\":\"0xdc8493f52a809ac9470823d4c13f329845a10aa90a73bddd791137f3bd8849ac\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb625d21f8554f1a973a4ace5b5db4cc696b71605592a22eab44576d020ff70d\",\"dweb:/ipfs/Qma98jtpbJ4zYoBHwsCCUtgkeEVZsPFYUZiGwnPSpKsdqx\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b\",\"dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x494ced7f53fdc22cf426db303e63345a1022aff1c2ddcb378a5cfd8a1fb8f2d9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://11392c8f9e2a34094e8ace4f34fadce3f1d6a53679797e69d251fead6383969f\",\"dweb:/ipfs/QmRsY5xdxWgtmHArNQqBScABFyMehg1HcoeTjjeysazv1E\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831\",\"dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"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":[],"stateMutability":"view","type":"function","name":"decoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_decoder","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initializer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct Gear.StateTransition","name":"_transition","type":"tuple","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":"nonpayable","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":"nonpayable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"transferLockedValueToInheritor"}],"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/","symbiotic-core/=lib/symbiotic-core/"],"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":"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae","urls":["bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0","dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x1899463c32e174ebde503846dd1b40ddb6d6ba15e21d68b21b8151e97af35a5e","urls":["bzz-raw://3c91227968491548c006b70f1de87bb1b67a83d72d05faf19ba09ddfe27de3f6","dweb:/ipfs/QmeXXQd2Wk1Jp1rvbysD1hZb3QVXR3sPxkU8UKBfwrKmkm"],"license":"UNLICENSED"},"src/IMirrorDecoder.sol":{"keccak256":"0xdc8493f52a809ac9470823d4c13f329845a10aa90a73bddd791137f3bd8849ac","urls":["bzz-raw://fb625d21f8554f1a973a4ace5b5db4cc696b71605592a22eab44576d020ff70d","dweb:/ipfs/Qma98jtpbJ4zYoBHwsCCUtgkeEVZsPFYUZiGwnPSpKsdqx"],"license":"UNLICENSED"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf","urls":["bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b","dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Mirror.sol":{"keccak256":"0x494ced7f53fdc22cf426db303e63345a1022aff1c2ddcb378a5cfd8a1fb8f2d9","urls":["bzz-raw://11392c8f9e2a34094e8ace4f34fadce3f1d6a53679797e69d251fead6383969f","dweb:/ipfs/QmRsY5xdxWgtmHArNQqBScABFyMehg1HcoeTjjeysazv1E"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de","urls":["bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831","dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[{"astId":67047,"contract":"src/Mirror.sol:Mirror","label":"decoder","offset":0,"slot":"0","type":"t_address"},{"astId":67049,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":0,"slot":"1","type":"t_address"},{"astId":67052,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"2","type":"t_address"},{"astId":67054,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"3","type":"t_bytes32"},{"astId":67056,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"4","type":"t_uint256"}],"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":67774,"exportedSymbols":{"Clones":[42512],"Gear":[70080],"IMirror":[65178],"IMirrorDecoder":[65215],"IMirrorProxy":[65223],"IRouter":[65486],"IWrappedVara":[65497],"Mirror":[67773]},"nodeType":"SourceUnit","src":"39:9631:118","nodes":[{"id":67029,"nodeType":"PragmaDirective","src":"39:24:118","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":67031,"nodeType":"ImportDirective","src":"65:48:118","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":65224,"symbolAliases":[{"foreign":{"id":67030,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65223,"src":"73:12:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67033,"nodeType":"ImportDirective","src":"114:38:118","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":65179,"symbolAliases":[{"foreign":{"id":67032,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65178,"src":"122:7:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67035,"nodeType":"ImportDirective","src":"153:38:118","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":65487,"symbolAliases":[{"foreign":{"id":67034,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65486,"src":"161:7:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67037,"nodeType":"ImportDirective","src":"192:48:118","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":65498,"symbolAliases":[{"foreign":{"id":67036,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65497,"src":"200:12:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67039,"nodeType":"ImportDirective","src":"241:52:118","nodes":[],"absolutePath":"src/IMirrorDecoder.sol","file":"./IMirrorDecoder.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":65216,"symbolAliases":[{"foreign":{"id":67038,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65215,"src":"249:14:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67041,"nodeType":"ImportDirective","src":"294:64:118","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":42513,"symbolAliases":[{"foreign":{"id":67040,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42512,"src":"302:6:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67043,"nodeType":"ImportDirective","src":"359:42:118","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"./libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":70081,"symbolAliases":[{"foreign":{"id":67042,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"367:4:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67773,"nodeType":"ContractDefinition","src":"403:9266:118","nodes":[{"id":67047,"nodeType":"VariableDeclaration","src":"436:22:118","nodes":[],"baseFunctions":[65131],"constant":false,"functionSelector":"9cb33005","mutability":"mutable","name":"decoder","nameLocation":"451:7:118","scope":67773,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67046,"name":"address","nodeType":"ElementaryTypeName","src":"436:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67049,"nodeType":"VariableDeclaration","src":"464:24:118","nodes":[],"baseFunctions":[65116],"constant":false,"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"479:9:118","scope":67773,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67048,"name":"address","nodeType":"ElementaryTypeName","src":"464:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67052,"nodeType":"VariableDeclaration","src":"664:26:118","nodes":[],"constant":false,"documentation":{"id":67050,"nodeType":"StructuredDocumentation","src":"494:165:118","text":"@dev This nonce is the source for message ids unique generations. Must be bumped on each send. Zeroed nonce is always represent init message by eligible account."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"679:11:118","scope":67773,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67051,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67054,"nodeType":"VariableDeclaration","src":"696:24:118","nodes":[],"baseFunctions":[65111],"constant":false,"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"711:9:118","scope":67773,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"696:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":67056,"nodeType":"VariableDeclaration","src":"726:20:118","nodes":[],"baseFunctions":[65121],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"741:5:118","scope":67773,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67055,"name":"uint256","nodeType":"ElementaryTypeName","src":"726:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":67070,"nodeType":"ModifierDefinition","src":"828:109:118","nodes":[],"body":{"id":67069,"nodeType":"Block","src":"850:87:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67060,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"868:3:118","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"872:6:118","memberName":"sender","nodeType":"MemberAccess","src":"868:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":67062,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67178,"src":"882:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"882:8:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"868:22:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c6572206973206e6f742074686520726f75746572","id":67065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"892:26:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_198bece7548b89eb58a1e57e2a5c5ba93b63a70943a48214dc1508db322b92d3","typeString":"literal_string \"caller is not the router\""},"value":"caller is not the router"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_198bece7548b89eb58a1e57e2a5c5ba93b63a70943a48214dc1508db322b92d3","typeString":"literal_string \"caller is not the router\""}],"id":67059,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"860:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"860:59:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67067,"nodeType":"ExpressionStatement","src":"860:59:118"},{"id":67068,"nodeType":"PlaceholderStatement","src":"929:1:118"}]},"documentation":{"id":67057,"nodeType":"StructuredDocumentation","src":"753:70:118","text":"@dev Only the router can call functions marked with this modifier."},"name":"onlyRouter","nameLocation":"837:10:118","parameters":{"id":67058,"nodeType":"ParameterList","parameters":[],"src":"847:2:118"},"virtual":false,"visibility":"internal"},{"id":67104,"nodeType":"ModifierDefinition","src":"1053:326:118","nodes":[],"body":{"id":67103,"nodeType":"Block","src":"1093:286:118","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":67077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67075,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67073,"src":"1107:5:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":67076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1116:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1107:10:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67101,"nodeType":"IfStatement","src":"1103:259:118","trueBody":{"id":67100,"nodeType":"Block","src":"1119:243:118","statements":[{"assignments":[67079],"declarations":[{"constant":false,"id":67079,"mutability":"mutable","name":"routerAddr","nameLocation":"1141:10:118","nodeType":"VariableDeclaration","scope":67100,"src":"1133:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67078,"name":"address","nodeType":"ElementaryTypeName","src":"1133:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":67082,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":67080,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67178,"src":"1154:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1154:8:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1133:29:118"},{"assignments":[67084],"declarations":[{"constant":false,"id":67084,"mutability":"mutable","name":"success","nameLocation":"1181:7:118","nodeType":"VariableDeclaration","scope":67100,"src":"1176:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67083,"name":"bool","nodeType":"ElementaryTypeName","src":"1176:4:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":67094,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":67089,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67743,"src":"1223:7:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1223:9:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67091,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67079,"src":"1234:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67092,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67073,"src":"1246:5:118","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":[{"id":67086,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67079,"src":"1198:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67085,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67724,"src":"1191:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$65497_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":67087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1191:18:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"id":67088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1210:12:118","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43812,"src":"1191:31:118","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":67093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1191:61:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1176:76:118"},{"expression":{"arguments":[{"id":67096,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67084,"src":"1274:7:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207472616e73666572206e6f6e2d7a65726f20616d6f756e74206f662057566172612066726f6d20736f7572636520746f20726f75746572","id":67097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1283:67:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_89834f4f5b676caeda9aeacc6e70651fe8c874cb9d7867ce1578400f765c69dd","typeString":"literal_string \"failed to transfer non-zero amount of WVara from source to router\""},"value":"failed to transfer non-zero amount of WVara from source to router"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_89834f4f5b676caeda9aeacc6e70651fe8c874cb9d7867ce1578400f765c69dd","typeString":"literal_string \"failed to transfer non-zero amount of WVara from source to router\""}],"id":67095,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1266:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1266:85:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67099,"nodeType":"ExpressionStatement","src":"1266:85:118"}]}},{"id":67102,"nodeType":"PlaceholderStatement","src":"1371:1:118"}]},"documentation":{"id":67071,"nodeType":"StructuredDocumentation","src":"943:105:118","text":"@dev Non-zero value must be transferred from source to router in functions marked with this modifier."},"name":"retrievingValue","nameLocation":"1062:15:118","parameters":{"id":67074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67073,"mutability":"mutable","name":"value","nameLocation":"1086:5:118","nodeType":"VariableDeclaration","scope":67104,"src":"1078:13:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67072,"name":"uint128","nodeType":"ElementaryTypeName","src":"1078:7:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1077:15:118"},"virtual":false,"visibility":"internal"},{"id":67119,"nodeType":"ModifierDefinition","src":"1589:115:118","nodes":[],"body":{"id":67118,"nodeType":"Block","src":"1615:89:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67108,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67049,"src":"1633:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":67111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1654:1:118","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":67110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1646:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67109,"name":"address","nodeType":"ElementaryTypeName","src":"1646:7:118","typeDescriptions":{}}},"id":67112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1646:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1633:23:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973206e6f74207465726d696e61746564","id":67114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1658:27:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_645ea9267b04b6ac53df8eea2c448cbffac59a494197543c99a5f296932bd588","typeString":"literal_string \"program is not terminated\""},"value":"program is not terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_645ea9267b04b6ac53df8eea2c448cbffac59a494197543c99a5f296932bd588","typeString":"literal_string \"program is not terminated\""}],"id":67107,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1625:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1625:61:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67116,"nodeType":"ExpressionStatement","src":"1625:61:118"},{"id":67117,"nodeType":"PlaceholderStatement","src":"1696:1:118"}]},"documentation":{"id":67105,"nodeType":"StructuredDocumentation","src":"1488:96:118","text":"@dev Functions marked with this modifier can be called only after the program is terminated."},"name":"whenTerminated","nameLocation":"1598:14:118","parameters":{"id":67106,"nodeType":"ParameterList","parameters":[],"src":"1612:2:118"},"virtual":false,"visibility":"internal"},{"id":67131,"nodeType":"ModifierDefinition","src":"1830:127:118","nodes":[],"body":{"id":67130,"nodeType":"Block","src":"1864:93:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67123,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67056,"src":"1882:5:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":67124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1882:9:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e697469616c697a6572206861736e2774206372656174656420696e6974206d65737361676520796574","id":67126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1893:45:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_65d3f165ecb53a71c4baab7e3c64d50628aa4b4da22aa56421c8898d77a0af21","typeString":"literal_string \"initializer hasn't created init message yet\""},"value":"initializer hasn't created init message yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_65d3f165ecb53a71c4baab7e3c64d50628aa4b4da22aa56421c8898d77a0af21","typeString":"literal_string \"initializer hasn't created init message yet\""}],"id":67122,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1874:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1874:65:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67128,"nodeType":"ExpressionStatement","src":"1874:65:118"},{"id":67129,"nodeType":"PlaceholderStatement","src":"1949:1:118"}]},"documentation":{"id":67120,"nodeType":"StructuredDocumentation","src":"1710:115:118","text":"@dev Functions marked with this modifier can be called only after the initializer has created the init message."},"name":"whenInitMessageCreated","nameLocation":"1839:22:118","parameters":{"id":67121,"nodeType":"ParameterList","parameters":[],"src":"1861:2:118"},"virtual":false,"visibility":"internal"},{"id":67148,"nodeType":"ModifierDefinition","src":"2122:237:118","nodes":[],"body":{"id":67147,"nodeType":"Block","src":"2173:186:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":67142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67135,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67056,"src":"2204:5:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":67136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2212:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2204:9:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":67138,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67743,"src":"2217:7:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2217:9:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":67140,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67052,"src":"2230:11:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2217:24:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2204:37:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e697469616c697a6572206861736e2774206372656174656420696e6974206d657373616765207965743b20616e6420736f75726365206973206e6f7420696e697469616c697a6572","id":67143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2255:76:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_30f0ecacdc4f043fe4536cec8ec5dce9f84d0c03c073a67b932c97032eee9e08","typeString":"literal_string \"initializer hasn't created init message yet; and source is not initializer\""},"value":"initializer hasn't created init message yet; and source is not initializer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30f0ecacdc4f043fe4536cec8ec5dce9f84d0c03c073a67b932c97032eee9e08","typeString":"literal_string \"initializer hasn't created init message yet; and source is not initializer\""}],"id":67134,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2183:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2183:158:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67145,"nodeType":"ExpressionStatement","src":"2183:158:118"},{"id":67146,"nodeType":"PlaceholderStatement","src":"2351:1:118"}]},"documentation":{"id":67132,"nodeType":"StructuredDocumentation","src":"1963:154:118","text":"@dev Functions marked with this modifier can be called only after the initializer has created the init message or from the initializer (first access)."},"name":"whenInitMessageCreatedOrFromInitializer","nameLocation":"2131:39:118","parameters":{"id":67133,"nodeType":"ParameterList","parameters":[],"src":"2170:2:118"},"virtual":false,"visibility":"internal"},{"id":67163,"nodeType":"ModifierDefinition","src":"2459:108:118","nodes":[],"body":{"id":67162,"nodeType":"Block","src":"2482:85:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67152,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67049,"src":"2500:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":67155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2521:1:118","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":67154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2513:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67153,"name":"address","nodeType":"ElementaryTypeName","src":"2513:7:118","typeDescriptions":{}}},"id":67156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2513:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2500:23:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973207465726d696e61746564","id":67158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2525:23:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""},"value":"program is terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""}],"id":67151,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2492:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2492:57:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67160,"nodeType":"ExpressionStatement","src":"2492:57:118"},{"id":67161,"nodeType":"PlaceholderStatement","src":"2559:1:118"}]},"documentation":{"id":67149,"nodeType":"StructuredDocumentation","src":"2365:89:118","text":"@dev Functions marked with this modifier can be called only if the program is active."},"name":"whileActive","nameLocation":"2468:11:118","parameters":{"id":67150,"nodeType":"ParameterList","parameters":[],"src":"2479:2:118"},"virtual":false,"visibility":"internal"},{"id":67178,"nodeType":"FunctionDefinition","src":"2606:108:118","nodes":[],"body":{"id":67177,"nodeType":"Block","src":"2654:60:118","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":67171,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2692:4:118","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}],"id":67170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2684:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67169,"name":"address","nodeType":"ElementaryTypeName","src":"2684:7:118","typeDescriptions":{}}},"id":67172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2684:13:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67168,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65223,"src":"2671:12:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorProxy_$65223_$","typeString":"type(contract IMirrorProxy)"}},"id":67173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2671:27:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorProxy_$65223","typeString":"contract IMirrorProxy"}},"id":67174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2699:6:118","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":65222,"src":"2671:34:118","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":67175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2671:36:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67167,"id":67176,"nodeType":"Return","src":"2664:43:118"}]},"baseFunctions":[65126],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2615:6:118","parameters":{"id":67164,"nodeType":"ParameterList","parameters":[],"src":"2621:2:118"},"returnParameters":{"id":67167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67166,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67178,"src":"2645:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67165,"name":"address","nodeType":"ElementaryTypeName","src":"2645:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2644:9:118"},"scope":67773,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":67219,"nodeType":"FunctionDefinition","src":"2750:383:118","nodes":[],"body":{"id":67218,"nodeType":"Block","src":"2959:174:118","nodes":[],"statements":[{"assignments":[67195],"declarations":[{"constant":false,"id":67195,"mutability":"mutable","name":"id","nameLocation":"2977:2:118","nodeType":"VariableDeclaration","scope":67218,"src":"2969:10:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2969:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":67207,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":67201,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3017:4:118","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}],"id":67200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3009:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67199,"name":"address","nodeType":"ElementaryTypeName","src":"3009:7:118","typeDescriptions":{}}},"id":67202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:13:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3024:7:118","subExpression":{"id":67203,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67056,"src":"3024:5:118","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":67197,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2992:3:118","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":67198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2996:12:118","memberName":"encodePacked","nodeType":"MemberAccess","src":"2992:16:118","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":67205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2992:40:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67196,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2982:9:118","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":67206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2982:51:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2969:64:118"},{"eventCall":{"arguments":[{"id":67209,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67195,"src":"3074:2:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":67210,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67743,"src":"3078:7:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3078:9:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67212,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67180,"src":"3089:8:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":67213,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67182,"src":"3099:6:118","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":67208,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65054,"src":"3049:24:118","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":67214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3049:57:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67215,"nodeType":"EmitStatement","src":"3044:62:118"},{"expression":{"id":67216,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67195,"src":"3124:2:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":67193,"id":67217,"nodeType":"Return","src":"3117:9:118"}]},"baseFunctions":[65140],"functionSelector":"d5624222","implemented":true,"kind":"function","modifiers":[{"id":67185,"kind":"modifierInvocation","modifierName":{"id":67184,"name":"whileActive","nameLocations":["2837:11:118"],"nodeType":"IdentifierPath","referencedDeclaration":67163,"src":"2837:11:118"},"nodeType":"ModifierInvocation","src":"2837:11:118"},{"id":67187,"kind":"modifierInvocation","modifierName":{"id":67186,"name":"whenInitMessageCreatedOrFromInitializer","nameLocations":["2857:39:118"],"nodeType":"IdentifierPath","referencedDeclaration":67148,"src":"2857:39:118"},"nodeType":"ModifierInvocation","src":"2857:39:118"},{"arguments":[{"id":67189,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67182,"src":"2921:6:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":67190,"kind":"modifierInvocation","modifierName":{"id":67188,"name":"retrievingValue","nameLocations":["2905:15:118"],"nodeType":"IdentifierPath","referencedDeclaration":67104,"src":"2905:15:118"},"nodeType":"ModifierInvocation","src":"2905:23:118"}],"name":"sendMessage","nameLocation":"2759:11:118","parameters":{"id":67183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67180,"mutability":"mutable","name":"_payload","nameLocation":"2786:8:118","nodeType":"VariableDeclaration","scope":67219,"src":"2771:23:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":67179,"name":"bytes","nodeType":"ElementaryTypeName","src":"2771:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":67182,"mutability":"mutable","name":"_value","nameLocation":"2804:6:118","nodeType":"VariableDeclaration","scope":67219,"src":"2796:14:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67181,"name":"uint128","nodeType":"ElementaryTypeName","src":"2796:7:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2770:41:118"},"returnParameters":{"id":67193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67219,"src":"2946:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2946:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2945:9:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67244,"nodeType":"FunctionDefinition","src":"3139:269:118","nodes":[],"body":{"id":67243,"nodeType":"Block","src":"3323:85:118","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":67236,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67221,"src":"3361:10:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":67237,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67743,"src":"3373:7:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3373:9:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67239,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67223,"src":"3384:8:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":67240,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67225,"src":"3394:6:118","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":67235,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65065,"src":"3338:22:118","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":67241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:63:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67242,"nodeType":"EmitStatement","src":"3333:68:118"}]},"baseFunctions":[65149],"functionSelector":"29336f39","implemented":true,"kind":"function","modifiers":[{"id":67228,"kind":"modifierInvocation","modifierName":{"id":67227,"name":"whileActive","nameLocations":["3244:11:118"],"nodeType":"IdentifierPath","referencedDeclaration":67163,"src":"3244:11:118"},"nodeType":"ModifierInvocation","src":"3244:11:118"},{"id":67230,"kind":"modifierInvocation","modifierName":{"id":67229,"name":"whenInitMessageCreated","nameLocations":["3264:22:118"],"nodeType":"IdentifierPath","referencedDeclaration":67131,"src":"3264:22:118"},"nodeType":"ModifierInvocation","src":"3264:22:118"},{"arguments":[{"id":67232,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67225,"src":"3311:6:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":67233,"kind":"modifierInvocation","modifierName":{"id":67231,"name":"retrievingValue","nameLocations":["3295:15:118"],"nodeType":"IdentifierPath","referencedDeclaration":67104,"src":"3295:15:118"},"nodeType":"ModifierInvocation","src":"3295:23:118"}],"name":"sendReply","nameLocation":"3148:9:118","parameters":{"id":67226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67221,"mutability":"mutable","name":"_repliedTo","nameLocation":"3166:10:118","nodeType":"VariableDeclaration","scope":67244,"src":"3158:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3158:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":67223,"mutability":"mutable","name":"_payload","nameLocation":"3193:8:118","nodeType":"VariableDeclaration","scope":67244,"src":"3178:23:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":67222,"name":"bytes","nodeType":"ElementaryTypeName","src":"3178:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":67225,"mutability":"mutable","name":"_value","nameLocation":"3211:6:118","nodeType":"VariableDeclaration","scope":67244,"src":"3203:14:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67224,"name":"uint128","nodeType":"ElementaryTypeName","src":"3203:7:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3157:61:118"},"returnParameters":{"id":67234,"nodeType":"ParameterList","parameters":[],"src":"3323:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67258,"nodeType":"FunctionDefinition","src":"3414:139:118","nodes":[],"body":{"id":67257,"nodeType":"Block","src":"3486:67:118","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":67252,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67246,"src":"3524:10:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":67253,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67743,"src":"3536:7:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3536:9:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":67251,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65072,"src":"3501:22:118","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":67255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3501:45:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67256,"nodeType":"EmitStatement","src":"3496:50:118"}]},"baseFunctions":[65154],"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":67249,"kind":"modifierInvocation","modifierName":{"id":67248,"name":"whenInitMessageCreated","nameLocations":["3463:22:118"],"nodeType":"IdentifierPath","referencedDeclaration":67131,"src":"3463:22:118"},"nodeType":"ModifierInvocation","src":"3463:22:118"}],"name":"claimValue","nameLocation":"3423:10:118","parameters":{"id":67247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67246,"mutability":"mutable","name":"_claimedId","nameLocation":"3442:10:118","nodeType":"VariableDeclaration","scope":67258,"src":"3434:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3434:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3433:20:118"},"returnParameters":{"id":67250,"nodeType":"ParameterList","parameters":[],"src":"3486:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67273,"nodeType":"FunctionDefinition","src":"3559:154:118","nodes":[],"body":{"id":67272,"nodeType":"Block","src":"3652:61:118","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":67269,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67260,"src":"3699:6:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":67268,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65077,"src":"3667:31:118","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":67270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3667:39:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67271,"nodeType":"EmitStatement","src":"3662:44:118"}]},"baseFunctions":[65159],"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":67263,"kind":"modifierInvocation","modifierName":{"id":67262,"name":"whileActive","nameLocations":["3616:11:118"],"nodeType":"IdentifierPath","referencedDeclaration":67163,"src":"3616:11:118"},"nodeType":"ModifierInvocation","src":"3616:11:118"},{"arguments":[{"id":67265,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67260,"src":"3644:6:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":67266,"kind":"modifierInvocation","modifierName":{"id":67264,"name":"retrievingValue","nameLocations":["3628:15:118"],"nodeType":"IdentifierPath","referencedDeclaration":67104,"src":"3628:15:118"},"nodeType":"ModifierInvocation","src":"3628:23:118"}],"name":"executableBalanceTopUp","nameLocation":"3568:22:118","parameters":{"id":67261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67260,"mutability":"mutable","name":"_value","nameLocation":"3599:6:118","nodeType":"VariableDeclaration","scope":67273,"src":"3591:14:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67259,"name":"uint128","nodeType":"ElementaryTypeName","src":"3591:7:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3590:16:118"},"returnParameters":{"id":67267,"nodeType":"ParameterList","parameters":[],"src":"3652:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67300,"nodeType":"FunctionDefinition","src":"3719:193:118","nodes":[],"body":{"id":67299,"nodeType":"Block","src":"3783:129:118","nodes":[],"statements":[{"assignments":[67279],"declarations":[{"constant":false,"id":67279,"mutability":"mutable","name":"balance","nameLocation":"3801:7:118","nodeType":"VariableDeclaration","scope":67299,"src":"3793:15:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67278,"name":"uint256","nodeType":"ElementaryTypeName","src":"3793:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67290,"initialValue":{"arguments":[{"arguments":[{"id":67287,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3846:4:118","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}],"id":67286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3838:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67285,"name":"address","nodeType":"ElementaryTypeName","src":"3838:7:118","typeDescriptions":{}}},"id":67288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3838:13:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":67281,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67178,"src":"3818:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3818:8:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67280,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67724,"src":"3811:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$65497_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":67283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:16:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"id":67284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3828:9:118","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43770,"src":"3811:26:118","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":67289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:41:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3793:59:118"},{"expression":{"arguments":[{"id":67292,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67049,"src":"3877:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":67295,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67279,"src":"3896:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3888:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":67293,"name":"uint128","nodeType":"ElementaryTypeName","src":"3888:7:118","typeDescriptions":{}}},"id":67296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3888:16:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":67291,"name":"_transferValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67772,"src":"3862:14:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":67297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:43:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67298,"nodeType":"ExpressionStatement","src":"3862:43:118"}]},"baseFunctions":[65162],"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":67276,"kind":"modifierInvocation","modifierName":{"id":67275,"name":"whenTerminated","nameLocations":["3768:14:118"],"nodeType":"IdentifierPath","referencedDeclaration":67119,"src":"3768:14:118"},"nodeType":"ModifierInvocation","src":"3768:14:118"}],"name":"transferLockedValueToInheritor","nameLocation":"3728:30:118","parameters":{"id":67274,"nodeType":"ParameterList","parameters":[],"src":"3758:2:118"},"returnParameters":{"id":67277,"nodeType":"ParameterList","parameters":[],"src":"3783:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67338,"nodeType":"FunctionDefinition","src":"3970:310:118","nodes":[],"body":{"id":67337,"nodeType":"Block","src":"4048:232:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67310,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67052,"src":"4066:11:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":67313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4089:1:118","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":67312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4081:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67311,"name":"address","nodeType":"ElementaryTypeName","src":"4081:7:118","typeDescriptions":{}}},"id":67314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4081:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4066:25:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e697469616c697a657220636f756c64206f6e6c7920626520736574206f6e6365","id":67316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4093:36:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_a22a998b3a781946b89501fcd4ccd018d3a95bd8711aff0547431faa4986b249","typeString":"literal_string \"initializer could only be set once\""},"value":"initializer could only be set once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a22a998b3a781946b89501fcd4ccd018d3a95bd8711aff0547431faa4986b249","typeString":"literal_string \"initializer could only be set once\""}],"id":67309,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4058:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4058:72:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67318,"nodeType":"ExpressionStatement","src":"4058:72:118"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67320,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"4148:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":67323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4167:1:118","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":67322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4159:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67321,"name":"address","nodeType":"ElementaryTypeName","src":"4159:7:118","typeDescriptions":{}}},"id":67324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4148:21:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e697469616c697a657220636f756c64206f6e6c7920626520736574206f6e6365","id":67326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4171:36:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_a22a998b3a781946b89501fcd4ccd018d3a95bd8711aff0547431faa4986b249","typeString":"literal_string \"initializer could only be set once\""},"value":"initializer could only be set once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a22a998b3a781946b89501fcd4ccd018d3a95bd8711aff0547431faa4986b249","typeString":"literal_string \"initializer could only be set once\""}],"id":67319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4140:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4140:68:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67328,"nodeType":"ExpressionStatement","src":"4140:68:118"},{"expression":{"id":67331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67329,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67052,"src":"4219:11:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67330,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67302,"src":"4233:12:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4219:26:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67332,"nodeType":"ExpressionStatement","src":"4219:26:118"},{"expression":{"id":67335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67333,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"4255:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67334,"name":"_decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67304,"src":"4265:8:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4255:18:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67336,"nodeType":"ExpressionStatement","src":"4255:18:118"}]},"baseFunctions":[65169],"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":67307,"kind":"modifierInvocation","modifierName":{"id":67306,"name":"onlyRouter","nameLocations":["4037:10:118"],"nodeType":"IdentifierPath","referencedDeclaration":67070,"src":"4037:10:118"},"nodeType":"ModifierInvocation","src":"4037:10:118"}],"name":"initialize","nameLocation":"3979:10:118","parameters":{"id":67305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67302,"mutability":"mutable","name":"_initializer","nameLocation":"3998:12:118","nodeType":"VariableDeclaration","scope":67338,"src":"3990:20:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67301,"name":"address","nodeType":"ElementaryTypeName","src":"3990:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67304,"mutability":"mutable","name":"_decoder","nameLocation":"4020:8:118","nodeType":"VariableDeclaration","scope":67338,"src":"4012:16:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67303,"name":"address","nodeType":"ElementaryTypeName","src":"4012:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3989:40:118"},"returnParameters":{"id":67308,"nodeType":"ParameterList","parameters":[],"src":"4048:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67415,"nodeType":"FunctionDefinition","src":"4363:1163:118","nodes":[],"body":{"id":67414,"nodeType":"Block","src":"4476:1050:118","nodes":[],"statements":[{"documentation":"@dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67349,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"4564:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4576:7:118","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":69590,"src":"4564:19:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":67353,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4595:4:118","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}],"id":67352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4587:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67351,"name":"address","nodeType":"ElementaryTypeName","src":"4587:7:118","typeDescriptions":{}}},"id":67354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4587:13:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4564:36:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6163746f724964206d757374206265207468697320636f6e7472616374","id":67356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4602:31:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba7be785920a68bd302e7ea09bd7071e8b885ef81058f7ff907b22051b8150cd","typeString":"literal_string \"actorId must be this contract\""},"value":"actorId must be this contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba7be785920a68bd302e7ea09bd7071e8b885ef81058f7ff907b22051b8150cd","typeString":"literal_string \"actorId must be this contract\""}],"id":67348,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4556:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4556:78:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67358,"nodeType":"ExpressionStatement","src":"4556:78:118"},{"assignments":[67361],"declarations":[{"constant":false,"id":67361,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"4698:18:118","nodeType":"VariableDeclaration","scope":67414,"src":"4690:26:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4690:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":"@dev Send all outgoing messages.","id":67366,"initialValue":{"arguments":[{"expression":{"id":67363,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"4733:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4745:8:118","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":69604,"src":"4733:20:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$69569_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$69569_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":67362,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67482,"src":"4719:13:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$69569_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":67365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4719:35:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4690:64:118"},{"assignments":[67369],"declarations":[{"constant":false,"id":67369,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"4817:15:118","nodeType":"VariableDeclaration","scope":67414,"src":"4809:23:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4809:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":"@dev Send value for each claim.","id":67374,"initialValue":{"arguments":[{"expression":{"id":67371,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"4848:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4860:11:118","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":69600,"src":"4848:23:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69626_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69626_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":67370,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67674,"src":"4835:12:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$69626_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":67373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4835:37:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4809:63:118"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67375,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"4932:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4944:9:118","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":69594,"src":"4932:21:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":67379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4965:1:118","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":67378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4957:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67377,"name":"address","nodeType":"ElementaryTypeName","src":"4957:7:118","typeDescriptions":{}}},"id":67380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4957:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4932:35:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":"@dev Set inheritor if specified.","id":67388,"nodeType":"IfStatement","src":"4928:102:118","trueBody":{"id":67387,"nodeType":"Block","src":"4969:61:118","statements":[{"expression":{"arguments":[{"expression":{"id":67383,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"4997:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5009:9:118","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":69594,"src":"4997:21:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67382,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67689,"src":"4983:13:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":67385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4983:36:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67386,"nodeType":"ExpressionStatement","src":"4983:36:118"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":67392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67389,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67054,"src":"5095:9:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":67390,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5108:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5120:12:118","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":69592,"src":"5108:24:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5095:37:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":"@dev Update the state hash if changed.","id":67399,"nodeType":"IfStatement","src":"5091:110:118","trueBody":{"id":67398,"nodeType":"Block","src":"5134:67:118","statements":[{"expression":{"arguments":[{"expression":{"id":67394,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5165:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5177:12:118","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":69592,"src":"5165:24:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":67393,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67703,"src":"5148:16:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":67396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5148:42:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67397,"nodeType":"ExpressionStatement","src":"5148:42:118"}]}},{"documentation":"@dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":67402,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5316:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5328:7:118","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":69590,"src":"5316:19:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67404,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5349:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:12:118","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":69592,"src":"5349:24:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":67406,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5387:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5399:9:118","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":69594,"src":"5387:21:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67408,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5422:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5434:14:118","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":69596,"src":"5422:26:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":67410,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67369,"src":"5462:15:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":67411,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67361,"src":"5491:18:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":67400,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"5278:4:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":67401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5283:19:118","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":69830,"src":"5278:24:118","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$_t_uint128_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,address,uint128,bytes32,bytes32) pure returns (bytes32)"}},"id":67412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5278:241:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":67347,"id":67413,"nodeType":"Return","src":"5271:248:118"}]},"baseFunctions":[65177],"functionSelector":"9ed32350","implemented":true,"kind":"function","modifiers":[{"id":67344,"kind":"modifierInvocation","modifierName":{"id":67343,"name":"onlyRouter","nameLocations":["4447:10:118"],"nodeType":"IdentifierPath","referencedDeclaration":67070,"src":"4447:10:118"},"nodeType":"ModifierInvocation","src":"4447:10:118"}],"name":"performStateTransition","nameLocation":"4372:22:118","parameters":{"id":67342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67341,"mutability":"mutable","name":"_transition","nameLocation":"4425:11:118","nodeType":"VariableDeclaration","scope":67415,"src":"4395:41:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":67340,"nodeType":"UserDefinedTypeName","pathNode":{"id":67339,"name":"Gear.StateTransition","nameLocations":["4395:4:118","4400:15:118"],"nodeType":"IdentifierPath","referencedDeclaration":69605,"src":"4395:20:118"},"referencedDeclaration":69605,"src":"4395:20:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"4394:43:118"},"returnParameters":{"id":67347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67415,"src":"4467:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4467:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4466:9:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67482,"nodeType":"FunctionDefinition","src":"5734:627:118","nodes":[],"body":{"id":67481,"nodeType":"Block","src":"5818:543:118","nodes":[],"statements":[{"assignments":[67425],"declarations":[{"constant":false,"id":67425,"mutability":"mutable","name":"messagesHashes","nameLocation":"5841:14:118","nodeType":"VariableDeclaration","scope":67481,"src":"5828:27:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":67424,"name":"bytes","nodeType":"ElementaryTypeName","src":"5828:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":67426,"nodeType":"VariableDeclarationStatement","src":"5828:27:118"},{"body":{"id":67475,"nodeType":"Block","src":"5913:399:118","statements":[{"assignments":[67442],"declarations":[{"constant":false,"id":67442,"mutability":"mutable","name":"message","nameLocation":"5949:7:118","nodeType":"VariableDeclaration","scope":67475,"src":"5927:29:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":67441,"nodeType":"UserDefinedTypeName","pathNode":{"id":67440,"name":"Gear.Message","nameLocations":["5927:4:118","5932:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":69569,"src":"5927:12:118"},"referencedDeclaration":69569,"src":"5927:12:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":67446,"initialValue":{"baseExpression":{"id":67443,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67419,"src":"5959:9:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$69569_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":67445,"indexExpression":{"id":67444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67428,"src":"5969:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5959:12:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"5927:44:118"},{"expression":{"id":67457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67447,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67425,"src":"5986:14:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":67451,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67425,"src":"6016:14:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":67454,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67442,"src":"6049:7:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":67452,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"6032:4:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":67453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6037:11:118","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":69776,"src":"6032:16:118","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$69569_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":67455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6032:25:118","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":67449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6003:5:118","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":67448,"name":"bytes","nodeType":"ElementaryTypeName","src":"6003:5:118","typeDescriptions":{}}},"id":67450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6009:6:118","memberName":"concat","nodeType":"MemberAccess","src":"6003:12:118","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":67456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:55:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5986:72:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":67458,"nodeType":"ExpressionStatement","src":"5986:72:118"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":67463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":67459,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67442,"src":"6144:7:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6152:12:118","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":69568,"src":"6144:20:118","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$69588_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":67461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6165:2:118","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":69585,"src":"6144:23:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":67462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6171:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6144:28:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":67473,"nodeType":"Block","src":"6243:59:118","statements":[{"expression":{"arguments":[{"id":67470,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67442,"src":"6279:7:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":67469,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67609,"src":"6261:17:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$69569_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":67471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6261:26:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67472,"nodeType":"ExpressionStatement","src":"6261:26:118"}]},"id":67474,"nodeType":"IfStatement","src":"6140:162:118","trueBody":{"id":67468,"nodeType":"Block","src":"6174:63:118","statements":[{"expression":{"arguments":[{"id":67465,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67442,"src":"6214:7:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":67464,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67539,"src":"6192:21:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$69569_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":67466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6192:30:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67467,"nodeType":"ExpressionStatement","src":"6192:30:118"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67428,"src":"5886:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":67432,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67419,"src":"5890:9:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$69569_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":67433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5900:6:118","memberName":"length","nodeType":"MemberAccess","src":"5890:16:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5886:20:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67476,"initializationExpression":{"assignments":[67428],"declarations":[{"constant":false,"id":67428,"mutability":"mutable","name":"i","nameLocation":"5879:1:118","nodeType":"VariableDeclaration","scope":67476,"src":"5871:9:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67427,"name":"uint256","nodeType":"ElementaryTypeName","src":"5871:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67430,"initialValue":{"hexValue":"30","id":67429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5883:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5871:13:118"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":67436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5908:3:118","subExpression":{"id":67435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67428,"src":"5908:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67437,"nodeType":"ExpressionStatement","src":"5908:3:118"},"nodeType":"ForStatement","src":"5866:446:118"},{"expression":{"arguments":[{"id":67478,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67425,"src":"6339:14:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67477,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6329:9:118","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":67479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6329:25:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":67423,"id":67480,"nodeType":"Return","src":"6322:32:118"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"5743:13:118","parameters":{"id":67420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67419,"mutability":"mutable","name":"_messages","nameLocation":"5781:9:118","nodeType":"VariableDeclaration","scope":67482,"src":"5757:33:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$69569_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":67417,"nodeType":"UserDefinedTypeName","pathNode":{"id":67416,"name":"Gear.Message","nameLocations":["5757:4:118","5762:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":69569,"src":"5757:12:118"},"referencedDeclaration":69569,"src":"5757:12:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_storage_ptr","typeString":"struct Gear.Message"}},"id":67418,"nodeType":"ArrayTypeName","src":"5757:14:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$69569_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"5756:35:118"},"returnParameters":{"id":67423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67482,"src":"5809:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5809:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5808:9:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67539,"nodeType":"FunctionDefinition","src":"6420:653:118","nodes":[],"body":{"id":67538,"nodeType":"Block","src":"6491:582:118","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67489,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"6505:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":67492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6524:1:118","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":67491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6516:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67490,"name":"address","nodeType":"ElementaryTypeName","src":"6516:7:118","typeDescriptions":{}}},"id":67493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6516:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6505:21:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67526,"nodeType":"IfStatement","src":"6501:474:118","trueBody":{"id":67525,"nodeType":"Block","src":"6528:447:118","statements":[{"assignments":[67496],"declarations":[{"constant":false,"id":67496,"mutability":"mutable","name":"callData","nameLocation":"6555:8:118","nodeType":"VariableDeclaration","scope":67525,"src":"6542:21:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":67495,"name":"bytes","nodeType":"ElementaryTypeName","src":"6542:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":67511,"initialValue":{"arguments":[{"expression":{"expression":{"id":67499,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65215,"src":"6606:14:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$65215_$","typeString":"type(contract IMirrorDecoder)"}},"id":67500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6621:13:118","memberName":"onMessageSent","nodeType":"MemberAccess","referencedDeclaration":65201,"src":"6606:28:118","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":67501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6635:8:118","memberName":"selector","nodeType":"MemberAccess","src":"6606:37:118","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":67502,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"6661:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6670:2:118","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69559,"src":"6661:11:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":67504,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"6690:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6699:11:118","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":69561,"src":"6690:20:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67506,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"6728:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6737:7:118","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":69563,"src":"6728:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":67508,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"6762:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6771:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69565,"src":"6762:14:118","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":67497,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6566:3:118","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":67498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6570:18:118","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"6566:22:118","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":67510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6566:224:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6542:248:118"},{"assignments":[67513,null],"declarations":[{"constant":false,"id":67513,"mutability":"mutable","name":"success","nameLocation":"6850:7:118","nodeType":"VariableDeclaration","scope":67525,"src":"6845:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67512,"name":"bool","nodeType":"ElementaryTypeName","src":"6845:4:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":67520,"initialValue":{"arguments":[{"id":67518,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67496,"src":"6889:8:118","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":67514,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"6862:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6870:4:118","memberName":"call","nodeType":"MemberAccess","src":"6862:12:118","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":67517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":67516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6880:7:118","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"6862:26:118","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":67519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6862:36:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6844:54:118"},{"condition":{"id":67521,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67513,"src":"6917:7:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67524,"nodeType":"IfStatement","src":"6913:52:118","trueBody":{"id":67523,"nodeType":"Block","src":"6926:39:118","statements":[{"functionReturnParameters":67488,"id":67522,"nodeType":"Return","src":"6944:7:118"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":67528,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"6998:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7007:2:118","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69559,"src":"6998:11:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":67530,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"7011:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7020:11:118","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":69561,"src":"7011:20:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67532,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"7033:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7042:7:118","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":69563,"src":"7033:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":67534,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"7051:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7060:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69565,"src":"7051:14:118","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":67527,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65088,"src":"6990:7:118","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":67536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6990:76:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67537,"nodeType":"EmitStatement","src":"6985:81:118"}]},"documentation":{"id":67483,"nodeType":"StructuredDocumentation","src":"6367:48:118","text":"@dev Value never sent since goes to mailbox."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"6429:21:118","parameters":{"id":67487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67486,"mutability":"mutable","name":"_message","nameLocation":"6473:8:118","nodeType":"VariableDeclaration","scope":67539,"src":"6451:30:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":67485,"nodeType":"UserDefinedTypeName","pathNode":{"id":67484,"name":"Gear.Message","nameLocations":["6451:4:118","6456:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":69569,"src":"6451:12:118"},"referencedDeclaration":69569,"src":"6451:12:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"6450:32:118"},"returnParameters":{"id":67488,"nodeType":"ParameterList","parameters":[],"src":"6491:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67609,"nodeType":"FunctionDefinition","src":"7148:784:118","nodes":[],"body":{"id":67608,"nodeType":"Block","src":"7215:717:118","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":67547,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7240:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7249:11:118","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":69561,"src":"7240:20:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67549,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7262:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7271:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69565,"src":"7262:14:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":67546,"name":"_transferValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67772,"src":"7225:14:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":67551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7225:52:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67552,"nodeType":"ExpressionStatement","src":"7225:52:118"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67553,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"7292:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":67556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7311:1:118","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":67555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7303:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67554,"name":"address","nodeType":"ElementaryTypeName","src":"7303:7:118","typeDescriptions":{}}},"id":67557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7303:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7292:21:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67594,"nodeType":"IfStatement","src":"7288:529:118","trueBody":{"id":67593,"nodeType":"Block","src":"7315:502:118","statements":[{"assignments":[67560],"declarations":[{"constant":false,"id":67560,"mutability":"mutable","name":"callData","nameLocation":"7342:8:118","nodeType":"VariableDeclaration","scope":67593,"src":"7329:21:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":67559,"name":"bytes","nodeType":"ElementaryTypeName","src":"7329:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":67579,"initialValue":{"arguments":[{"expression":{"expression":{"id":67563,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65215,"src":"7393:14:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$65215_$","typeString":"type(contract IMirrorDecoder)"}},"id":67564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7408:11:118","memberName":"onReplySent","nodeType":"MemberAccess","referencedDeclaration":65214,"src":"7393:26:118","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":67565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7420:8:118","memberName":"selector","nodeType":"MemberAccess","src":"7393:35:118","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":67566,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7446:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7455:11:118","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":69561,"src":"7446:20:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67568,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7484:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7493:7:118","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":69563,"src":"7484:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":67570,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7518:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7527:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69565,"src":"7518:14:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":67572,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7550:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7559:12:118","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":69568,"src":"7550:21:118","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$69588_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":67574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7572:2:118","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":69585,"src":"7550:24:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":67575,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7592:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:12:118","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":69568,"src":"7592:21:118","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$69588_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":67577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7614:4:118","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":69587,"src":"7592:26:118","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":67561,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7353:3:118","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":67562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7357:18:118","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"7353:22:118","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":67578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7353:279:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7329:303:118"},{"assignments":[67581,null],"declarations":[{"constant":false,"id":67581,"mutability":"mutable","name":"success","nameLocation":"7692:7:118","nodeType":"VariableDeclaration","scope":67593,"src":"7687:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67580,"name":"bool","nodeType":"ElementaryTypeName","src":"7687:4:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":67588,"initialValue":{"arguments":[{"id":67586,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67560,"src":"7731:8:118","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":67582,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"7704:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7712:4:118","memberName":"call","nodeType":"MemberAccess","src":"7704:12:118","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":67585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":67584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7722:7:118","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"7704:26:118","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":67587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7704:36:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7686:54:118"},{"condition":{"id":67589,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67581,"src":"7759:7:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67592,"nodeType":"IfStatement","src":"7755:52:118","trueBody":{"id":67591,"nodeType":"Block","src":"7768:39:118","statements":[{"functionReturnParameters":67545,"id":67590,"nodeType":"Return","src":"7786:7:118"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":67596,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7838:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7847:7:118","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":69563,"src":"7838:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":67598,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7856:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7865:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69565,"src":"7856:14:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":67600,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7872:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7881:12:118","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":69568,"src":"7872:21:118","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$69588_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":67602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7894:2:118","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":69585,"src":"7872:24:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":67603,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7898:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7907:12:118","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":69568,"src":"7898:21:118","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$69588_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":67605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7920:4:118","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":69587,"src":"7898:26:118","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":67595,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65099,"src":"7832:5:118","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":67606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7832:93:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67607,"nodeType":"EmitStatement","src":"7827:98:118"}]},"documentation":{"id":67540,"nodeType":"StructuredDocumentation","src":"7079:64:118","text":"@dev Non-zero value always sent since never goes to mailbox."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"7157:17:118","parameters":{"id":67544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67543,"mutability":"mutable","name":"_message","nameLocation":"7197:8:118","nodeType":"VariableDeclaration","scope":67609,"src":"7175:30:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":67542,"nodeType":"UserDefinedTypeName","pathNode":{"id":67541,"name":"Gear.Message","nameLocations":["7175:4:118","7180:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":69569,"src":"7175:12:118"},"referencedDeclaration":69569,"src":"7175:12:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69569_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"7174:32:118"},"returnParameters":{"id":67545,"nodeType":"ParameterList","parameters":[],"src":"7215:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67674,"nodeType":"FunctionDefinition","src":"7938:514:118","nodes":[],"body":{"id":67673,"nodeType":"Block","src":"8022:430:118","nodes":[],"statements":[{"assignments":[67619],"declarations":[{"constant":false,"id":67619,"mutability":"mutable","name":"valueClaimsBytes","nameLocation":"8045:16:118","nodeType":"VariableDeclaration","scope":67673,"src":"8032:29:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":67618,"name":"bytes","nodeType":"ElementaryTypeName","src":"8032:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":67620,"nodeType":"VariableDeclarationStatement","src":"8032:29:118"},{"body":{"id":67667,"nodeType":"Block","src":"8117:284:118","statements":[{"assignments":[67636],"declarations":[{"constant":false,"id":67636,"mutability":"mutable","name":"claim","nameLocation":"8156:5:118","nodeType":"VariableDeclaration","scope":67667,"src":"8131:30:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69626_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":67635,"nodeType":"UserDefinedTypeName","pathNode":{"id":67634,"name":"Gear.ValueClaim","nameLocations":["8131:4:118","8136:10:118"],"nodeType":"IdentifierPath","referencedDeclaration":69626,"src":"8131:15:118"},"referencedDeclaration":69626,"src":"8131:15:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69626_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":67640,"initialValue":{"baseExpression":{"id":67637,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67613,"src":"8164:7:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69626_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":67639,"indexExpression":{"id":67638,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67622,"src":"8172:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8164:10:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69626_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"8131:43:118"},{"expression":{"id":67651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67641,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67619,"src":"8189:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":67645,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67619,"src":"8221:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":67648,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67636,"src":"8260:5:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69626_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValueClaim_$69626_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}],"expression":{"id":67646,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"8239:4:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":67647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8244:15:118","memberName":"valueClaimBytes","nodeType":"MemberAccess","referencedDeclaration":70079,"src":"8239:20:118","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValueClaim_$69626_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct Gear.ValueClaim memory) pure returns (bytes memory)"}},"id":67649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8239:27:118","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":67643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8208:5:118","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":67642,"name":"bytes","nodeType":"ElementaryTypeName","src":"8208:5:118","typeDescriptions":{}}},"id":67644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8214:6:118","memberName":"concat","nodeType":"MemberAccess","src":"8208:12:118","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":67650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8208:59:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8189:78:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":67652,"nodeType":"ExpressionStatement","src":"8189:78:118"},{"expression":{"arguments":[{"expression":{"id":67654,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67636,"src":"8297:5:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69626_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":67655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8303:11:118","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":69623,"src":"8297:17:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67656,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67636,"src":"8316:5:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69626_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":67657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8322:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69625,"src":"8316:11:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":67653,"name":"_transferValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67772,"src":"8282:14:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":67658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8282:46:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67659,"nodeType":"ExpressionStatement","src":"8282:46:118"},{"eventCall":{"arguments":[{"expression":{"id":67661,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67636,"src":"8361:5:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69626_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":67662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8367:9:118","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":69621,"src":"8361:15:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":67663,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67636,"src":"8378:5:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69626_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":67664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8384:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69625,"src":"8378:11:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":67660,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65106,"src":"8348:12:118","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":67665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8348:42:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67666,"nodeType":"EmitStatement","src":"8343:47:118"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67625,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67622,"src":"8092:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":67626,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67613,"src":"8096:7:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69626_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":67627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8104:6:118","memberName":"length","nodeType":"MemberAccess","src":"8096:14:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8092:18:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67668,"initializationExpression":{"assignments":[67622],"declarations":[{"constant":false,"id":67622,"mutability":"mutable","name":"i","nameLocation":"8085:1:118","nodeType":"VariableDeclaration","scope":67668,"src":"8077:9:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67621,"name":"uint256","nodeType":"ElementaryTypeName","src":"8077:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67624,"initialValue":{"hexValue":"30","id":67623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8089:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8077:13:118"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":67630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8112:3:118","subExpression":{"id":67629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67622,"src":"8112:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67631,"nodeType":"ExpressionStatement","src":"8112:3:118"},"nodeType":"ForStatement","src":"8072:329:118"},{"expression":{"arguments":[{"id":67670,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67619,"src":"8428:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67669,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8418:9:118","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":67671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8418:27:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":67617,"id":67672,"nodeType":"Return","src":"8411:34:118"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"7947:12:118","parameters":{"id":67614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67613,"mutability":"mutable","name":"_claims","nameLocation":"7987:7:118","nodeType":"VariableDeclaration","scope":67674,"src":"7960:34:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69626_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":67611,"nodeType":"UserDefinedTypeName","pathNode":{"id":67610,"name":"Gear.ValueClaim","nameLocations":["7960:4:118","7965:10:118"],"nodeType":"IdentifierPath","referencedDeclaration":69626,"src":"7960:15:118"},"referencedDeclaration":69626,"src":"7960:15:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69626_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":67612,"nodeType":"ArrayTypeName","src":"7960:17:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69626_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"7959:36:118"},"returnParameters":{"id":67617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67674,"src":"8013:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8013:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8012:9:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67689,"nodeType":"FunctionDefinition","src":"8524:243:118","nodes":[],"body":{"id":67688,"nodeType":"Block","src":"8587:180:118","nodes":[],"statements":[{"documentation":"@dev Set inheritor.","expression":{"id":67683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67681,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67049,"src":"8629:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67682,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67676,"src":"8641:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8629:22:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67684,"nodeType":"ExpressionStatement","src":"8629:22:118"},{"documentation":"@dev Transfer all available balance to the inheritor.","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67685,"name":"transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67300,"src":"8728:30:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8728:32:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67687,"nodeType":"ExpressionStatement","src":"8728:32:118"}]},"implemented":true,"kind":"function","modifiers":[{"id":67679,"kind":"modifierInvocation","modifierName":{"id":67678,"name":"whileActive","nameLocations":["8575:11:118"],"nodeType":"IdentifierPath","referencedDeclaration":67163,"src":"8575:11:118"},"nodeType":"ModifierInvocation","src":"8575:11:118"}],"name":"_setInheritor","nameLocation":"8533:13:118","parameters":{"id":67677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67676,"mutability":"mutable","name":"_inheritor","nameLocation":"8555:10:118","nodeType":"VariableDeclaration","scope":67689,"src":"8547:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67675,"name":"address","nodeType":"ElementaryTypeName","src":"8547:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8546:20:118"},"returnParameters":{"id":67680,"nodeType":"ParameterList","parameters":[],"src":"8587:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67703,"nodeType":"FunctionDefinition","src":"8773:235:118","nodes":[],"body":{"id":67702,"nodeType":"Block","src":"8827:181:118","nodes":[],"statements":[{"documentation":"@dev Set state hash.","expression":{"id":67696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67694,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67054,"src":"8870:9:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67695,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67691,"src":"8882:10:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8870:22:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":67697,"nodeType":"ExpressionStatement","src":"8870:22:118"},{"documentation":"@dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":67699,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67054,"src":"8991:9:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":67698,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65043,"src":"8978:12:118","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":67700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8978:23:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67701,"nodeType":"EmitStatement","src":"8973:28:118"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"8782:16:118","parameters":{"id":67692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67691,"mutability":"mutable","name":"_stateHash","nameLocation":"8807:10:118","nodeType":"VariableDeclaration","scope":67703,"src":"8799:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8799:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8798:20:118"},"returnParameters":{"id":67693,"nodeType":"ParameterList","parameters":[],"src":"8827:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67724,"nodeType":"FunctionDefinition","src":"9048:182:118","nodes":[],"body":{"id":67723,"nodeType":"Block","src":"9120:110:118","nodes":[],"statements":[{"assignments":[67712],"declarations":[{"constant":false,"id":67712,"mutability":"mutable","name":"wvaraAddr","nameLocation":"9138:9:118","nodeType":"VariableDeclaration","scope":67723,"src":"9130:17:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67711,"name":"address","nodeType":"ElementaryTypeName","src":"9130:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":67718,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":67714,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67705,"src":"9158:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67713,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65486,"src":"9150:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$65486_$","typeString":"type(contract IRouter)"}},"id":67715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9150:19:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$65486","typeString":"contract IRouter"}},"id":67716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9170:11:118","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":65329,"src":"9150:31:118","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":67717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9150:33:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9130:53:118"},{"expression":{"arguments":[{"id":67720,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67712,"src":"9213:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67719,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65497,"src":"9200:12:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$65497_$","typeString":"type(contract IWrappedVara)"}},"id":67721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9200:23:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"functionReturnParameters":67710,"id":67722,"nodeType":"Return","src":"9193:30:118"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"9057:6:118","parameters":{"id":67706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67705,"mutability":"mutable","name":"routerAddr","nameLocation":"9072:10:118","nodeType":"VariableDeclaration","scope":67724,"src":"9064:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67704,"name":"address","nodeType":"ElementaryTypeName","src":"9064:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9063:20:118"},"returnParameters":{"id":67710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67724,"src":"9106:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"},"typeName":{"id":67708,"nodeType":"UserDefinedTypeName","pathNode":{"id":67707,"name":"IWrappedVara","nameLocations":["9106:12:118"],"nodeType":"IdentifierPath","referencedDeclaration":65497,"src":"9106:12:118"},"referencedDeclaration":65497,"src":"9106:12:118","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"9105:14:118"},"scope":67773,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":67743,"nodeType":"FunctionDefinition","src":"9236:182:118","nodes":[],"body":{"id":67742,"nodeType":"Block","src":"9286:132:118","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67729,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9300:3:118","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9304:6:118","memberName":"sender","nodeType":"MemberAccess","src":"9300:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":67731,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"9314:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9300:21:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":67740,"nodeType":"Block","src":"9370:42:118","statements":[{"expression":{"expression":{"id":67737,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9391:3:118","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9395:6:118","memberName":"sender","nodeType":"MemberAccess","src":"9391:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67728,"id":67739,"nodeType":"Return","src":"9384:17:118"}]},"id":67741,"nodeType":"IfStatement","src":"9296:116:118","trueBody":{"id":67736,"nodeType":"Block","src":"9323:41:118","statements":[{"expression":{"expression":{"id":67733,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"9344:2:118","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":67734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9347:6:118","memberName":"origin","nodeType":"MemberAccess","src":"9344:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67728,"id":67735,"nodeType":"Return","src":"9337:16:118"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_source","nameLocation":"9245:7:118","parameters":{"id":67725,"nodeType":"ParameterList","parameters":[],"src":"9252:2:118"},"returnParameters":{"id":67728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67743,"src":"9277:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67726,"name":"address","nodeType":"ElementaryTypeName","src":"9277:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9276:9:118"},"scope":67773,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":67772,"nodeType":"FunctionDefinition","src":"9424:243:118","nodes":[],"body":{"id":67771,"nodeType":"Block","src":"9492:175:118","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":67752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67750,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67747,"src":"9506:5:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":67751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9515:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9506:10:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67770,"nodeType":"IfStatement","src":"9502:159:118","trueBody":{"id":67769,"nodeType":"Block","src":"9518:143:118","statements":[{"assignments":[67754],"declarations":[{"constant":false,"id":67754,"mutability":"mutable","name":"success","nameLocation":"9537:7:118","nodeType":"VariableDeclaration","scope":67769,"src":"9532:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67753,"name":"bool","nodeType":"ElementaryTypeName","src":"9532:4:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":67763,"initialValue":{"arguments":[{"id":67760,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67745,"src":"9573:11:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67747,"src":"9586:5:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":67756,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67178,"src":"9554:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9554:8:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67755,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67724,"src":"9547:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$65497_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":67758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9547:16:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"id":67759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9564:8:118","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43780,"src":"9547:25:118","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":67762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9547:45:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9532:60:118"},{"expression":{"arguments":[{"id":67765,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67754,"src":"9614:7:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207472616e73666572205756617261","id":67766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9623:26:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_67b810931d6bc27bebc6c54d267fd2daa6fef9e1939bb1712f8d92f0ff26a989","typeString":"literal_string \"failed to transfer WVara\""},"value":"failed to transfer WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67b810931d6bc27bebc6c54d267fd2daa6fef9e1939bb1712f8d92f0ff26a989","typeString":"literal_string \"failed to transfer WVara\""}],"id":67764,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9606:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9606:44:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67768,"nodeType":"ExpressionStatement","src":"9606:44:118"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_transferValue","nameLocation":"9433:14:118","parameters":{"id":67748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67745,"mutability":"mutable","name":"destination","nameLocation":"9456:11:118","nodeType":"VariableDeclaration","scope":67772,"src":"9448:19:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67744,"name":"address","nodeType":"ElementaryTypeName","src":"9448:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67747,"mutability":"mutable","name":"value","nameLocation":"9477:5:118","nodeType":"VariableDeclaration","scope":67772,"src":"9469:13:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67746,"name":"uint128","nodeType":"ElementaryTypeName","src":"9469:7:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9447:36:118"},"returnParameters":{"id":67749,"nodeType":"ParameterList","parameters":[],"src":"9492:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":67044,"name":"IMirror","nameLocations":["422:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":65178,"src":"422:7:118"},"id":67045,"nodeType":"InheritanceSpecifier","src":"422:7:118"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[67773,65178],"name":"Mirror","nameLocation":"412:6:118","scope":67774,"usedErrors":[],"usedEvents":[65043,65054,65065,65072,65077,65088,65099,65106]}],"license":"UNLICENSED"},"id":118} \ No newline at end of file +{"abi":[{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decoder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initializer","type":"address","internalType":"address"},{"name":"_decoder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"performStateTransition","inputs":[{"name":"_transition","type":"tuple","internalType":"struct Gear.StateTransition","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]}]}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"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":"nonpayable"},{"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":"nonpayable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferLockedValueToInheritor","inputs":[],"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}],"bytecode":{"object":"0x608080604052346015576116bb908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806329336f3914610d3957806336a52a1814610d11578063485cc95514610c7c578063701da98e14610c5f578063704ed54214610b4b57806391d5a64c14610aee5780639cb3300514610ac75780639ce110d714610a9f5780639ed323501461043e578063affed0e014610421578063d5624222146101e0578063e43f3433146100d85763f887ea40146100a8575f80fd5b346100d4575f3660031901126100d45760206100c26111ad565b6040516001600160a01b039091168152f35b5f80fd5b346100d4575f3660031901126100d4576001546001600160a01b0316801561019b5760249060206001600160a01b036101176101126111ad565b611200565b16604051938480926370a0823160e01b82523060048301525afa918215610190575f92610155575b506001600160801b03610153921690611293565b005b91506020823d602011610188575b8161017060209383610f96565b810103126100d4579051906001600160801b0361013f565b3d9150610163565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601960248201527f70726f6772616d206973206e6f74207465726d696e61746564000000000000006044820152606490fd5b346100d45760403660031901126100d4576004356001600160401b0381116100d457610210903690600401610e9d565b906024356001600160801b0381168082036100d45760015461023b906001600160a01b031615610ef2565b60045415801590610402575b15610384576102ee575b6004545f1981146102da576020938160017f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c69301600455604051868101913060601b83526034820152603481526102a9605482610f96565b519020936102cf6001600160a01b036102c061125d565b16946040519384938885611095565b0390a2604051908152f35b634e487b7160e01b5f52601160045260245ffd5b6103356020826102fc6111ad565b6001600160a01b0361030d82611200565b16905f61031861125d565b6040516323b872dd60e01b81529687958694859360048501610fcf565b03925af1801561019057610350915f91610355575b50610ff9565b610251565b610377915060203d60201161037d575b61036f8183610f96565b810190610fb7565b8561034a565b503d610365565b60405162461bcd60e51b815260206004820152604a60248201527f696e697469616c697a6572206861736e2774206372656174656420696e69742060448201527f6d657373616765207965743b20616e6420736f75726365206973206e6f7420696064820152693734ba34b0b634bd32b960b11b608482015260a490fd5b5061040b61125d565b6002546001600160a01b03918216911614610247565b346100d4575f3660031901126100d4576020600454604051908152f35b346100d45760203660031901126100d4576004356001600160401b0381116100d45736819003906004810160c06003198401126100d4576104906001600160a01b036104886111ad565b1633146110c3565b61049981611166565b306001600160a01b0390911603610a5a5760a4820135926022190192838112156100d4578201906004820135906001600160401b0382116100d4578160051b360360248401136100d4575f94919360e2193685900301929060605b8688101561070a576024600589901b87010135858112156100d4576004908701019760208901601f198a3603019260c084126100d45760405160a081018181106001600160401b038211176106f6576040528235815261055660408d01610ede565b906020810191825260608d01356001600160401b0381116100d4576020908e010136601f820112156100d45780359061058e82611278565b9161059c6040519384610f96565b80835236602082840101116100d4578f6080905f6020846105d0958260409801838a01378701015283860194855201610eca565b6060840190815297607f1901126100d45760405193604085018581106001600160401b038211176106f65760405260a08f01358086529e60c00135936001600160e01b0319851685036100d4576001986106ad6034605460209996876106d39a8c9a8b809b019182528260808201525197519251965191519063ffffffff60e01b905116908a6040519889958287019b8c526001600160601b03199060601b1660408701528051918291018787015e8401926001600160801b03199060801b16858401526064830152608482015203016014810184520182610f96565b5190206040519582879351918291018585015e8201908382015203018084520182610f96565b996106e8576106e19061155f565b01966104f4565b6106f1906113dc565b6106e1565b634e487b7160e01b5f52604160045260245ffd5b60208151910120916084820135908112156100d4578101906004820135926001600160401b0384116100d45760608402360360248401136100d4576060945f5b85811015610899576004606082028601016060601f1982360301126100d45760405190606082018281106001600160401b038211176106f657604052602081013591828152604082019961079d8b610ede565b92836020840152606001926107b184610eca565b6040819401526040519260208401918683526001600160601b03199060601b1660408501526001600160801b03199060801b166054840152604483526107f8606484610f96565b60405192828493516020819201602086015e83019060208201905f8252519283915e016020015f815203601f19810182526108339082610f96565b9861083d90611166565b6108468261117a565b61084f91611293565b6108589061117a565b6040519182526001600160801b0316602082015260407fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578391a160010161074a565b50855160208701206044840192906001600160a01b036108b885611166565b16610988575b6020946108ee60646108e76108e160035497602486013580990361095657611166565b97611166565b920161117a565b9060405194878601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b166068840152607883015260988201526098815261094b60b882610f96565b519020604051908152f35b886003557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c0809308b6040518b8152a1611166565b61099184611166565b60015495906109a96001600160a01b03881615610ef2565b6001600160a01b03166001600160a01b0319969096168617600155851561019b57602460206001600160a01b036109e16101126111ad565b16604051928380926370a0823160e01b82523060048301525afa908115610190575f91610a27575b506020966001600160801b03610a20921690611293565b94506108be565b90506020813d602011610a52575b81610a4260209383610f96565b810103126100d457516020610a09565b3d9150610a35565b60405162461bcd60e51b815260206004820152601d60248201527f6163746f724964206d757374206265207468697320636f6e74726163740000006044820152606490fd5b346100d4575f3660031901126100d4576002546040516001600160a01b039091168152602090f35b346100d4575f3660031901126100d4575f546040516001600160a01b039091168152602090f35b346100d45760203660031901126100d457610b0c6004541515610f36565b6001600160a01b03610b1c61125d565b167f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860206040516004358152a2005b346100d45760203660031901126100d4576004356001600160801b038116908181036100d457600154610b87906001600160a01b031615610ef2565b81610bba575b7f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667602083604051908152a1005b906020610c0292610bc96111ad565b6001600160a01b03610bda82611200565b16905f610be561125d565b6040516323b872dd60e01b81529788958694859360048501610fcf565b03925af190811561019057610c416020927f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667945f91610c485750610ff9565b9150610b8d565b6103779150843d861161037d5761036f8183610f96565b346100d4575f3660031901126100d4576020600354604051908152f35b346100d45760403660031901126100d4576004356001600160a01b038116908190036100d4576024356001600160a01b03811691908290036100d457610ccb6001600160a01b036104886111ad565b60025490610ce26001600160a01b0383161561110f565b5f5491610cf86001600160a01b0384161561110f565b6001600160a01b03199081169190911760025516175f55005b346100d4575f3660031901126100d4576001546040516001600160a01b039091168152602090f35b346100d45760603660031901126100d4576024356001600160401b0381116100d457610d69903690600401610e9d565b90604435916001600160801b0383168084036100d457600154610d95906001600160a01b031615610ef2565b610da26004541515610f36565b610df2575b7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f91610ded6001600160a01b03610ddc61125d565b169460405193849360043585611095565b0390a2005b610e3a91602084610e016111ad565b6001600160a01b03610e1282611200565b16905f610e1d61125d565b6040516323b872dd60e01b81529889958694859360048501610fcf565b03925af1928315610190577fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f93610e77915f91610e7e5750610ff9565b9150610da7565b610e97915060203d60201161037d5761036f8183610f96565b8661034a565b9181601f840112156100d4578235916001600160401b0383116100d457602083818601950101116100d457565b35906001600160801b03821682036100d457565b35906001600160a01b03821682036100d457565b15610ef957565b60405162461bcd60e51b81526020600482015260156024820152741c1c9bd9dc985b481a5cc81d195c9b5a5b985d1959605a1b6044820152606490fd5b15610f3d57565b60405162461bcd60e51b815260206004820152602b60248201527f696e697469616c697a6572206861736e2774206372656174656420696e69742060448201526a1b595cdcd859d9481e595d60aa1b6064820152608490fd5b90601f801991011681019081106001600160401b038211176106f657604052565b908160209103126100d4575180151581036100d45790565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b1561100057565b60405162461bcd60e51b815260206004820152604160248201527f6661696c656420746f207472616e73666572206e6f6e2d7a65726f20616d6f7560448201527f6e74206f662057566172612066726f6d20736f7572636520746f20726f7574656064820152603960f91b608482015260a490fd5b908060209392818452848401375f828201840152601f01601f1916010190565b926040926110bc916001600160801b03939796978652606060208701526060860191611075565b9416910152565b156110ca57565b60405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f742074686520726f7574657200000000000000006044820152606490fd5b1561111657565b60405162461bcd60e51b815260206004820152602260248201527f696e697469616c697a657220636f756c64206f6e6c7920626520736574206f6e604482015261636560f01b6064820152608490fd5b356001600160a01b03811681036100d45790565b356001600160801b03811681036100d45790565b908160209103126100d457516001600160a01b03811681036100d45790565b6040516303e21fa960e61b8152602081600481305afa908115610190575f916111d4575090565b6111f6915060203d6020116111f9575b6111ee8183610f96565b81019061118e565b90565b503d6111e4565b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115610190575f9161123e575b506001600160a01b031690565b611257915060203d6020116111f9576111ee8183610f96565b5f611231565b5f54336001600160a01b0390911603611274573290565b3390565b6001600160401b0381116106f657601f01601f191660200190565b906001600160801b0316806112a6575050565b60209060446001600160a01b036112be6101126111ad565b60405163a9059cbb60e01b81526001600160a01b0390961660048701526024860193909352849283915f91165af1908115610190575f91611347575b501561130257565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207472616e7366657220575661726100000000000000006044820152606490fd5b611360915060203d60201161037d5761036f8183610f96565b5f6112fa565b903590601e19813603018212156100d457018035906001600160401b0382116100d4576020019181360383136100d457565b356001600160e01b0319811681036100d45790565b3d156113d7573d906113be82611278565b916113cc6040519384610f96565b82523d5f602084013e565b606090565b602081016113e981611166565b9061140160608401926113fb8461117a565b90611293565b5f546001600160a01b0316908161149a575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c69061144f6114476040850185611366565b91909261117a565b60806001600160e01b031961146660a08801611398565b16956001600160801b03611487604051968796606088526060880191611075565b93166020850152013560408301520390a2565b5f916114a68392611166565b826115406114b76040890189611366565b6114c38993929361117a565b6114cf60a08c01611398565b604051639649744960e01b602082019081526001600160a01b03909816602482015260a060448201529485936001600160801b03916115129160c4870191611075565b9216606484015260808c013560848401526001600160e01b03191660a483015203601f198101835282610f96565b51926207a120f161154f6113ad565b5061155b575f80611413565b5050565b5f546001600160a01b0316806115d9575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736115d46115a160208401611166565b6115ae6040850185611366565b6115bd6060879593950161117a565b9060405194859460018060a01b0316973585611095565b0390a2565b5f809183826115ea60208301611166565b6116686115fa6040850185611366565b92906001600160801b036116536116136060890161117a565b6040516374fad4ef60e01b60208201908152993560248201526001600160a01b03909516604486015260806064860152939586949360a486019190611075565b9116608483015203601f198101835282610f96565b51926207a120f16116776113ad565b50611682575f611570565b5056fea26469706673582212209bc996a1c5046854e37ed8667385456671241a48c2291eb06d9ae902a9513d1664736f6c634300081c0033","sourceMap":"403:9266:118:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806329336f3914610d3957806336a52a1814610d11578063485cc95514610c7c578063701da98e14610c5f578063704ed54214610b4b57806391d5a64c14610aee5780639cb3300514610ac75780639ce110d714610a9f5780639ed323501461043e578063affed0e014610421578063d5624222146101e0578063e43f3433146100d85763f887ea40146100a8575f80fd5b346100d4575f3660031901126100d45760206100c26111ad565b6040516001600160a01b039091168152f35b5f80fd5b346100d4575f3660031901126100d4576001546001600160a01b0316801561019b5760249060206001600160a01b036101176101126111ad565b611200565b16604051938480926370a0823160e01b82523060048301525afa918215610190575f92610155575b506001600160801b03610153921690611293565b005b91506020823d602011610188575b8161017060209383610f96565b810103126100d4579051906001600160801b0361013f565b3d9150610163565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601960248201527f70726f6772616d206973206e6f74207465726d696e61746564000000000000006044820152606490fd5b346100d45760403660031901126100d4576004356001600160401b0381116100d457610210903690600401610e9d565b906024356001600160801b0381168082036100d45760015461023b906001600160a01b031615610ef2565b60045415801590610402575b15610384576102ee575b6004545f1981146102da576020938160017f3527a119fe7f25d965cb7abc58139f031e8909b8592488c7926862d569e435c69301600455604051868101913060601b83526034820152603481526102a9605482610f96565b519020936102cf6001600160a01b036102c061125d565b16946040519384938885611095565b0390a2604051908152f35b634e487b7160e01b5f52601160045260245ffd5b6103356020826102fc6111ad565b6001600160a01b0361030d82611200565b16905f61031861125d565b6040516323b872dd60e01b81529687958694859360048501610fcf565b03925af1801561019057610350915f91610355575b50610ff9565b610251565b610377915060203d60201161037d575b61036f8183610f96565b810190610fb7565b8561034a565b503d610365565b60405162461bcd60e51b815260206004820152604a60248201527f696e697469616c697a6572206861736e2774206372656174656420696e69742060448201527f6d657373616765207965743b20616e6420736f75726365206973206e6f7420696064820152693734ba34b0b634bd32b960b11b608482015260a490fd5b5061040b61125d565b6002546001600160a01b03918216911614610247565b346100d4575f3660031901126100d4576020600454604051908152f35b346100d45760203660031901126100d4576004356001600160401b0381116100d45736819003906004810160c06003198401126100d4576104906001600160a01b036104886111ad565b1633146110c3565b61049981611166565b306001600160a01b0390911603610a5a5760a4820135926022190192838112156100d4578201906004820135906001600160401b0382116100d4578160051b360360248401136100d4575f94919360e2193685900301929060605b8688101561070a576024600589901b87010135858112156100d4576004908701019760208901601f198a3603019260c084126100d45760405160a081018181106001600160401b038211176106f6576040528235815261055660408d01610ede565b906020810191825260608d01356001600160401b0381116100d4576020908e010136601f820112156100d45780359061058e82611278565b9161059c6040519384610f96565b80835236602082840101116100d4578f6080905f6020846105d0958260409801838a01378701015283860194855201610eca565b6060840190815297607f1901126100d45760405193604085018581106001600160401b038211176106f65760405260a08f01358086529e60c00135936001600160e01b0319851685036100d4576001986106ad6034605460209996876106d39a8c9a8b809b019182528260808201525197519251965191519063ffffffff60e01b905116908a6040519889958287019b8c526001600160601b03199060601b1660408701528051918291018787015e8401926001600160801b03199060801b16858401526064830152608482015203016014810184520182610f96565b5190206040519582879351918291018585015e8201908382015203018084520182610f96565b996106e8576106e19061155f565b01966104f4565b6106f1906113dc565b6106e1565b634e487b7160e01b5f52604160045260245ffd5b60208151910120916084820135908112156100d4578101906004820135926001600160401b0384116100d45760608402360360248401136100d4576060945f5b85811015610899576004606082028601016060601f1982360301126100d45760405190606082018281106001600160401b038211176106f657604052602081013591828152604082019961079d8b610ede565b92836020840152606001926107b184610eca565b6040819401526040519260208401918683526001600160601b03199060601b1660408501526001600160801b03199060801b166054840152604483526107f8606484610f96565b60405192828493516020819201602086015e83019060208201905f8252519283915e016020015f815203601f19810182526108339082610f96565b9861083d90611166565b6108468261117a565b61084f91611293565b6108589061117a565b6040519182526001600160801b0316602082015260407fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578391a160010161074a565b50855160208701206044840192906001600160a01b036108b885611166565b16610988575b6020946108ee60646108e76108e160035497602486013580990361095657611166565b97611166565b920161117a565b9060405194878601966001600160601b03199060601b16875260348601526001600160601b03199060601b1660548501526001600160801b03199060801b166068840152607883015260988201526098815261094b60b882610f96565b519020604051908152f35b886003557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c0809308b6040518b8152a1611166565b61099184611166565b60015495906109a96001600160a01b03881615610ef2565b6001600160a01b03166001600160a01b0319969096168617600155851561019b57602460206001600160a01b036109e16101126111ad565b16604051928380926370a0823160e01b82523060048301525afa908115610190575f91610a27575b506020966001600160801b03610a20921690611293565b94506108be565b90506020813d602011610a52575b81610a4260209383610f96565b810103126100d457516020610a09565b3d9150610a35565b60405162461bcd60e51b815260206004820152601d60248201527f6163746f724964206d757374206265207468697320636f6e74726163740000006044820152606490fd5b346100d4575f3660031901126100d4576002546040516001600160a01b039091168152602090f35b346100d4575f3660031901126100d4575f546040516001600160a01b039091168152602090f35b346100d45760203660031901126100d457610b0c6004541515610f36565b6001600160a01b03610b1c61125d565b167f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860206040516004358152a2005b346100d45760203660031901126100d4576004356001600160801b038116908181036100d457600154610b87906001600160a01b031615610ef2565b81610bba575b7f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667602083604051908152a1005b906020610c0292610bc96111ad565b6001600160a01b03610bda82611200565b16905f610be561125d565b6040516323b872dd60e01b81529788958694859360048501610fcf565b03925af190811561019057610c416020927f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667945f91610c485750610ff9565b9150610b8d565b6103779150843d861161037d5761036f8183610f96565b346100d4575f3660031901126100d4576020600354604051908152f35b346100d45760403660031901126100d4576004356001600160a01b038116908190036100d4576024356001600160a01b03811691908290036100d457610ccb6001600160a01b036104886111ad565b60025490610ce26001600160a01b0383161561110f565b5f5491610cf86001600160a01b0384161561110f565b6001600160a01b03199081169190911760025516175f55005b346100d4575f3660031901126100d4576001546040516001600160a01b039091168152602090f35b346100d45760603660031901126100d4576024356001600160401b0381116100d457610d69903690600401610e9d565b90604435916001600160801b0383168084036100d457600154610d95906001600160a01b031615610ef2565b610da26004541515610f36565b610df2575b7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f91610ded6001600160a01b03610ddc61125d565b169460405193849360043585611095565b0390a2005b610e3a91602084610e016111ad565b6001600160a01b03610e1282611200565b16905f610e1d61125d565b6040516323b872dd60e01b81529889958694859360048501610fcf565b03925af1928315610190577fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f93610e77915f91610e7e5750610ff9565b9150610da7565b610e97915060203d60201161037d5761036f8183610f96565b8661034a565b9181601f840112156100d4578235916001600160401b0383116100d457602083818601950101116100d457565b35906001600160801b03821682036100d457565b35906001600160a01b03821682036100d457565b15610ef957565b60405162461bcd60e51b81526020600482015260156024820152741c1c9bd9dc985b481a5cc81d195c9b5a5b985d1959605a1b6044820152606490fd5b15610f3d57565b60405162461bcd60e51b815260206004820152602b60248201527f696e697469616c697a6572206861736e2774206372656174656420696e69742060448201526a1b595cdcd859d9481e595d60aa1b6064820152608490fd5b90601f801991011681019081106001600160401b038211176106f657604052565b908160209103126100d4575180151581036100d45790565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b1561100057565b60405162461bcd60e51b815260206004820152604160248201527f6661696c656420746f207472616e73666572206e6f6e2d7a65726f20616d6f7560448201527f6e74206f662057566172612066726f6d20736f7572636520746f20726f7574656064820152603960f91b608482015260a490fd5b908060209392818452848401375f828201840152601f01601f1916010190565b926040926110bc916001600160801b03939796978652606060208701526060860191611075565b9416910152565b156110ca57565b60405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f742074686520726f7574657200000000000000006044820152606490fd5b1561111657565b60405162461bcd60e51b815260206004820152602260248201527f696e697469616c697a657220636f756c64206f6e6c7920626520736574206f6e604482015261636560f01b6064820152608490fd5b356001600160a01b03811681036100d45790565b356001600160801b03811681036100d45790565b908160209103126100d457516001600160a01b03811681036100d45790565b6040516303e21fa960e61b8152602081600481305afa908115610190575f916111d4575090565b6111f6915060203d6020116111f9575b6111ee8183610f96565b81019061118e565b90565b503d6111e4565b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115610190575f9161123e575b506001600160a01b031690565b611257915060203d6020116111f9576111ee8183610f96565b5f611231565b5f54336001600160a01b0390911603611274573290565b3390565b6001600160401b0381116106f657601f01601f191660200190565b906001600160801b0316806112a6575050565b60209060446001600160a01b036112be6101126111ad565b60405163a9059cbb60e01b81526001600160a01b0390961660048701526024860193909352849283915f91165af1908115610190575f91611347575b501561130257565b60405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207472616e7366657220575661726100000000000000006044820152606490fd5b611360915060203d60201161037d5761036f8183610f96565b5f6112fa565b903590601e19813603018212156100d457018035906001600160401b0382116100d4576020019181360383136100d457565b356001600160e01b0319811681036100d45790565b3d156113d7573d906113be82611278565b916113cc6040519384610f96565b82523d5f602084013e565b606090565b602081016113e981611166565b9061140160608401926113fb8461117a565b90611293565b5f546001600160a01b0316908161149a575b50507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c69061144f6114476040850185611366565b91909261117a565b60806001600160e01b031961146660a08801611398565b16956001600160801b03611487604051968796606088526060880191611075565b93166020850152013560408301520390a2565b5f916114a68392611166565b826115406114b76040890189611366565b6114c38993929361117a565b6114cf60a08c01611398565b604051639649744960e01b602082019081526001600160a01b03909816602482015260a060448201529485936001600160801b03916115129160c4870191611075565b9216606484015260808c013560848401526001600160e01b03191660a483015203601f198101835282610f96565b51926207a120f161154f6113ad565b5061155b575f80611413565b5050565b5f546001600160a01b0316806115d9575b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736115d46115a160208401611166565b6115ae6040850185611366565b6115bd6060879593950161117a565b9060405194859460018060a01b0316973585611095565b0390a2565b5f809183826115ea60208301611166565b6116686115fa6040850185611366565b92906001600160801b036116536116136060890161117a565b6040516374fad4ef60e01b60208201908152993560248201526001600160a01b03909516604486015260806064860152939586949360a486019190611075565b9116608483015203601f198101835282610f96565b51926207a120f16116776113ad565b50611682575f611570565b5056fea26469706673582212209bc996a1c5046854e37ed8667385456671241a48c2291eb06d9ae902a9513d1664736f6c634300081c0033","sourceMap":"403:9266:118:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;1633:23;;403:9266;;3811:41;;403:9266;-1:-1:-1;;;;;3811:16:118;3818:8;;:::i;:::-;3811:16;:::i;:::-;403:9266;;;;;;;;;;3811:41;;3846:4;403:9266;3811:41;;403:9266;3811:41;;;;;;;403:9266;3811:41;;;403:9266;;-1:-1:-1;;;;;3888:16:118;403:9266;;3888:16;;:::i;:::-;403:9266;3811:41;;;403:9266;3811:41;;403:9266;3811:41;;;;;;403:9266;3811:41;;;:::i;:::-;;;403:9266;;;;;;;-1:-1:-1;;;;;3811:41:118;;;;;-1:-1:-1;3811:41:118;;;403:9266;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;2492:57;;-1:-1:-1;;;;;403:9266:118;2500:23;2492:57;:::i;:::-;403:9266;;2204:9;;;:37;;;403:9266;;;;1103:259;;403:9266;;;-1:-1:-1;;403:9266:118;;;;;;;2500:9;3049:57;403:9266;;;;;;2992:40;;;3017:4;;403:9266;;;;;;;;;2992:40;;;;;;:::i;:::-;403:9266;2982:51;;;3049:57;-1:-1:-1;;;;;3078:9:118;;:::i;:::-;403:9266;;;;3049:57;;;;;;:::i;:::-;;;;403:9266;;;;;;;;;;;;;;;;;;1103:259;1191:61;403:9266;1154:8;;;:::i;:::-;-1:-1:-1;;;;;1191:18:118;;;:::i;:::-;403:9266;1223:9;403:9266;1223:9;;:::i;:::-;403:9266;;-1:-1:-1;;;1191:61:118;;403:9266;;;;;;;;1191:61;;;:::i;:::-;;;;;;;;;1266:85;1191:61;403:9266;1191:61;;;1103:259;1266:85;;:::i;:::-;1103:259;;1191:61;;;;403:9266;1191:61;403:9266;1191:61;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;403:9266;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;2204:37;2217:9;;;:::i;:::-;2230:11;403:9266;-1:-1:-1;;;;;403:9266:118;;;;;2217:24;2204:37;;403:9266;;;;;;-1:-1:-1;;403:9266:118;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;860:59;-1:-1:-1;;;;;882:8:118;;:::i;:::-;403:9266;868:10;:22;860:59;:::i;:::-;4564:19;;;:::i;:::-;4595:4;-1:-1:-1;;;;;403:9266:118;;;4564:36;403:9266;;4733:20;;;403:9266;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;5828:27;;-1:-1:-1;;403:9266:118;;;;;;5828:27;403:9266;5908:3;5886:20;;;;;;403:9266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4733:20;403:9266;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;4733:20;403:9266;;;;;;;;;;;-1:-1:-1;;;;;;403:9266:118;;;;;;;;4318:243:122;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;;4417:15:122;;403:9266:118;;;;;;;;;;;;;;;4318:243:122;;;;;;403:9266:118;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;4318:243:122;;;;;;;;;;:::i;:::-;403:9266:118;4295:276:122;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6144:28;;;6214:7;;;:::i;:::-;403:9266;5871:13;;;6140:162;6279:7;;;:::i;:::-;6140:162;;403:9266;;;;;;;;;;;;5886:20;403:9266;;;;;6329:25;4848:23;;;;403:9266;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;8077:13;403:9266;8112:3;8092:18;;;;;;403:9266;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;8303:65:122;403:9266:118;8303:65:122;;403:9266:118;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;8303:65:122;;;;;;:::i;:::-;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8297:17;;;;:::i;:::-;8316:11;;;:::i;:::-;;;;:::i;:::-;8378;;;:::i;:::-;403:9266;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;8348:42;;;403:9266;;8077:13;;8092:18;-1:-1:-1;403:9266:118;;;;;8418:27;403:9266;4932:21;;;;-1:-1:-1;;;;;4932:21:118;;;:::i;:::-;403:9266;4928:102;;8072:329;403:9266;;5422:26;8303:65:122;5387:21:118;5316:19;5095:9;403:9266;5108:24;;;;403:9266;5095:37;;;5091:110;;5316:19;:::i;:::-;5387:21;;:::i;:::-;5422:26;;;:::i;:::-;403:9266;;;5047:101:122;;;;403:9266:118;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;;5047:101:122;;;;;;:::i;:::-;403:9266:118;5024:134:122;;403:9266:118;;;;;;5091:110;403:9266;5095:9;403:9266;8978:23;403:9266;;;;;;8978:23;5316:19;:::i;4928:102::-;4997:21;;;:::i;:::-;403:9266;;;;2492:57;-1:-1:-1;;;;;403:9266:118;;2500:23;2492:57;:::i;:::-;-1:-1:-1;;;;;403:9266:118;-1:-1:-1;;;;;;403:9266:118;;;;;;;;1633:23;;403:9266;;3811:41;403:9266;-1:-1:-1;;;;;3811:16:118;3818:8;;:::i;3811:16::-;403:9266;;;;;;;;;;3811:41;;4595:4;403:9266;3811:41;;403:9266;3811:41;;;;;;;403:9266;3811:41;;;4928:102;403:9266;;;-1:-1:-1;;;;;3888:16:118;403:9266;;3888:16;;:::i;:::-;4928:102;;;;3811:41;;;403:9266;3811:41;;403:9266;3811:41;;;;;;403:9266;3811:41;;;:::i;:::-;;;403:9266;;;;;;3811:41;;;;;-1:-1:-1;3811:41:118;;403:9266;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;664:26;403:9266;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;1874:65;403:9266;;1882:9;;1874:65;:::i;:::-;-1:-1:-1;;;;;3536:9:118;;:::i;:::-;403:9266;3501:45;403:9266;;;;;;;3501:45;403:9266;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;2492:57;;-1:-1:-1;;;;;403:9266:118;2500:23;2492:57;:::i;:::-;1107:10;1103:259;;403:9266;3667:39;403:9266;;;;;;;3667:39;403:9266;1103:259;1154:8;403:9266;1191:61;1154:8;;;:::i;:::-;-1:-1:-1;;;;;1191:18:118;;;:::i;:::-;403:9266;1223:9;403:9266;1223:9;;:::i;:::-;403:9266;;-1:-1:-1;;;1191:61:118;;403:9266;;;;;;;;1191:61;;;:::i;:::-;;;;;;;;;;1266:85;403:9266;1191:61;3667:39;1191:61;403:9266;1191:61;;;1266:85;;:::i;:::-;1103:259;;;;1191:61;;;;;;;;;;;;;;:::i;403:9266::-;;;;;;-1:-1:-1;;403:9266:118;;;;;696:24;403:9266;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;860:59;-1:-1:-1;;;;;882:8:118;;:::i;860:59::-;4066:11;403:9266;;4058:72;-1:-1:-1;;;;;403:9266:118;;4066:25;4058:72;:::i;:::-;403:9266;;;4140:68;-1:-1:-1;;;;;403:9266:118;;4148:21;4140:68;:::i;:::-;-1:-1:-1;;;;;;403:9266:118;;;;;;;4066:11;403:9266;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;-1:-1:-1;;403:9266:118;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;2492:57;;-1:-1:-1;;;;;403:9266:118;2500:23;2492:57;:::i;:::-;1874:65;403:9266;;1882:9;;1874:65;:::i;:::-;1103:259;;403:9266;3338:63;;;-1:-1:-1;;;;;3373:9:118;;:::i;:::-;403:9266;;;;;;;;;3338:63;;:::i;:::-;;;;403:9266;1103:259;1191:61;1154:8;403:9266;1154:8;;;:::i;:::-;-1:-1:-1;;;;;1191:18:118;;;:::i;:::-;403:9266;1223:9;403:9266;1223:9;;:::i;:::-;403:9266;;-1:-1:-1;;;1191:61:118;;403:9266;;;;;;;;1191:61;;;:::i;:::-;;;;;;;;;;3338:63;1191:61;1266:85;1191:61;403:9266;1191:61;;;1266:85;;:::i;:::-;1103:259;;;;1191:61;;;;403:9266;1191:61;403:9266;1191:61;;;;;;;:::i;:::-;;;;403:9266;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;403:9266:118;;;;;;:::o;:::-;;;-1:-1:-1;;;;;403:9266:118;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;-1:-1:-1;403:9266:118;;;;;;;;-1:-1:-1;;403:9266:118;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;403:9266:118;;;;;;;;;;;;;;;;;-1:-1:-1;;;403:9266:118;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;:::o;:::-;;-1:-1:-1;;;;;403:9266:118;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;:::o;2606:108::-;403:9266;;-1:-1:-1;;;2671:36:118;;;403:9266;2671:36;403:9266;2692:4;2671:36;;;;;;;-1:-1:-1;2671:36:118;;;2664:43;2606:108;:::o;2671:36::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2606:108;:::o;2671:36::-;;;;;9048:182;403:9266;;-1:-1:-1;;;9150:33:118;;403:9266;9150:33;;403:9266;;9150:33;;403:9266;;-1:-1:-1;;;;;403:9266:118;9150:33;;;;;;;-1:-1:-1;9150:33:118;;;9048:182;-1:-1:-1;;;;;;403:9266:118;;9048:182::o;9150:33::-;;;;;;;;;;;;;;:::i;:::-;;;;9236:182;403:9266;;9300:10;-1:-1:-1;;;;;403:9266:118;;;9300:21;403:9266;;9344:9;9337:16;:::o;9296:116::-;9300:10;9384:17;:::o;403:9266::-;-1:-1:-1;;;;;403:9266:118;;;;;;-1:-1:-1;;403:9266:118;;;;:::o;9424:243::-;;-1:-1:-1;;;;;403:9266:118;9506:10;9502:159;;9424:243;;:::o;9502:159::-;403:9266;;9547:45;-1:-1:-1;;;;;9547:16:118;9554:8;;:::i;9547:16::-;403:9266;;-1:-1:-1;;;9547:45:118;;-1:-1:-1;;;;;403:9266:118;;;9547:45;;;403:9266;;;;;;;;;;;;9515:1;;403:9266;9547:45;;;;;;;9515:1;9547:45;;;9502:159;403:9266;;;;9424:243::o;403:9266::-;;;-1:-1:-1;;;403:9266:118;;;9547:45;403:9266;;;;;;;;;9547:45;403:9266;;;;;;9547:45;;;;403:9266;9547:45;403:9266;9547:45;;;;;;;:::i;:::-;;;;403:9266;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;403:9266:118;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;403:9266:118;;;;:::o;:::-;;;:::o;7148:784::-;7240:20;;;;;;:::i;:::-;7262:14;;;;;;;;;:::i;:::-;;;:::i;:::-;7292:7;403:9266;-1:-1:-1;;;;;403:9266:118;;;7288:529;;7148:784;7838:16;;7832:93;7838:16;7856:14;7838:16;;;;;;:::i;:::-;7856:14;;;;:::i;:::-;7872:21;-1:-1:-1;;;;;;7898:26:118;;;;;:::i;:::-;403:9266;;-1:-1:-1;;;;;403:9266:118;7838:16;403:9266;;;;7262:14;403:9266;;7262:14;403:9266;;;;:::i;:::-;;;7240:20;403:9266;;;7872:21;403:9266;7838:16;403:9266;;;7832:93;;;7148:784::o;7288:529::-;7292:7;7446:20;;;;;:::i;:::-;7484:16;7353:279;7484:16;;;;;;:::i;:::-;7518:14;;;;;;:::i;:::-;7592:26;;;;;:::i;:::-;7484:16;403:9266;-1:-1:-1;;;7240:20:118;7353:279;;;;;-1:-1:-1;;;;;403:9266:118;;;7353:279;;;403:9266;;;;;;;;;-1:-1:-1;;;;;403:9266:118;;;;;;;;:::i;:::-;;;;;;;7550:21;;;403:9266;;;;;-1:-1:-1;;;;;;403:9266:118;;;;;7353:279;-1:-1:-1;;7353:279:118;;;;;;:::i;:::-;7704:36;;7722:7;7704:36;;;:::i;:::-;;7755:52;;7288:529;;;;7755:52;7786:7;;:::o;6420:653::-;6505:7;403:9266;-1:-1:-1;;;;;403:9266:118;;6501:474;;6420:653;7011:20;6990:76;;7011:20;;;;;:::i;:::-;7033:16;;;;;;:::i;:::-;7051:14;;;;;;;;:::i;:::-;403:9266;7033:16;403:9266;;;;;;;;;;;;6990:76;;:::i;:::-;;;;6420:653::o;6501:474::-;6505:7;6690:20;;;;;;;;;:::i;:::-;6566:224;6728:16;;;;;;:::i;:::-;6762:14;;-1:-1:-1;;;;;403:9266:118;6762:14;;;;;:::i;:::-;6728:16;403:9266;-1:-1:-1;;;6690:20:118;6566:224;;;;;403:9266;;6566:224;;;403:9266;-1:-1:-1;;;;;403:9266:118;;;;;;;;;;;;;;;;;;;;;6566:224;403:9266;:::i;:::-;;;;;;;6566:224;403:9266;;6566:224;;;;;;:::i;:::-;6862:36;;6880:7;6862:36;;;:::i;:::-;;6913:52;;6501:474;;;6913:52;6944:7;:::o","linkReferences":{}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","decoder()":"9cb33005","executableBalanceTopUp(uint128)":"704ed542","inheritor()":"36a52a18","initialize(address,address)":"485cc955","initializer()":"9ce110d7","nonce()":"affed0e0","performStateTransition((address,bytes32,address,uint128,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4))[]))":"9ed32350","router()":"f887ea40","sendMessage(bytes,uint128)":"d5624222","sendReply(bytes32,bytes,uint128)":"29336f39","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":[],\"name\":\"decoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_decoder\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"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 Gear.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 Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":{},\"stateVariables\":{\"initializer\":{\"details\":\"This nonce is the source for message ids unique generations. Must be bumped on each send. Zeroed nonce is always represent init message by eligible account.\"}},\"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/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0\",\"dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x1899463c32e174ebde503846dd1b40ddb6d6ba15e21d68b21b8151e97af35a5e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c91227968491548c006b70f1de87bb1b67a83d72d05faf19ba09ddfe27de3f6\",\"dweb:/ipfs/QmeXXQd2Wk1Jp1rvbysD1hZb3QVXR3sPxkU8UKBfwrKmkm\"]},\"src/IMirrorDecoder.sol\":{\"keccak256\":\"0xdc8493f52a809ac9470823d4c13f329845a10aa90a73bddd791137f3bd8849ac\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb625d21f8554f1a973a4ace5b5db4cc696b71605592a22eab44576d020ff70d\",\"dweb:/ipfs/Qma98jtpbJ4zYoBHwsCCUtgkeEVZsPFYUZiGwnPSpKsdqx\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b\",\"dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x494ced7f53fdc22cf426db303e63345a1022aff1c2ddcb378a5cfd8a1fb8f2d9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://11392c8f9e2a34094e8ace4f34fadce3f1d6a53679797e69d251fead6383969f\",\"dweb:/ipfs/QmRsY5xdxWgtmHArNQqBScABFyMehg1HcoeTjjeysazv1E\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831\",\"dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"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":[],"stateMutability":"view","type":"function","name":"decoder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_decoder","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initializer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct Gear.StateTransition","name":"_transition","type":"tuple","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]}]}]}],"stateMutability":"nonpayable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":"nonpayable","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":"nonpayable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"transferLockedValueToInheritor"}],"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/","symbiotic-core/=lib/symbiotic-core/"],"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":"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae","urls":["bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0","dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x1899463c32e174ebde503846dd1b40ddb6d6ba15e21d68b21b8151e97af35a5e","urls":["bzz-raw://3c91227968491548c006b70f1de87bb1b67a83d72d05faf19ba09ddfe27de3f6","dweb:/ipfs/QmeXXQd2Wk1Jp1rvbysD1hZb3QVXR3sPxkU8UKBfwrKmkm"],"license":"UNLICENSED"},"src/IMirrorDecoder.sol":{"keccak256":"0xdc8493f52a809ac9470823d4c13f329845a10aa90a73bddd791137f3bd8849ac","urls":["bzz-raw://fb625d21f8554f1a973a4ace5b5db4cc696b71605592a22eab44576d020ff70d","dweb:/ipfs/Qma98jtpbJ4zYoBHwsCCUtgkeEVZsPFYUZiGwnPSpKsdqx"],"license":"UNLICENSED"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf","urls":["bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b","dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Mirror.sol":{"keccak256":"0x494ced7f53fdc22cf426db303e63345a1022aff1c2ddcb378a5cfd8a1fb8f2d9","urls":["bzz-raw://11392c8f9e2a34094e8ace4f34fadce3f1d6a53679797e69d251fead6383969f","dweb:/ipfs/QmRsY5xdxWgtmHArNQqBScABFyMehg1HcoeTjjeysazv1E"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de","urls":["bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831","dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[{"astId":67047,"contract":"src/Mirror.sol:Mirror","label":"decoder","offset":0,"slot":"0","type":"t_address"},{"astId":67049,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":0,"slot":"1","type":"t_address"},{"astId":67052,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"2","type":"t_address"},{"astId":67054,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"3","type":"t_bytes32"},{"astId":67056,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"4","type":"t_uint256"}],"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":67774,"exportedSymbols":{"Clones":[42512],"Gear":[70148],"IMirror":[65178],"IMirrorDecoder":[65215],"IMirrorProxy":[65223],"IRouter":[65486],"IWrappedVara":[65497],"Mirror":[67773]},"nodeType":"SourceUnit","src":"39:9631:118","nodes":[{"id":67029,"nodeType":"PragmaDirective","src":"39:24:118","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":67031,"nodeType":"ImportDirective","src":"65:48:118","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":65224,"symbolAliases":[{"foreign":{"id":67030,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65223,"src":"73:12:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67033,"nodeType":"ImportDirective","src":"114:38:118","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":65179,"symbolAliases":[{"foreign":{"id":67032,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65178,"src":"122:7:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67035,"nodeType":"ImportDirective","src":"153:38:118","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":65487,"symbolAliases":[{"foreign":{"id":67034,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65486,"src":"161:7:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67037,"nodeType":"ImportDirective","src":"192:48:118","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":65498,"symbolAliases":[{"foreign":{"id":67036,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65497,"src":"200:12:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67039,"nodeType":"ImportDirective","src":"241:52:118","nodes":[],"absolutePath":"src/IMirrorDecoder.sol","file":"./IMirrorDecoder.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":65216,"symbolAliases":[{"foreign":{"id":67038,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65215,"src":"249:14:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67041,"nodeType":"ImportDirective","src":"294:64:118","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":42513,"symbolAliases":[{"foreign":{"id":67040,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42512,"src":"302:6:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67043,"nodeType":"ImportDirective","src":"359:42:118","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"./libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":67774,"sourceUnit":70149,"symbolAliases":[{"foreign":{"id":67042,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"367:4:118","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67773,"nodeType":"ContractDefinition","src":"403:9266:118","nodes":[{"id":67047,"nodeType":"VariableDeclaration","src":"436:22:118","nodes":[],"baseFunctions":[65131],"constant":false,"functionSelector":"9cb33005","mutability":"mutable","name":"decoder","nameLocation":"451:7:118","scope":67773,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67046,"name":"address","nodeType":"ElementaryTypeName","src":"436:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67049,"nodeType":"VariableDeclaration","src":"464:24:118","nodes":[],"baseFunctions":[65116],"constant":false,"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"479:9:118","scope":67773,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67048,"name":"address","nodeType":"ElementaryTypeName","src":"464:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67052,"nodeType":"VariableDeclaration","src":"664:26:118","nodes":[],"constant":false,"documentation":{"id":67050,"nodeType":"StructuredDocumentation","src":"494:165:118","text":"@dev This nonce is the source for message ids unique generations. Must be bumped on each send. Zeroed nonce is always represent init message by eligible account."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"679:11:118","scope":67773,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67051,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67054,"nodeType":"VariableDeclaration","src":"696:24:118","nodes":[],"baseFunctions":[65111],"constant":false,"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"711:9:118","scope":67773,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"696:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":67056,"nodeType":"VariableDeclaration","src":"726:20:118","nodes":[],"baseFunctions":[65121],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"741:5:118","scope":67773,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67055,"name":"uint256","nodeType":"ElementaryTypeName","src":"726:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":67070,"nodeType":"ModifierDefinition","src":"828:109:118","nodes":[],"body":{"id":67069,"nodeType":"Block","src":"850:87:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67060,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"868:3:118","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"872:6:118","memberName":"sender","nodeType":"MemberAccess","src":"868:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":67062,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67178,"src":"882:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"882:8:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"868:22:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c6572206973206e6f742074686520726f75746572","id":67065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"892:26:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_198bece7548b89eb58a1e57e2a5c5ba93b63a70943a48214dc1508db322b92d3","typeString":"literal_string \"caller is not the router\""},"value":"caller is not the router"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_198bece7548b89eb58a1e57e2a5c5ba93b63a70943a48214dc1508db322b92d3","typeString":"literal_string \"caller is not the router\""}],"id":67059,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"860:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"860:59:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67067,"nodeType":"ExpressionStatement","src":"860:59:118"},{"id":67068,"nodeType":"PlaceholderStatement","src":"929:1:118"}]},"documentation":{"id":67057,"nodeType":"StructuredDocumentation","src":"753:70:118","text":"@dev Only the router can call functions marked with this modifier."},"name":"onlyRouter","nameLocation":"837:10:118","parameters":{"id":67058,"nodeType":"ParameterList","parameters":[],"src":"847:2:118"},"virtual":false,"visibility":"internal"},{"id":67104,"nodeType":"ModifierDefinition","src":"1053:326:118","nodes":[],"body":{"id":67103,"nodeType":"Block","src":"1093:286:118","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":67077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67075,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67073,"src":"1107:5:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":67076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1116:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1107:10:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67101,"nodeType":"IfStatement","src":"1103:259:118","trueBody":{"id":67100,"nodeType":"Block","src":"1119:243:118","statements":[{"assignments":[67079],"declarations":[{"constant":false,"id":67079,"mutability":"mutable","name":"routerAddr","nameLocation":"1141:10:118","nodeType":"VariableDeclaration","scope":67100,"src":"1133:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67078,"name":"address","nodeType":"ElementaryTypeName","src":"1133:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":67082,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":67080,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67178,"src":"1154:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1154:8:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1133:29:118"},{"assignments":[67084],"declarations":[{"constant":false,"id":67084,"mutability":"mutable","name":"success","nameLocation":"1181:7:118","nodeType":"VariableDeclaration","scope":67100,"src":"1176:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67083,"name":"bool","nodeType":"ElementaryTypeName","src":"1176:4:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":67094,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":67089,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67743,"src":"1223:7:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1223:9:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67091,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67079,"src":"1234:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67092,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67073,"src":"1246:5:118","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":[{"id":67086,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67079,"src":"1198:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67085,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67724,"src":"1191:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$65497_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":67087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1191:18:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"id":67088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1210:12:118","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43812,"src":"1191:31:118","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":67093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1191:61:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1176:76:118"},{"expression":{"arguments":[{"id":67096,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67084,"src":"1274:7:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207472616e73666572206e6f6e2d7a65726f20616d6f756e74206f662057566172612066726f6d20736f7572636520746f20726f75746572","id":67097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1283:67:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_89834f4f5b676caeda9aeacc6e70651fe8c874cb9d7867ce1578400f765c69dd","typeString":"literal_string \"failed to transfer non-zero amount of WVara from source to router\""},"value":"failed to transfer non-zero amount of WVara from source to router"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_89834f4f5b676caeda9aeacc6e70651fe8c874cb9d7867ce1578400f765c69dd","typeString":"literal_string \"failed to transfer non-zero amount of WVara from source to router\""}],"id":67095,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1266:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1266:85:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67099,"nodeType":"ExpressionStatement","src":"1266:85:118"}]}},{"id":67102,"nodeType":"PlaceholderStatement","src":"1371:1:118"}]},"documentation":{"id":67071,"nodeType":"StructuredDocumentation","src":"943:105:118","text":"@dev Non-zero value must be transferred from source to router in functions marked with this modifier."},"name":"retrievingValue","nameLocation":"1062:15:118","parameters":{"id":67074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67073,"mutability":"mutable","name":"value","nameLocation":"1086:5:118","nodeType":"VariableDeclaration","scope":67104,"src":"1078:13:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67072,"name":"uint128","nodeType":"ElementaryTypeName","src":"1078:7:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1077:15:118"},"virtual":false,"visibility":"internal"},{"id":67119,"nodeType":"ModifierDefinition","src":"1589:115:118","nodes":[],"body":{"id":67118,"nodeType":"Block","src":"1615:89:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67108,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67049,"src":"1633:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":67111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1654:1:118","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":67110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1646:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67109,"name":"address","nodeType":"ElementaryTypeName","src":"1646:7:118","typeDescriptions":{}}},"id":67112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1646:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1633:23:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973206e6f74207465726d696e61746564","id":67114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1658:27:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_645ea9267b04b6ac53df8eea2c448cbffac59a494197543c99a5f296932bd588","typeString":"literal_string \"program is not terminated\""},"value":"program is not terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_645ea9267b04b6ac53df8eea2c448cbffac59a494197543c99a5f296932bd588","typeString":"literal_string \"program is not terminated\""}],"id":67107,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1625:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1625:61:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67116,"nodeType":"ExpressionStatement","src":"1625:61:118"},{"id":67117,"nodeType":"PlaceholderStatement","src":"1696:1:118"}]},"documentation":{"id":67105,"nodeType":"StructuredDocumentation","src":"1488:96:118","text":"@dev Functions marked with this modifier can be called only after the program is terminated."},"name":"whenTerminated","nameLocation":"1598:14:118","parameters":{"id":67106,"nodeType":"ParameterList","parameters":[],"src":"1612:2:118"},"virtual":false,"visibility":"internal"},{"id":67131,"nodeType":"ModifierDefinition","src":"1830:127:118","nodes":[],"body":{"id":67130,"nodeType":"Block","src":"1864:93:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67123,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67056,"src":"1882:5:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":67124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1882:9:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e697469616c697a6572206861736e2774206372656174656420696e6974206d65737361676520796574","id":67126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1893:45:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_65d3f165ecb53a71c4baab7e3c64d50628aa4b4da22aa56421c8898d77a0af21","typeString":"literal_string \"initializer hasn't created init message yet\""},"value":"initializer hasn't created init message yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_65d3f165ecb53a71c4baab7e3c64d50628aa4b4da22aa56421c8898d77a0af21","typeString":"literal_string \"initializer hasn't created init message yet\""}],"id":67122,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1874:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1874:65:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67128,"nodeType":"ExpressionStatement","src":"1874:65:118"},{"id":67129,"nodeType":"PlaceholderStatement","src":"1949:1:118"}]},"documentation":{"id":67120,"nodeType":"StructuredDocumentation","src":"1710:115:118","text":"@dev Functions marked with this modifier can be called only after the initializer has created the init message."},"name":"whenInitMessageCreated","nameLocation":"1839:22:118","parameters":{"id":67121,"nodeType":"ParameterList","parameters":[],"src":"1861:2:118"},"virtual":false,"visibility":"internal"},{"id":67148,"nodeType":"ModifierDefinition","src":"2122:237:118","nodes":[],"body":{"id":67147,"nodeType":"Block","src":"2173:186:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":67142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67135,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67056,"src":"2204:5:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":67136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2212:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2204:9:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":67138,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67743,"src":"2217:7:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2217:9:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":67140,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67052,"src":"2230:11:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2217:24:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2204:37:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e697469616c697a6572206861736e2774206372656174656420696e6974206d657373616765207965743b20616e6420736f75726365206973206e6f7420696e697469616c697a6572","id":67143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2255:76:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_30f0ecacdc4f043fe4536cec8ec5dce9f84d0c03c073a67b932c97032eee9e08","typeString":"literal_string \"initializer hasn't created init message yet; and source is not initializer\""},"value":"initializer hasn't created init message yet; and source is not initializer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30f0ecacdc4f043fe4536cec8ec5dce9f84d0c03c073a67b932c97032eee9e08","typeString":"literal_string \"initializer hasn't created init message yet; and source is not initializer\""}],"id":67134,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2183:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2183:158:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67145,"nodeType":"ExpressionStatement","src":"2183:158:118"},{"id":67146,"nodeType":"PlaceholderStatement","src":"2351:1:118"}]},"documentation":{"id":67132,"nodeType":"StructuredDocumentation","src":"1963:154:118","text":"@dev Functions marked with this modifier can be called only after the initializer has created the init message or from the initializer (first access)."},"name":"whenInitMessageCreatedOrFromInitializer","nameLocation":"2131:39:118","parameters":{"id":67133,"nodeType":"ParameterList","parameters":[],"src":"2170:2:118"},"virtual":false,"visibility":"internal"},{"id":67163,"nodeType":"ModifierDefinition","src":"2459:108:118","nodes":[],"body":{"id":67162,"nodeType":"Block","src":"2482:85:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67152,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67049,"src":"2500:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":67155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2521:1:118","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":67154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2513:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67153,"name":"address","nodeType":"ElementaryTypeName","src":"2513:7:118","typeDescriptions":{}}},"id":67156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2513:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2500:23:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70726f6772616d206973207465726d696e61746564","id":67158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2525:23:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""},"value":"program is terminated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b99e931e301d9bf46f7569c6df99f13b4ced53db9be4aedb00fc4bbd41b4ec22","typeString":"literal_string \"program is terminated\""}],"id":67151,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2492:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2492:57:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67160,"nodeType":"ExpressionStatement","src":"2492:57:118"},{"id":67161,"nodeType":"PlaceholderStatement","src":"2559:1:118"}]},"documentation":{"id":67149,"nodeType":"StructuredDocumentation","src":"2365:89:118","text":"@dev Functions marked with this modifier can be called only if the program is active."},"name":"whileActive","nameLocation":"2468:11:118","parameters":{"id":67150,"nodeType":"ParameterList","parameters":[],"src":"2479:2:118"},"virtual":false,"visibility":"internal"},{"id":67178,"nodeType":"FunctionDefinition","src":"2606:108:118","nodes":[],"body":{"id":67177,"nodeType":"Block","src":"2654:60:118","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":67171,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2692:4:118","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}],"id":67170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2684:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67169,"name":"address","nodeType":"ElementaryTypeName","src":"2684:7:118","typeDescriptions":{}}},"id":67172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2684:13:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67168,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65223,"src":"2671:12:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorProxy_$65223_$","typeString":"type(contract IMirrorProxy)"}},"id":67173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2671:27:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorProxy_$65223","typeString":"contract IMirrorProxy"}},"id":67174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2699:6:118","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":65222,"src":"2671:34:118","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":67175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2671:36:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67167,"id":67176,"nodeType":"Return","src":"2664:43:118"}]},"baseFunctions":[65126],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2615:6:118","parameters":{"id":67164,"nodeType":"ParameterList","parameters":[],"src":"2621:2:118"},"returnParameters":{"id":67167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67166,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67178,"src":"2645:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67165,"name":"address","nodeType":"ElementaryTypeName","src":"2645:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2644:9:118"},"scope":67773,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":67219,"nodeType":"FunctionDefinition","src":"2750:383:118","nodes":[],"body":{"id":67218,"nodeType":"Block","src":"2959:174:118","nodes":[],"statements":[{"assignments":[67195],"declarations":[{"constant":false,"id":67195,"mutability":"mutable","name":"id","nameLocation":"2977:2:118","nodeType":"VariableDeclaration","scope":67218,"src":"2969:10:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2969:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":67207,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":67201,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3017:4:118","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}],"id":67200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3009:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67199,"name":"address","nodeType":"ElementaryTypeName","src":"3009:7:118","typeDescriptions":{}}},"id":67202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:13:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3024:7:118","subExpression":{"id":67203,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67056,"src":"3024:5:118","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":67197,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2992:3:118","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":67198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2996:12:118","memberName":"encodePacked","nodeType":"MemberAccess","src":"2992:16:118","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":67205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2992:40:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67196,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2982:9:118","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":67206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2982:51:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2969:64:118"},{"eventCall":{"arguments":[{"id":67209,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67195,"src":"3074:2:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":67210,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67743,"src":"3078:7:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3078:9:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67212,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67180,"src":"3089:8:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":67213,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67182,"src":"3099:6:118","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":67208,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65054,"src":"3049:24:118","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":67214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3049:57:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67215,"nodeType":"EmitStatement","src":"3044:62:118"},{"expression":{"id":67216,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67195,"src":"3124:2:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":67193,"id":67217,"nodeType":"Return","src":"3117:9:118"}]},"baseFunctions":[65140],"functionSelector":"d5624222","implemented":true,"kind":"function","modifiers":[{"id":67185,"kind":"modifierInvocation","modifierName":{"id":67184,"name":"whileActive","nameLocations":["2837:11:118"],"nodeType":"IdentifierPath","referencedDeclaration":67163,"src":"2837:11:118"},"nodeType":"ModifierInvocation","src":"2837:11:118"},{"id":67187,"kind":"modifierInvocation","modifierName":{"id":67186,"name":"whenInitMessageCreatedOrFromInitializer","nameLocations":["2857:39:118"],"nodeType":"IdentifierPath","referencedDeclaration":67148,"src":"2857:39:118"},"nodeType":"ModifierInvocation","src":"2857:39:118"},{"arguments":[{"id":67189,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67182,"src":"2921:6:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":67190,"kind":"modifierInvocation","modifierName":{"id":67188,"name":"retrievingValue","nameLocations":["2905:15:118"],"nodeType":"IdentifierPath","referencedDeclaration":67104,"src":"2905:15:118"},"nodeType":"ModifierInvocation","src":"2905:23:118"}],"name":"sendMessage","nameLocation":"2759:11:118","parameters":{"id":67183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67180,"mutability":"mutable","name":"_payload","nameLocation":"2786:8:118","nodeType":"VariableDeclaration","scope":67219,"src":"2771:23:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":67179,"name":"bytes","nodeType":"ElementaryTypeName","src":"2771:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":67182,"mutability":"mutable","name":"_value","nameLocation":"2804:6:118","nodeType":"VariableDeclaration","scope":67219,"src":"2796:14:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67181,"name":"uint128","nodeType":"ElementaryTypeName","src":"2796:7:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2770:41:118"},"returnParameters":{"id":67193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67219,"src":"2946:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2946:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2945:9:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67244,"nodeType":"FunctionDefinition","src":"3139:269:118","nodes":[],"body":{"id":67243,"nodeType":"Block","src":"3323:85:118","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":67236,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67221,"src":"3361:10:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":67237,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67743,"src":"3373:7:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3373:9:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67239,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67223,"src":"3384:8:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":67240,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67225,"src":"3394:6:118","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":67235,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65065,"src":"3338:22:118","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":67241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:63:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67242,"nodeType":"EmitStatement","src":"3333:68:118"}]},"baseFunctions":[65149],"functionSelector":"29336f39","implemented":true,"kind":"function","modifiers":[{"id":67228,"kind":"modifierInvocation","modifierName":{"id":67227,"name":"whileActive","nameLocations":["3244:11:118"],"nodeType":"IdentifierPath","referencedDeclaration":67163,"src":"3244:11:118"},"nodeType":"ModifierInvocation","src":"3244:11:118"},{"id":67230,"kind":"modifierInvocation","modifierName":{"id":67229,"name":"whenInitMessageCreated","nameLocations":["3264:22:118"],"nodeType":"IdentifierPath","referencedDeclaration":67131,"src":"3264:22:118"},"nodeType":"ModifierInvocation","src":"3264:22:118"},{"arguments":[{"id":67232,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67225,"src":"3311:6:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":67233,"kind":"modifierInvocation","modifierName":{"id":67231,"name":"retrievingValue","nameLocations":["3295:15:118"],"nodeType":"IdentifierPath","referencedDeclaration":67104,"src":"3295:15:118"},"nodeType":"ModifierInvocation","src":"3295:23:118"}],"name":"sendReply","nameLocation":"3148:9:118","parameters":{"id":67226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67221,"mutability":"mutable","name":"_repliedTo","nameLocation":"3166:10:118","nodeType":"VariableDeclaration","scope":67244,"src":"3158:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3158:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":67223,"mutability":"mutable","name":"_payload","nameLocation":"3193:8:118","nodeType":"VariableDeclaration","scope":67244,"src":"3178:23:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":67222,"name":"bytes","nodeType":"ElementaryTypeName","src":"3178:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":67225,"mutability":"mutable","name":"_value","nameLocation":"3211:6:118","nodeType":"VariableDeclaration","scope":67244,"src":"3203:14:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67224,"name":"uint128","nodeType":"ElementaryTypeName","src":"3203:7:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3157:61:118"},"returnParameters":{"id":67234,"nodeType":"ParameterList","parameters":[],"src":"3323:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67258,"nodeType":"FunctionDefinition","src":"3414:139:118","nodes":[],"body":{"id":67257,"nodeType":"Block","src":"3486:67:118","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":67252,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67246,"src":"3524:10:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":67253,"name":"_source","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67743,"src":"3536:7:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3536:9:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":67251,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65072,"src":"3501:22:118","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":67255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3501:45:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67256,"nodeType":"EmitStatement","src":"3496:50:118"}]},"baseFunctions":[65154],"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":67249,"kind":"modifierInvocation","modifierName":{"id":67248,"name":"whenInitMessageCreated","nameLocations":["3463:22:118"],"nodeType":"IdentifierPath","referencedDeclaration":67131,"src":"3463:22:118"},"nodeType":"ModifierInvocation","src":"3463:22:118"}],"name":"claimValue","nameLocation":"3423:10:118","parameters":{"id":67247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67246,"mutability":"mutable","name":"_claimedId","nameLocation":"3442:10:118","nodeType":"VariableDeclaration","scope":67258,"src":"3434:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3434:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3433:20:118"},"returnParameters":{"id":67250,"nodeType":"ParameterList","parameters":[],"src":"3486:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67273,"nodeType":"FunctionDefinition","src":"3559:154:118","nodes":[],"body":{"id":67272,"nodeType":"Block","src":"3652:61:118","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":67269,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67260,"src":"3699:6:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":67268,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65077,"src":"3667:31:118","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":67270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3667:39:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67271,"nodeType":"EmitStatement","src":"3662:44:118"}]},"baseFunctions":[65159],"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":67263,"kind":"modifierInvocation","modifierName":{"id":67262,"name":"whileActive","nameLocations":["3616:11:118"],"nodeType":"IdentifierPath","referencedDeclaration":67163,"src":"3616:11:118"},"nodeType":"ModifierInvocation","src":"3616:11:118"},{"arguments":[{"id":67265,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67260,"src":"3644:6:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":67266,"kind":"modifierInvocation","modifierName":{"id":67264,"name":"retrievingValue","nameLocations":["3628:15:118"],"nodeType":"IdentifierPath","referencedDeclaration":67104,"src":"3628:15:118"},"nodeType":"ModifierInvocation","src":"3628:23:118"}],"name":"executableBalanceTopUp","nameLocation":"3568:22:118","parameters":{"id":67261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67260,"mutability":"mutable","name":"_value","nameLocation":"3599:6:118","nodeType":"VariableDeclaration","scope":67273,"src":"3591:14:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67259,"name":"uint128","nodeType":"ElementaryTypeName","src":"3591:7:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3590:16:118"},"returnParameters":{"id":67267,"nodeType":"ParameterList","parameters":[],"src":"3652:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67300,"nodeType":"FunctionDefinition","src":"3719:193:118","nodes":[],"body":{"id":67299,"nodeType":"Block","src":"3783:129:118","nodes":[],"statements":[{"assignments":[67279],"declarations":[{"constant":false,"id":67279,"mutability":"mutable","name":"balance","nameLocation":"3801:7:118","nodeType":"VariableDeclaration","scope":67299,"src":"3793:15:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67278,"name":"uint256","nodeType":"ElementaryTypeName","src":"3793:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67290,"initialValue":{"arguments":[{"arguments":[{"id":67287,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3846:4:118","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}],"id":67286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3838:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67285,"name":"address","nodeType":"ElementaryTypeName","src":"3838:7:118","typeDescriptions":{}}},"id":67288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3838:13:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":67281,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67178,"src":"3818:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3818:8:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67280,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67724,"src":"3811:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$65497_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":67283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:16:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"id":67284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3828:9:118","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43770,"src":"3811:26:118","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":67289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:41:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3793:59:118"},{"expression":{"arguments":[{"id":67292,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67049,"src":"3877:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":67295,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67279,"src":"3896:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3888:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":67293,"name":"uint128","nodeType":"ElementaryTypeName","src":"3888:7:118","typeDescriptions":{}}},"id":67296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3888:16:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":67291,"name":"_transferValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67772,"src":"3862:14:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":67297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:43:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67298,"nodeType":"ExpressionStatement","src":"3862:43:118"}]},"baseFunctions":[65162],"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":67276,"kind":"modifierInvocation","modifierName":{"id":67275,"name":"whenTerminated","nameLocations":["3768:14:118"],"nodeType":"IdentifierPath","referencedDeclaration":67119,"src":"3768:14:118"},"nodeType":"ModifierInvocation","src":"3768:14:118"}],"name":"transferLockedValueToInheritor","nameLocation":"3728:30:118","parameters":{"id":67274,"nodeType":"ParameterList","parameters":[],"src":"3758:2:118"},"returnParameters":{"id":67277,"nodeType":"ParameterList","parameters":[],"src":"3783:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67338,"nodeType":"FunctionDefinition","src":"3970:310:118","nodes":[],"body":{"id":67337,"nodeType":"Block","src":"4048:232:118","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67310,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67052,"src":"4066:11:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":67313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4089:1:118","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":67312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4081:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67311,"name":"address","nodeType":"ElementaryTypeName","src":"4081:7:118","typeDescriptions":{}}},"id":67314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4081:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4066:25:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e697469616c697a657220636f756c64206f6e6c7920626520736574206f6e6365","id":67316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4093:36:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_a22a998b3a781946b89501fcd4ccd018d3a95bd8711aff0547431faa4986b249","typeString":"literal_string \"initializer could only be set once\""},"value":"initializer could only be set once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a22a998b3a781946b89501fcd4ccd018d3a95bd8711aff0547431faa4986b249","typeString":"literal_string \"initializer could only be set once\""}],"id":67309,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4058:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4058:72:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67318,"nodeType":"ExpressionStatement","src":"4058:72:118"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67320,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"4148:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":67323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4167:1:118","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":67322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4159:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67321,"name":"address","nodeType":"ElementaryTypeName","src":"4159:7:118","typeDescriptions":{}}},"id":67324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4148:21:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e697469616c697a657220636f756c64206f6e6c7920626520736574206f6e6365","id":67326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4171:36:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_a22a998b3a781946b89501fcd4ccd018d3a95bd8711aff0547431faa4986b249","typeString":"literal_string \"initializer could only be set once\""},"value":"initializer could only be set once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a22a998b3a781946b89501fcd4ccd018d3a95bd8711aff0547431faa4986b249","typeString":"literal_string \"initializer could only be set once\""}],"id":67319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4140:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4140:68:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67328,"nodeType":"ExpressionStatement","src":"4140:68:118"},{"expression":{"id":67331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67329,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67052,"src":"4219:11:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67330,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67302,"src":"4233:12:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4219:26:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67332,"nodeType":"ExpressionStatement","src":"4219:26:118"},{"expression":{"id":67335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67333,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"4255:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67334,"name":"_decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67304,"src":"4265:8:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4255:18:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67336,"nodeType":"ExpressionStatement","src":"4255:18:118"}]},"baseFunctions":[65169],"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":67307,"kind":"modifierInvocation","modifierName":{"id":67306,"name":"onlyRouter","nameLocations":["4037:10:118"],"nodeType":"IdentifierPath","referencedDeclaration":67070,"src":"4037:10:118"},"nodeType":"ModifierInvocation","src":"4037:10:118"}],"name":"initialize","nameLocation":"3979:10:118","parameters":{"id":67305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67302,"mutability":"mutable","name":"_initializer","nameLocation":"3998:12:118","nodeType":"VariableDeclaration","scope":67338,"src":"3990:20:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67301,"name":"address","nodeType":"ElementaryTypeName","src":"3990:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67304,"mutability":"mutable","name":"_decoder","nameLocation":"4020:8:118","nodeType":"VariableDeclaration","scope":67338,"src":"4012:16:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67303,"name":"address","nodeType":"ElementaryTypeName","src":"4012:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3989:40:118"},"returnParameters":{"id":67308,"nodeType":"ParameterList","parameters":[],"src":"4048:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67415,"nodeType":"FunctionDefinition","src":"4363:1163:118","nodes":[],"body":{"id":67414,"nodeType":"Block","src":"4476:1050:118","nodes":[],"statements":[{"documentation":"@dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67349,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"4564:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4576:7:118","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":69658,"src":"4564:19:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":67353,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4595:4:118","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$67773","typeString":"contract Mirror"}],"id":67352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4587:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67351,"name":"address","nodeType":"ElementaryTypeName","src":"4587:7:118","typeDescriptions":{}}},"id":67354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4587:13:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4564:36:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6163746f724964206d757374206265207468697320636f6e7472616374","id":67356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4602:31:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba7be785920a68bd302e7ea09bd7071e8b885ef81058f7ff907b22051b8150cd","typeString":"literal_string \"actorId must be this contract\""},"value":"actorId must be this contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba7be785920a68bd302e7ea09bd7071e8b885ef81058f7ff907b22051b8150cd","typeString":"literal_string \"actorId must be this contract\""}],"id":67348,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4556:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4556:78:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67358,"nodeType":"ExpressionStatement","src":"4556:78:118"},{"assignments":[67361],"declarations":[{"constant":false,"id":67361,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"4698:18:118","nodeType":"VariableDeclaration","scope":67414,"src":"4690:26:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4690:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":"@dev Send all outgoing messages.","id":67366,"initialValue":{"arguments":[{"expression":{"id":67363,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"4733:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4745:8:118","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":69672,"src":"4733:20:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$69637_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$69637_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":67362,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67482,"src":"4719:13:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$69637_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":67365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4719:35:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4690:64:118"},{"assignments":[67369],"declarations":[{"constant":false,"id":67369,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"4817:15:118","nodeType":"VariableDeclaration","scope":67414,"src":"4809:23:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4809:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":"@dev Send value for each claim.","id":67374,"initialValue":{"arguments":[{"expression":{"id":67371,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"4848:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4860:11:118","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":69668,"src":"4848:23:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":67370,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67674,"src":"4835:12:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$69694_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":67373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4835:37:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4809:63:118"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67375,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"4932:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4944:9:118","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":69662,"src":"4932:21:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":67379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4965:1:118","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":67378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4957:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67377,"name":"address","nodeType":"ElementaryTypeName","src":"4957:7:118","typeDescriptions":{}}},"id":67380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4957:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4932:35:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":"@dev Set inheritor if specified.","id":67388,"nodeType":"IfStatement","src":"4928:102:118","trueBody":{"id":67387,"nodeType":"Block","src":"4969:61:118","statements":[{"expression":{"arguments":[{"expression":{"id":67383,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"4997:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5009:9:118","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":69662,"src":"4997:21:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67382,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67689,"src":"4983:13:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":67385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4983:36:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67386,"nodeType":"ExpressionStatement","src":"4983:36:118"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":67392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67389,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67054,"src":"5095:9:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":67390,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5108:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5120:12:118","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":69660,"src":"5108:24:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5095:37:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":"@dev Update the state hash if changed.","id":67399,"nodeType":"IfStatement","src":"5091:110:118","trueBody":{"id":67398,"nodeType":"Block","src":"5134:67:118","statements":[{"expression":{"arguments":[{"expression":{"id":67394,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5165:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5177:12:118","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":69660,"src":"5165:24:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":67393,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67703,"src":"5148:16:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":67396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5148:42:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67397,"nodeType":"ExpressionStatement","src":"5148:42:118"}]}},{"documentation":"@dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":67402,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5316:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5328:7:118","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":69658,"src":"5316:19:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67404,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5349:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:12:118","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":69660,"src":"5349:24:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":67406,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5387:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5399:9:118","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":69662,"src":"5387:21:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67408,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67341,"src":"5422:11:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":67409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5434:14:118","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":69664,"src":"5422:26:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":67410,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67369,"src":"5462:15:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":67411,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67361,"src":"5491:18:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":67400,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"5278:4:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":67401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5283:19:118","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":69898,"src":"5278:24:118","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$_t_uint128_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,address,uint128,bytes32,bytes32) pure returns (bytes32)"}},"id":67412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5278:241:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":67347,"id":67413,"nodeType":"Return","src":"5271:248:118"}]},"baseFunctions":[65177],"functionSelector":"9ed32350","implemented":true,"kind":"function","modifiers":[{"id":67344,"kind":"modifierInvocation","modifierName":{"id":67343,"name":"onlyRouter","nameLocations":["4447:10:118"],"nodeType":"IdentifierPath","referencedDeclaration":67070,"src":"4447:10:118"},"nodeType":"ModifierInvocation","src":"4447:10:118"}],"name":"performStateTransition","nameLocation":"4372:22:118","parameters":{"id":67342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67341,"mutability":"mutable","name":"_transition","nameLocation":"4425:11:118","nodeType":"VariableDeclaration","scope":67415,"src":"4395:41:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":67340,"nodeType":"UserDefinedTypeName","pathNode":{"id":67339,"name":"Gear.StateTransition","nameLocations":["4395:4:118","4400:15:118"],"nodeType":"IdentifierPath","referencedDeclaration":69673,"src":"4395:20:118"},"referencedDeclaration":69673,"src":"4395:20:118","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"4394:43:118"},"returnParameters":{"id":67347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67415,"src":"4467:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4467:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4466:9:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67482,"nodeType":"FunctionDefinition","src":"5734:627:118","nodes":[],"body":{"id":67481,"nodeType":"Block","src":"5818:543:118","nodes":[],"statements":[{"assignments":[67425],"declarations":[{"constant":false,"id":67425,"mutability":"mutable","name":"messagesHashes","nameLocation":"5841:14:118","nodeType":"VariableDeclaration","scope":67481,"src":"5828:27:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":67424,"name":"bytes","nodeType":"ElementaryTypeName","src":"5828:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":67426,"nodeType":"VariableDeclarationStatement","src":"5828:27:118"},{"body":{"id":67475,"nodeType":"Block","src":"5913:399:118","statements":[{"assignments":[67442],"declarations":[{"constant":false,"id":67442,"mutability":"mutable","name":"message","nameLocation":"5949:7:118","nodeType":"VariableDeclaration","scope":67475,"src":"5927:29:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":67441,"nodeType":"UserDefinedTypeName","pathNode":{"id":67440,"name":"Gear.Message","nameLocations":["5927:4:118","5932:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":69637,"src":"5927:12:118"},"referencedDeclaration":69637,"src":"5927:12:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":67446,"initialValue":{"baseExpression":{"id":67443,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67419,"src":"5959:9:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$69637_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":67445,"indexExpression":{"id":67444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67428,"src":"5969:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5959:12:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"5927:44:118"},{"expression":{"id":67457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67447,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67425,"src":"5986:14:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":67451,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67425,"src":"6016:14:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":67454,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67442,"src":"6049:7:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":67452,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"6032:4:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":67453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6037:11:118","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":69844,"src":"6032:16:118","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$69637_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":67455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6032:25:118","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":67449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6003:5:118","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":67448,"name":"bytes","nodeType":"ElementaryTypeName","src":"6003:5:118","typeDescriptions":{}}},"id":67450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6009:6:118","memberName":"concat","nodeType":"MemberAccess","src":"6003:12:118","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":67456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:55:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5986:72:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":67458,"nodeType":"ExpressionStatement","src":"5986:72:118"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":67463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":67459,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67442,"src":"6144:7:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6152:12:118","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":69636,"src":"6144:20:118","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$69656_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":67461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6165:2:118","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":69653,"src":"6144:23:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":67462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6171:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6144:28:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":67473,"nodeType":"Block","src":"6243:59:118","statements":[{"expression":{"arguments":[{"id":67470,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67442,"src":"6279:7:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":67469,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67609,"src":"6261:17:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$69637_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":67471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6261:26:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67472,"nodeType":"ExpressionStatement","src":"6261:26:118"}]},"id":67474,"nodeType":"IfStatement","src":"6140:162:118","trueBody":{"id":67468,"nodeType":"Block","src":"6174:63:118","statements":[{"expression":{"arguments":[{"id":67465,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67442,"src":"6214:7:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":67464,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67539,"src":"6192:21:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$69637_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":67466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6192:30:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67467,"nodeType":"ExpressionStatement","src":"6192:30:118"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67428,"src":"5886:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":67432,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67419,"src":"5890:9:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$69637_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":67433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5900:6:118","memberName":"length","nodeType":"MemberAccess","src":"5890:16:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5886:20:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67476,"initializationExpression":{"assignments":[67428],"declarations":[{"constant":false,"id":67428,"mutability":"mutable","name":"i","nameLocation":"5879:1:118","nodeType":"VariableDeclaration","scope":67476,"src":"5871:9:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67427,"name":"uint256","nodeType":"ElementaryTypeName","src":"5871:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67430,"initialValue":{"hexValue":"30","id":67429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5883:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5871:13:118"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":67436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5908:3:118","subExpression":{"id":67435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67428,"src":"5908:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67437,"nodeType":"ExpressionStatement","src":"5908:3:118"},"nodeType":"ForStatement","src":"5866:446:118"},{"expression":{"arguments":[{"id":67478,"name":"messagesHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67425,"src":"6339:14:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67477,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6329:9:118","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":67479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6329:25:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":67423,"id":67480,"nodeType":"Return","src":"6322:32:118"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"5743:13:118","parameters":{"id":67420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67419,"mutability":"mutable","name":"_messages","nameLocation":"5781:9:118","nodeType":"VariableDeclaration","scope":67482,"src":"5757:33:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$69637_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":67417,"nodeType":"UserDefinedTypeName","pathNode":{"id":67416,"name":"Gear.Message","nameLocations":["5757:4:118","5762:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":69637,"src":"5757:12:118"},"referencedDeclaration":69637,"src":"5757:12:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_storage_ptr","typeString":"struct Gear.Message"}},"id":67418,"nodeType":"ArrayTypeName","src":"5757:14:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$69637_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"5756:35:118"},"returnParameters":{"id":67423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67482,"src":"5809:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5809:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5808:9:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67539,"nodeType":"FunctionDefinition","src":"6420:653:118","nodes":[],"body":{"id":67538,"nodeType":"Block","src":"6491:582:118","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67489,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"6505:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":67492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6524:1:118","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":67491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6516:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67490,"name":"address","nodeType":"ElementaryTypeName","src":"6516:7:118","typeDescriptions":{}}},"id":67493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6516:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6505:21:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67526,"nodeType":"IfStatement","src":"6501:474:118","trueBody":{"id":67525,"nodeType":"Block","src":"6528:447:118","statements":[{"assignments":[67496],"declarations":[{"constant":false,"id":67496,"mutability":"mutable","name":"callData","nameLocation":"6555:8:118","nodeType":"VariableDeclaration","scope":67525,"src":"6542:21:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":67495,"name":"bytes","nodeType":"ElementaryTypeName","src":"6542:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":67511,"initialValue":{"arguments":[{"expression":{"expression":{"id":67499,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65215,"src":"6606:14:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$65215_$","typeString":"type(contract IMirrorDecoder)"}},"id":67500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6621:13:118","memberName":"onMessageSent","nodeType":"MemberAccess","referencedDeclaration":65201,"src":"6606:28:118","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":67501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6635:8:118","memberName":"selector","nodeType":"MemberAccess","src":"6606:37:118","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":67502,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"6661:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6670:2:118","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69627,"src":"6661:11:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":67504,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"6690:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6699:11:118","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":69629,"src":"6690:20:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67506,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"6728:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6737:7:118","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":69631,"src":"6728:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":67508,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"6762:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6771:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69633,"src":"6762:14:118","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":67497,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6566:3:118","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":67498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6570:18:118","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"6566:22:118","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":67510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6566:224:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6542:248:118"},{"assignments":[67513,null],"declarations":[{"constant":false,"id":67513,"mutability":"mutable","name":"success","nameLocation":"6850:7:118","nodeType":"VariableDeclaration","scope":67525,"src":"6845:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67512,"name":"bool","nodeType":"ElementaryTypeName","src":"6845:4:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":67520,"initialValue":{"arguments":[{"id":67518,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67496,"src":"6889:8:118","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":67514,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"6862:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6870:4:118","memberName":"call","nodeType":"MemberAccess","src":"6862:12:118","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":67517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":67516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6880:7:118","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"6862:26:118","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":67519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6862:36:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6844:54:118"},{"condition":{"id":67521,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67513,"src":"6917:7:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67524,"nodeType":"IfStatement","src":"6913:52:118","trueBody":{"id":67523,"nodeType":"Block","src":"6926:39:118","statements":[{"functionReturnParameters":67488,"id":67522,"nodeType":"Return","src":"6944:7:118"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":67528,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"6998:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7007:2:118","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69627,"src":"6998:11:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":67530,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"7011:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7020:11:118","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":69629,"src":"7011:20:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67532,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"7033:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7042:7:118","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":69631,"src":"7033:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":67534,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67486,"src":"7051:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7060:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69633,"src":"7051:14:118","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":67527,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65088,"src":"6990:7:118","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":67536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6990:76:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67537,"nodeType":"EmitStatement","src":"6985:81:118"}]},"documentation":{"id":67483,"nodeType":"StructuredDocumentation","src":"6367:48:118","text":"@dev Value never sent since goes to mailbox."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"6429:21:118","parameters":{"id":67487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67486,"mutability":"mutable","name":"_message","nameLocation":"6473:8:118","nodeType":"VariableDeclaration","scope":67539,"src":"6451:30:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":67485,"nodeType":"UserDefinedTypeName","pathNode":{"id":67484,"name":"Gear.Message","nameLocations":["6451:4:118","6456:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":69637,"src":"6451:12:118"},"referencedDeclaration":69637,"src":"6451:12:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"6450:32:118"},"returnParameters":{"id":67488,"nodeType":"ParameterList","parameters":[],"src":"6491:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67609,"nodeType":"FunctionDefinition","src":"7148:784:118","nodes":[],"body":{"id":67608,"nodeType":"Block","src":"7215:717:118","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":67547,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7240:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7249:11:118","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":69629,"src":"7240:20:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67549,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7262:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7271:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69633,"src":"7262:14:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":67546,"name":"_transferValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67772,"src":"7225:14:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":67551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7225:52:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67552,"nodeType":"ExpressionStatement","src":"7225:52:118"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67553,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"7292:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":67556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7311:1:118","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":67555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7303:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67554,"name":"address","nodeType":"ElementaryTypeName","src":"7303:7:118","typeDescriptions":{}}},"id":67557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7303:10:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7292:21:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67594,"nodeType":"IfStatement","src":"7288:529:118","trueBody":{"id":67593,"nodeType":"Block","src":"7315:502:118","statements":[{"assignments":[67560],"declarations":[{"constant":false,"id":67560,"mutability":"mutable","name":"callData","nameLocation":"7342:8:118","nodeType":"VariableDeclaration","scope":67593,"src":"7329:21:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":67559,"name":"bytes","nodeType":"ElementaryTypeName","src":"7329:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":67579,"initialValue":{"arguments":[{"expression":{"expression":{"id":67563,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65215,"src":"7393:14:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$65215_$","typeString":"type(contract IMirrorDecoder)"}},"id":67564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7408:11:118","memberName":"onReplySent","nodeType":"MemberAccess","referencedDeclaration":65214,"src":"7393:26:118","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":67565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7420:8:118","memberName":"selector","nodeType":"MemberAccess","src":"7393:35:118","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":67566,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7446:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7455:11:118","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":69629,"src":"7446:20:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67568,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7484:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7493:7:118","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":69631,"src":"7484:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":67570,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7518:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7527:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69633,"src":"7518:14:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":67572,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7550:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7559:12:118","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":69636,"src":"7550:21:118","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$69656_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":67574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7572:2:118","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":69653,"src":"7550:24:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":67575,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7592:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:12:118","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":69636,"src":"7592:21:118","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$69656_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":67577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7614:4:118","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":69655,"src":"7592:26:118","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":67561,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7353:3:118","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":67562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7357:18:118","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"7353:22:118","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":67578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7353:279:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7329:303:118"},{"assignments":[67581,null],"declarations":[{"constant":false,"id":67581,"mutability":"mutable","name":"success","nameLocation":"7692:7:118","nodeType":"VariableDeclaration","scope":67593,"src":"7687:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67580,"name":"bool","nodeType":"ElementaryTypeName","src":"7687:4:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":67588,"initialValue":{"arguments":[{"id":67586,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67560,"src":"7731:8:118","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":67582,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"7704:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7712:4:118","memberName":"call","nodeType":"MemberAccess","src":"7704:12:118","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":67585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":67584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7722:7:118","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"7704:26:118","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":67587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7704:36:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7686:54:118"},{"condition":{"id":67589,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67581,"src":"7759:7:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67592,"nodeType":"IfStatement","src":"7755:52:118","trueBody":{"id":67591,"nodeType":"Block","src":"7768:39:118","statements":[{"functionReturnParameters":67545,"id":67590,"nodeType":"Return","src":"7786:7:118"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":67596,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7838:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7847:7:118","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":69631,"src":"7838:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":67598,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7856:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7865:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69633,"src":"7856:14:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":67600,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7872:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7881:12:118","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":69636,"src":"7872:21:118","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$69656_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":67602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7894:2:118","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":69653,"src":"7872:24:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":67603,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67543,"src":"7898:8:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":67604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7907:12:118","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":69636,"src":"7898:21:118","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$69656_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":67605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7920:4:118","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":69655,"src":"7898:26:118","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":67595,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65099,"src":"7832:5:118","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":67606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7832:93:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67607,"nodeType":"EmitStatement","src":"7827:98:118"}]},"documentation":{"id":67540,"nodeType":"StructuredDocumentation","src":"7079:64:118","text":"@dev Non-zero value always sent since never goes to mailbox."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"7157:17:118","parameters":{"id":67544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67543,"mutability":"mutable","name":"_message","nameLocation":"7197:8:118","nodeType":"VariableDeclaration","scope":67609,"src":"7175:30:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":67542,"nodeType":"UserDefinedTypeName","pathNode":{"id":67541,"name":"Gear.Message","nameLocations":["7175:4:118","7180:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":69637,"src":"7175:12:118"},"referencedDeclaration":69637,"src":"7175:12:118","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$69637_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"7174:32:118"},"returnParameters":{"id":67545,"nodeType":"ParameterList","parameters":[],"src":"7215:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67674,"nodeType":"FunctionDefinition","src":"7938:514:118","nodes":[],"body":{"id":67673,"nodeType":"Block","src":"8022:430:118","nodes":[],"statements":[{"assignments":[67619],"declarations":[{"constant":false,"id":67619,"mutability":"mutable","name":"valueClaimsBytes","nameLocation":"8045:16:118","nodeType":"VariableDeclaration","scope":67673,"src":"8032:29:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":67618,"name":"bytes","nodeType":"ElementaryTypeName","src":"8032:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":67620,"nodeType":"VariableDeclarationStatement","src":"8032:29:118"},{"body":{"id":67667,"nodeType":"Block","src":"8117:284:118","statements":[{"assignments":[67636],"declarations":[{"constant":false,"id":67636,"mutability":"mutable","name":"claim","nameLocation":"8156:5:118","nodeType":"VariableDeclaration","scope":67667,"src":"8131:30:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69694_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":67635,"nodeType":"UserDefinedTypeName","pathNode":{"id":67634,"name":"Gear.ValueClaim","nameLocations":["8131:4:118","8136:10:118"],"nodeType":"IdentifierPath","referencedDeclaration":69694,"src":"8131:15:118"},"referencedDeclaration":69694,"src":"8131:15:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69694_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":67640,"initialValue":{"baseExpression":{"id":67637,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67613,"src":"8164:7:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":67639,"indexExpression":{"id":67638,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67622,"src":"8172:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8164:10:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69694_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"8131:43:118"},{"expression":{"id":67651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67641,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67619,"src":"8189:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":67645,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67619,"src":"8221:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":67648,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67636,"src":"8260:5:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69694_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValueClaim_$69694_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}],"expression":{"id":67646,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"8239:4:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":67647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8244:15:118","memberName":"valueClaimBytes","nodeType":"MemberAccess","referencedDeclaration":70147,"src":"8239:20:118","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValueClaim_$69694_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct Gear.ValueClaim memory) pure returns (bytes memory)"}},"id":67649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8239:27:118","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":67643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8208:5:118","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":67642,"name":"bytes","nodeType":"ElementaryTypeName","src":"8208:5:118","typeDescriptions":{}}},"id":67644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8214:6:118","memberName":"concat","nodeType":"MemberAccess","src":"8208:12:118","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":67650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8208:59:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8189:78:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":67652,"nodeType":"ExpressionStatement","src":"8189:78:118"},{"expression":{"arguments":[{"expression":{"id":67654,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67636,"src":"8297:5:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69694_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":67655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8303:11:118","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":69691,"src":"8297:17:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":67656,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67636,"src":"8316:5:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69694_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":67657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8322:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69693,"src":"8316:11:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":67653,"name":"_transferValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67772,"src":"8282:14:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":67658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8282:46:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67659,"nodeType":"ExpressionStatement","src":"8282:46:118"},{"eventCall":{"arguments":[{"expression":{"id":67661,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67636,"src":"8361:5:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69694_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":67662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8367:9:118","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":69689,"src":"8361:15:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":67663,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67636,"src":"8378:5:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69694_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":67664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8384:5:118","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":69693,"src":"8378:11:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":67660,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65106,"src":"8348:12:118","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":67665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8348:42:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67666,"nodeType":"EmitStatement","src":"8343:47:118"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67625,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67622,"src":"8092:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":67626,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67613,"src":"8096:7:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":67627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8104:6:118","memberName":"length","nodeType":"MemberAccess","src":"8096:14:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8092:18:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67668,"initializationExpression":{"assignments":[67622],"declarations":[{"constant":false,"id":67622,"mutability":"mutable","name":"i","nameLocation":"8085:1:118","nodeType":"VariableDeclaration","scope":67668,"src":"8077:9:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67621,"name":"uint256","nodeType":"ElementaryTypeName","src":"8077:7:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":67624,"initialValue":{"hexValue":"30","id":67623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8089:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8077:13:118"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":67630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8112:3:118","subExpression":{"id":67629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67622,"src":"8112:1:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":67631,"nodeType":"ExpressionStatement","src":"8112:3:118"},"nodeType":"ForStatement","src":"8072:329:118"},{"expression":{"arguments":[{"id":67670,"name":"valueClaimsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67619,"src":"8428:16:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67669,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8418:9:118","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":67671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8418:27:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":67617,"id":67672,"nodeType":"Return","src":"8411:34:118"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"7947:12:118","parameters":{"id":67614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67613,"mutability":"mutable","name":"_claims","nameLocation":"7987:7:118","nodeType":"VariableDeclaration","scope":67674,"src":"7960:34:118","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":67611,"nodeType":"UserDefinedTypeName","pathNode":{"id":67610,"name":"Gear.ValueClaim","nameLocations":["7960:4:118","7965:10:118"],"nodeType":"IdentifierPath","referencedDeclaration":69694,"src":"7960:15:118"},"referencedDeclaration":69694,"src":"7960:15:118","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$69694_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":67612,"nodeType":"ArrayTypeName","src":"7960:17:118","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$69694_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"7959:36:118"},"returnParameters":{"id":67617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67674,"src":"8013:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8013:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8012:9:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67689,"nodeType":"FunctionDefinition","src":"8524:243:118","nodes":[],"body":{"id":67688,"nodeType":"Block","src":"8587:180:118","nodes":[],"statements":[{"documentation":"@dev Set inheritor.","expression":{"id":67683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67681,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67049,"src":"8629:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67682,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67676,"src":"8641:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8629:22:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67684,"nodeType":"ExpressionStatement","src":"8629:22:118"},{"documentation":"@dev Transfer all available balance to the inheritor.","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67685,"name":"transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67300,"src":"8728:30:118","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8728:32:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67687,"nodeType":"ExpressionStatement","src":"8728:32:118"}]},"implemented":true,"kind":"function","modifiers":[{"id":67679,"kind":"modifierInvocation","modifierName":{"id":67678,"name":"whileActive","nameLocations":["8575:11:118"],"nodeType":"IdentifierPath","referencedDeclaration":67163,"src":"8575:11:118"},"nodeType":"ModifierInvocation","src":"8575:11:118"}],"name":"_setInheritor","nameLocation":"8533:13:118","parameters":{"id":67677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67676,"mutability":"mutable","name":"_inheritor","nameLocation":"8555:10:118","nodeType":"VariableDeclaration","scope":67689,"src":"8547:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67675,"name":"address","nodeType":"ElementaryTypeName","src":"8547:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8546:20:118"},"returnParameters":{"id":67680,"nodeType":"ParameterList","parameters":[],"src":"8587:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67703,"nodeType":"FunctionDefinition","src":"8773:235:118","nodes":[],"body":{"id":67702,"nodeType":"Block","src":"8827:181:118","nodes":[],"statements":[{"documentation":"@dev Set state hash.","expression":{"id":67696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67694,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67054,"src":"8870:9:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67695,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67691,"src":"8882:10:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8870:22:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":67697,"nodeType":"ExpressionStatement","src":"8870:22:118"},{"documentation":"@dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":67699,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67054,"src":"8991:9:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":67698,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65043,"src":"8978:12:118","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":67700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8978:23:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67701,"nodeType":"EmitStatement","src":"8973:28:118"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"8782:16:118","parameters":{"id":67692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67691,"mutability":"mutable","name":"_stateHash","nameLocation":"8807:10:118","nodeType":"VariableDeclaration","scope":67703,"src":"8799:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8799:7:118","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8798:20:118"},"returnParameters":{"id":67693,"nodeType":"ParameterList","parameters":[],"src":"8827:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":67724,"nodeType":"FunctionDefinition","src":"9048:182:118","nodes":[],"body":{"id":67723,"nodeType":"Block","src":"9120:110:118","nodes":[],"statements":[{"assignments":[67712],"declarations":[{"constant":false,"id":67712,"mutability":"mutable","name":"wvaraAddr","nameLocation":"9138:9:118","nodeType":"VariableDeclaration","scope":67723,"src":"9130:17:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67711,"name":"address","nodeType":"ElementaryTypeName","src":"9130:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":67718,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":67714,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67705,"src":"9158:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67713,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65486,"src":"9150:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$65486_$","typeString":"type(contract IRouter)"}},"id":67715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9150:19:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$65486","typeString":"contract IRouter"}},"id":67716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9170:11:118","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":65329,"src":"9150:31:118","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":67717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9150:33:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9130:53:118"},{"expression":{"arguments":[{"id":67720,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67712,"src":"9213:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67719,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65497,"src":"9200:12:118","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$65497_$","typeString":"type(contract IWrappedVara)"}},"id":67721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9200:23:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"functionReturnParameters":67710,"id":67722,"nodeType":"Return","src":"9193:30:118"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"9057:6:118","parameters":{"id":67706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67705,"mutability":"mutable","name":"routerAddr","nameLocation":"9072:10:118","nodeType":"VariableDeclaration","scope":67724,"src":"9064:18:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67704,"name":"address","nodeType":"ElementaryTypeName","src":"9064:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9063:20:118"},"returnParameters":{"id":67710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67724,"src":"9106:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"},"typeName":{"id":67708,"nodeType":"UserDefinedTypeName","pathNode":{"id":67707,"name":"IWrappedVara","nameLocations":["9106:12:118"],"nodeType":"IdentifierPath","referencedDeclaration":65497,"src":"9106:12:118"},"referencedDeclaration":65497,"src":"9106:12:118","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"9105:14:118"},"scope":67773,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":67743,"nodeType":"FunctionDefinition","src":"9236:182:118","nodes":[],"body":{"id":67742,"nodeType":"Block","src":"9286:132:118","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":67732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67729,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9300:3:118","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9304:6:118","memberName":"sender","nodeType":"MemberAccess","src":"9300:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":67731,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67047,"src":"9314:7:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9300:21:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":67740,"nodeType":"Block","src":"9370:42:118","statements":[{"expression":{"expression":{"id":67737,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9391:3:118","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":67738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9395:6:118","memberName":"sender","nodeType":"MemberAccess","src":"9391:10:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67728,"id":67739,"nodeType":"Return","src":"9384:17:118"}]},"id":67741,"nodeType":"IfStatement","src":"9296:116:118","trueBody":{"id":67736,"nodeType":"Block","src":"9323:41:118","statements":[{"expression":{"expression":{"id":67733,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"9344:2:118","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":67734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9347:6:118","memberName":"origin","nodeType":"MemberAccess","src":"9344:9:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67728,"id":67735,"nodeType":"Return","src":"9337:16:118"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_source","nameLocation":"9245:7:118","parameters":{"id":67725,"nodeType":"ParameterList","parameters":[],"src":"9252:2:118"},"returnParameters":{"id":67728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67743,"src":"9277:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67726,"name":"address","nodeType":"ElementaryTypeName","src":"9277:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9276:9:118"},"scope":67773,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":67772,"nodeType":"FunctionDefinition","src":"9424:243:118","nodes":[],"body":{"id":67771,"nodeType":"Block","src":"9492:175:118","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":67752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67750,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67747,"src":"9506:5:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":67751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9515:1:118","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9506:10:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":67770,"nodeType":"IfStatement","src":"9502:159:118","trueBody":{"id":67769,"nodeType":"Block","src":"9518:143:118","statements":[{"assignments":[67754],"declarations":[{"constant":false,"id":67754,"mutability":"mutable","name":"success","nameLocation":"9537:7:118","nodeType":"VariableDeclaration","scope":67769,"src":"9532:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":67753,"name":"bool","nodeType":"ElementaryTypeName","src":"9532:4:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":67763,"initialValue":{"arguments":[{"id":67760,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67745,"src":"9573:11:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67747,"src":"9586:5:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":67756,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67178,"src":"9554:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9554:8:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67755,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67724,"src":"9547:6:118","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$65497_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":67758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9547:16:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"id":67759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9564:8:118","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43780,"src":"9547:25:118","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":67762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9547:45:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9532:60:118"},{"expression":{"arguments":[{"id":67765,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67754,"src":"9614:7:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6661696c656420746f207472616e73666572205756617261","id":67766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9623:26:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_67b810931d6bc27bebc6c54d267fd2daa6fef9e1939bb1712f8d92f0ff26a989","typeString":"literal_string \"failed to transfer WVara\""},"value":"failed to transfer WVara"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67b810931d6bc27bebc6c54d267fd2daa6fef9e1939bb1712f8d92f0ff26a989","typeString":"literal_string \"failed to transfer WVara\""}],"id":67764,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9606:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9606:44:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67768,"nodeType":"ExpressionStatement","src":"9606:44:118"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_transferValue","nameLocation":"9433:14:118","parameters":{"id":67748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67745,"mutability":"mutable","name":"destination","nameLocation":"9456:11:118","nodeType":"VariableDeclaration","scope":67772,"src":"9448:19:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67744,"name":"address","nodeType":"ElementaryTypeName","src":"9448:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67747,"mutability":"mutable","name":"value","nameLocation":"9477:5:118","nodeType":"VariableDeclaration","scope":67772,"src":"9469:13:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67746,"name":"uint128","nodeType":"ElementaryTypeName","src":"9469:7:118","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9447:36:118"},"returnParameters":{"id":67749,"nodeType":"ParameterList","parameters":[],"src":"9492:0:118"},"scope":67773,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":67044,"name":"IMirror","nameLocations":["422:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":65178,"src":"422:7:118"},"id":67045,"nodeType":"InheritanceSpecifier","src":"422:7:118"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[67773,65178],"name":"Mirror","nameLocation":"412:6:118","scope":67774,"usedErrors":[],"usedEvents":[65043,65054,65065,65072,65077,65088,65099,65106]}],"license":"UNLICENSED"},"id":118} \ No newline at end of file diff --git a/ethexe/ethereum/MirrorProxy.json b/ethexe/ethereum/MirrorProxy.json index f0198a972eb..51d0a9b1f2a 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":"0x60a034606b57601f61021038819003918201601f19168301916001600160401b03831184841017606f57808492602094604052833981010312606b57516001600160a01b0381168103606b5760805260405161018c908161008482396080518181816023015260e10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe608060405260043610156100c0575b63e6fabc0960e01b60809081526020906004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100b5575f9015610139575060203d6020116100ae575b601f19601f820116608001906080821067ffffffffffffffff83111761009a5761009591604052608001610117565b610139565b634e487b7160e01b5f52604160045260245ffd5b503d610066565b6040513d5f823e3d90fd5b5f3560e01c63f887ea400361000e5734610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b5f80fd5b602090607f190112610113576080516001600160a01b03811681036101135790565b5f8091368280378136915af43d5f803e15610152573d5ff35b3d5ffdfea26469706673582212205c9b1b7b667b8036fd369127f3d67ec9fd80e37388b905666820dfd840a1044c64736f6c634300081c0033","sourceMap":"259:286:119:-:0;;;;;;;;;;;;;-1:-1:-1;;259:286:119;;;;-1:-1:-1;;;;;259:286:119;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:286:119;;;;;;386:16;;259:286;;;;;;;;386:16;259:286;;;;;;;;;;;;-1:-1:-1;259:286:119;;;;;;-1:-1:-1;259:286:119;;;;;-1:-1:-1;259:286:119","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610156100c0575b63e6fabc0960e01b60809081526020906004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156100b5575f9015610139575060203d6020116100ae575b601f19601f820116608001906080821067ffffffffffffffff83111761009a5761009591604052608001610117565b610139565b634e487b7160e01b5f52604160045260245ffd5b503d610066565b6040513d5f823e3d90fd5b5f3560e01c63f887ea400361000e5734610113575f366003190112610113577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b5f80fd5b602090607f190112610113576080516001600160a01b03811681036101135790565b5f8091368280378136915af43d5f803e15610152573d5ff35b3d5ffdfea26469706673582212205c9b1b7b667b8036fd369127f3d67ec9fd80e37388b905666820dfd840a1044c64736f6c634300081c0033","sourceMap":"259:286:119:-:0;;;;;;;;;-1:-1:-1;;;;259:286:119;508:28;;;;;259:286;;516:6;-1:-1:-1;;;;;259:286:119;508:28;;;;;;-1:-1:-1;508:28:119;;2381:17:40;508:28:119;;;;;;;;;259:286;;;;;;;;;;;;;;;;;;508:28;259:286;;;;508:28;;:::i;:::-;2381:17:40;:::i;259:286:119:-;;;;-1:-1:-1;259:286:119;;;;;-1:-1:-1;259:286:119;508:28;;;;;;259:286;;;-1:-1:-1;259:286:119;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:286:119;;;;309:31;-1:-1:-1;;;;;259:286:119;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:286:119;;;;;;;:::o;949:895:40:-;1019:819;949:895;;1019:819;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"67787":[{"start":35,"length":32},{"start":225,"length":32}]}},"methodIdentifiers":{"router()":"f887ea40"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b\",\"dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW\"]},\"src/MirrorProxy.sol\":{\"keccak256\":\"0x5aa79edf0ac44b938c81e38e5a63e5ed53078a67870e910cecf1019766f40326\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dc722a0b42b2ad97f63486a200bfaed40f33dad6d0ea1697fd0c2d6cc6280316\",\"dweb:/ipfs/Qmb66iPmELyjyzaBDMaNr3XVL5QHCcf9s9cvhQuTceDHsP\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831\",\"dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"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/","symbiotic-core/=lib/symbiotic-core/"],"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"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf","urls":["bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b","dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW"],"license":"UNLICENSED"},"src/MirrorProxy.sol":{"keccak256":"0x5aa79edf0ac44b938c81e38e5a63e5ed53078a67870e910cecf1019766f40326","urls":["bzz-raw://dc722a0b42b2ad97f63486a200bfaed40f33dad6d0ea1697fd0c2d6cc6280316","dweb:/ipfs/Qmb66iPmELyjyzaBDMaNr3XVL5QHCcf9s9cvhQuTceDHsP"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de","urls":["bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831","dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/MirrorProxy.sol","id":67812,"exportedSymbols":{"IMirrorProxy":[65223],"IRouter":[65486],"MirrorProxy":[67811],"Proxy":[42880]},"nodeType":"SourceUnit","src":"39:507:119","nodes":[{"id":67775,"nodeType":"PragmaDirective","src":"39:24:119","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":67777,"nodeType":"ImportDirective","src":"65:62:119","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol","file":"@openzeppelin/contracts/proxy/Proxy.sol","nameLocation":"-1:-1:-1","scope":67812,"sourceUnit":42881,"symbolAliases":[{"foreign":{"id":67776,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42880,"src":"73:5:119","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67779,"nodeType":"ImportDirective","src":"128:48:119","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":67812,"sourceUnit":65224,"symbolAliases":[{"foreign":{"id":67778,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65223,"src":"136:12:119","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67781,"nodeType":"ImportDirective","src":"177:38:119","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":67812,"sourceUnit":65487,"symbolAliases":[{"foreign":{"id":67780,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65486,"src":"185:7:119","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67811,"nodeType":"ContractDefinition","src":"259:286:119","nodes":[{"id":67787,"nodeType":"VariableDeclaration","src":"309:31:119","nodes":[],"baseFunctions":[65222],"constant":false,"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"334:6:119","scope":67811,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67786,"name":"address","nodeType":"ElementaryTypeName","src":"309:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67797,"nodeType":"FunctionDefinition","src":"347:62:119","nodes":[],"body":{"id":67796,"nodeType":"Block","src":"376:33:119","nodes":[],"statements":[{"expression":{"id":67794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67792,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67787,"src":"386:6:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67793,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67789,"src":"395:7:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"386:16:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67795,"nodeType":"ExpressionStatement","src":"386:16:119"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":67790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67789,"mutability":"mutable","name":"_router","nameLocation":"367:7:119","nodeType":"VariableDeclaration","scope":67797,"src":"359:15:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67788,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"358:17:119"},"returnParameters":{"id":67791,"nodeType":"ParameterList","parameters":[],"src":"376:0:119"},"scope":67811,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67810,"nodeType":"FunctionDefinition","src":"415:128:119","nodes":[],"body":{"id":67809,"nodeType":"Block","src":"491:52:119","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":67804,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67787,"src":"516:6:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67803,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65486,"src":"508:7:119","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$65486_$","typeString":"type(contract IRouter)"}},"id":67805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:15:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$65486","typeString":"contract IRouter"}},"id":67806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"524:10:119","memberName":"mirrorImpl","nodeType":"MemberAccess","referencedDeclaration":65319,"src":"508:26:119","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":67807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:28:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67802,"id":67808,"nodeType":"Return","src":"501:35:119"}]},"baseFunctions":[42861],"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"424:15:119","overrides":{"id":67799,"nodeType":"OverrideSpecifier","overrides":[],"src":"464:8:119"},"parameters":{"id":67798,"nodeType":"ParameterList","parameters":[],"src":"439:2:119"},"returnParameters":{"id":67802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67810,"src":"482:7:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67800,"name":"address","nodeType":"ElementaryTypeName","src":"482:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"481:9:119"},"scope":67811,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":67782,"name":"IMirrorProxy","nameLocations":["283:12:119"],"nodeType":"IdentifierPath","referencedDeclaration":65223,"src":"283:12:119"},"id":67783,"nodeType":"InheritanceSpecifier","src":"283:12:119"},{"baseName":{"id":67784,"name":"Proxy","nameLocations":["297:5:119"],"nodeType":"IdentifierPath","referencedDeclaration":42880,"src":"297:5:119"},"id":67785,"nodeType":"InheritanceSpecifier","src":"297:5:119"}],"canonicalName":"MirrorProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[67811,42880,65223],"name":"MirrorProxy","nameLocation":"268:11:119","scope":67812,"usedErrors":[],"usedEvents":[]}],"license":"UNLICENSED"},"id":119} \ 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":"claimValue","inputs":[{"name":"claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decoder","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initializer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"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":[],"stateMutability":"nonpayable"},{"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":"nonpayable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferLockedValueToInheritor","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60a034606d57601f61049a38819003918201601f19168301916001600160401b03831184841017607157808492602094604052833981010312606d57516001600160a01b0381168103606d57608052604051610414908161008682396080518181816102ba01526102fe0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436106102e9575f3560e01c806329336f39146100bb57806336a52a18146100b6578063701da98e146100b1578063704ed542146100ac57806391d5a64c146100a75780639cb33005146100a25780639ce110d71461009d578063affed0e014610098578063d562422214610093578063e43f34331461008e5763f887ea40036102e9576102a5565b610290565b610255565b610238565b610210565b6101e9565b6101d3565b6101ba565b61019d565b610175565b610134565b9181601f840112156100ee5782359167ffffffffffffffff83116100ee57602083818601950101116100ee57565b5f80fd5b604435906001600160801b03821682036100ee57565b600435906001600160801b03821682036100ee57565b602435906001600160801b03821682036100ee57565b346100ee5760603660031901126100ee5760243567ffffffffffffffff81116100ee576101659036906004016100c0565b505061016f6100f2565b506102e9565b346100ee575f3660031901126100ee576001546040516001600160a01b039091168152602090f35b346100ee575f3660031901126100ee576020600354604051908152f35b346100ee5760203660031901126100ee5761016f610108565b346100ee576020366003190112156102e9575f80fd5b346100ee575f3660031901126100ee575f546040516001600160a01b039091168152602090f35b346100ee575f3660031901126100ee576002546040516001600160a01b039091168152602090f35b346100ee575f3660031901126100ee576020600454604051908152f35b346100ee5760403660031901126100ee5760043567ffffffffffffffff81116100ee576102869036906004016100c0565b505061016f61011e565b346100ee575f366003190112156102e9575f80fd5b346100ee575f3660031901126100ee576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60405163e6fabc0960e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610397575f9161033c575b506103c1565b602091503d821161038f575b601f8201601f191681019167ffffffffffffffff83118284101761037b57610375926040528101906103a2565b5f610336565b634e487b7160e01b5f52604160045260245ffd5b3d9150610348565b6040513d5f823e3d90fd5b908160209103126100ee57516001600160a01b03811681036100ee5790565b5f8091368280378136915af43d5f803e156103da573d5ff35b3d5ffdfea2646970667358221220a423a432a65943cc09c3e04e3e9411c13648dcc4fed36524adc25f89c0e3a25464736f6c634300081c0033","sourceMap":"259:1084:119:-:0;;;;;;;;;;;;;-1:-1:-1;;259:1084:119;;;;-1:-1:-1;;;;;259:1084:119;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:1084:119;;;;;;533:16;;259:1084;;;;;;;;533:16;259:1084;;;;;;;;;;;;-1:-1:-1;259:1084:119;;;;;;-1:-1:-1;259:1084:119;;;;;-1:-1:-1;259:1084:119","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106102e9575f3560e01c806329336f39146100bb57806336a52a18146100b6578063701da98e146100b1578063704ed542146100ac57806391d5a64c146100a75780639cb33005146100a25780639ce110d71461009d578063affed0e014610098578063d562422214610093578063e43f34331461008e5763f887ea40036102e9576102a5565b610290565b610255565b610238565b610210565b6101e9565b6101d3565b6101ba565b61019d565b610175565b610134565b9181601f840112156100ee5782359167ffffffffffffffff83116100ee57602083818601950101116100ee57565b5f80fd5b604435906001600160801b03821682036100ee57565b600435906001600160801b03821682036100ee57565b602435906001600160801b03821682036100ee57565b346100ee5760603660031901126100ee5760243567ffffffffffffffff81116100ee576101659036906004016100c0565b505061016f6100f2565b506102e9565b346100ee575f3660031901126100ee576001546040516001600160a01b039091168152602090f35b346100ee575f3660031901126100ee576020600354604051908152f35b346100ee5760203660031901126100ee5761016f610108565b346100ee576020366003190112156102e9575f80fd5b346100ee575f3660031901126100ee575f546040516001600160a01b039091168152602090f35b346100ee575f3660031901126100ee576002546040516001600160a01b039091168152602090f35b346100ee575f3660031901126100ee576020600454604051908152f35b346100ee5760403660031901126100ee5760043567ffffffffffffffff81116100ee576102869036906004016100c0565b505061016f61011e565b346100ee575f366003190112156102e9575f80fd5b346100ee575f3660031901126100ee576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60405163e6fabc0960e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610397575f9161033c575b506103c1565b602091503d821161038f575b601f8201601f191681019167ffffffffffffffff83118284101761037b57610375926040528101906103a2565b5f610336565b634e487b7160e01b5f52604160045260245ffd5b3d9150610348565b6040513d5f823e3d90fd5b908160209103126100ee57516001600160a01b03811681036100ee5790565b5f8091368280378136915af43d5f803e156103da573d5ff35b3d5ffdfea2646970667358221220a423a432a65943cc09c3e04e3e9411c13648dcc4fed36524adc25f89c0e3a25464736f6c634300081c0033","sourceMap":"259:1084:119:-:0;;;;;;1009:79;259:1084;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1009:79;259:1084;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;259:1084:119;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;259:1084:119;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;259:1084:119;;;;;;:::o;:::-;;;;;;-1:-1:-1;;259:1084:119;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;717:114;:::i;259:1084::-;;;;;;-1:-1:-1;;259:1084:119;;;;;;;;-1:-1:-1;;;;;259:1084:119;;;;;;;;;;;;;;-1:-1:-1;;259:1084:119;;;;;437:24;259:1084;;;;;;;;;;;;;-1:-1:-1;;259:1084:119;;;;;;:::i;:::-;;;;;;-1:-1:-1;;259:1084:119;;;919:84;259:1084;-1:-1:-1;259:1084:119;;;;;;;;-1:-1:-1;;259:1084:119;;;;;;;;-1:-1:-1;;;;;259:1084:119;;;;;;;;;;;;;;-1:-1:-1;;259:1084:119;;;;405:26;259:1084;;;-1:-1:-1;;;;;259:1084:119;;;;;;;;;;;;;;-1:-1:-1;;259:1084:119;;;;;;;;;;;;;;;;;;;-1:-1:-1;;259:1084:119;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;259:1084:119;;;1009:79;259:1084;;;;;;;;;;-1:-1:-1;;259:1084:119;;;;;;309:31;-1:-1:-1;;;;;259:1084:119;;;;;;1132:75;259:1084;;-1:-1:-1;;;1306:28:119;;;259:1084;1306:28;259:1084;1314:6;-1:-1:-1;;;;;259:1084:119;1306:28;;;;;;;-1:-1:-1;1306:28:119;;;1132:75;1182:17;;:::i;1306:28::-;;;-1:-1:-1;1306:28:119;;;;;;259:1084;;;-1:-1:-1;;259:1084:119;;;;;;;;;;;;;1306:28;259:1084;;;1306:28;;;;:::i;:::-;;;;259:1084;;;;-1:-1:-1;259:1084:119;;1306:28;259:1084;;-1:-1:-1;259:1084:119;1306:28;;;-1:-1:-1;1306:28:119;;;259:1084;;;-1:-1:-1;259:1084:119;;;;;;;;;;;;;;;-1:-1:-1;;;;;259:1084:119;;;;;;;:::o;949:895:40:-;1019:819;949:895;;1019:819;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"67787":[{"start":698,"length":32},{"start":766,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","decoder()":"9cb33005","executableBalanceTopUp(uint128)":"704ed542","inheritor()":"36a52a18","initializer()":"9ce110d7","nonce()":"affed0e0","router()":"f887ea40","sendMessage(bytes,uint128)":"d5624222","sendReply(bytes32,bytes,uint128)":"29336f39","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"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\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\":[],\"stateMutability\":\"nonpayable\",\"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\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/IMirrorProxy.sol\":{\"keccak256\":\"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469\",\"dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b\",\"dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW\"]},\"src/MirrorProxy.sol\":{\"keccak256\":\"0xea9241893d35f9d7516e21a9e6be79d645b2d62d123b0e0ef8c47dc530fa1baa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6a6ca6dcc8735f695dc92f722a37bd2ff6229d9bbcb67f7c4a09f94d1f9f80bd\",\"dweb:/ipfs/QmWyzmeuUtc5ZNg2TjPSx2GczrBYNHrTqbLWiJj9asHbZd\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831\",\"dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"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":"executableBalanceTopUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"initializer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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":"nonpayable","type":"function","name":"sendMessage"},{"inputs":[{"internalType":"bytes32","name":"repliedTo","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"transferLockedValueToInheritor"}],"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/","symbiotic-core/=lib/symbiotic-core/"],"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"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/IMirrorProxy.sol":{"keccak256":"0x56448b8905cc408f5656d47c893f3cda6623992ef1ba6a2e0a1be06b04c0b570","urls":["bzz-raw://7d148123c4f51abce8b8e92c45830dd7de3829e228f37fd2e9093616dd7b2469","dweb:/ipfs/QmTkohe2uFVsJiCKdu7QBFYff6L3tzvE7rTjnRhnjdgEmG"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf","urls":["bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b","dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW"],"license":"UNLICENSED"},"src/MirrorProxy.sol":{"keccak256":"0xea9241893d35f9d7516e21a9e6be79d645b2d62d123b0e0ef8c47dc530fa1baa","urls":["bzz-raw://6a6ca6dcc8735f695dc92f722a37bd2ff6229d9bbcb67f7c4a09f94d1f9f80bd","dweb:/ipfs/QmWyzmeuUtc5ZNg2TjPSx2GczrBYNHrTqbLWiJj9asHbZd"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de","urls":["bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831","dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[{"astId":67789,"contract":"src/MirrorProxy.sol:MirrorProxy","label":"decoder","offset":0,"slot":"0","type":"t_address"},{"astId":67791,"contract":"src/MirrorProxy.sol:MirrorProxy","label":"inheritor","offset":0,"slot":"1","type":"t_address"},{"astId":67793,"contract":"src/MirrorProxy.sol:MirrorProxy","label":"initializer","offset":0,"slot":"2","type":"t_address"},{"astId":67795,"contract":"src/MirrorProxy.sol:MirrorProxy","label":"stateHash","offset":0,"slot":"3","type":"t_bytes32"},{"astId":67797,"contract":"src/MirrorProxy.sol:MirrorProxy","label":"nonce","offset":0,"slot":"4","type":"t_uint256"}],"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/MirrorProxy.sol","id":67880,"exportedSymbols":{"IMirrorProxy":[65223],"IRouter":[65486],"MirrorProxy":[67879],"Proxy":[42880]},"nodeType":"SourceUnit","src":"39:1305:119","nodes":[{"id":67775,"nodeType":"PragmaDirective","src":"39:24:119","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":67777,"nodeType":"ImportDirective","src":"65:62:119","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol","file":"@openzeppelin/contracts/proxy/Proxy.sol","nameLocation":"-1:-1:-1","scope":67880,"sourceUnit":42881,"symbolAliases":[{"foreign":{"id":67776,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42880,"src":"73:5:119","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67779,"nodeType":"ImportDirective","src":"128:48:119","nodes":[],"absolutePath":"src/IMirrorProxy.sol","file":"./IMirrorProxy.sol","nameLocation":"-1:-1:-1","scope":67880,"sourceUnit":65224,"symbolAliases":[{"foreign":{"id":67778,"name":"IMirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65223,"src":"136:12:119","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67781,"nodeType":"ImportDirective","src":"177:38:119","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":67880,"sourceUnit":65487,"symbolAliases":[{"foreign":{"id":67780,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65486,"src":"185:7:119","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67879,"nodeType":"ContractDefinition","src":"259:1084:119","nodes":[{"id":67787,"nodeType":"VariableDeclaration","src":"309:31:119","nodes":[],"baseFunctions":[65222],"constant":false,"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"334:6:119","scope":67879,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67786,"name":"address","nodeType":"ElementaryTypeName","src":"309:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67789,"nodeType":"VariableDeclaration","src":"347:22:119","nodes":[],"constant":false,"functionSelector":"9cb33005","mutability":"mutable","name":"decoder","nameLocation":"362:7:119","scope":67879,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67788,"name":"address","nodeType":"ElementaryTypeName","src":"347:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67791,"nodeType":"VariableDeclaration","src":"375:24:119","nodes":[],"constant":false,"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"390:9:119","scope":67879,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67790,"name":"address","nodeType":"ElementaryTypeName","src":"375:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67793,"nodeType":"VariableDeclaration","src":"405:26:119","nodes":[],"constant":false,"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"420:11:119","scope":67879,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67792,"name":"address","nodeType":"ElementaryTypeName","src":"405:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":67795,"nodeType":"VariableDeclaration","src":"437:24:119","nodes":[],"constant":false,"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"452:9:119","scope":67879,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67794,"name":"bytes32","nodeType":"ElementaryTypeName","src":"437:7:119","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":67797,"nodeType":"VariableDeclaration","src":"467:20:119","nodes":[],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"482:5:119","scope":67879,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67796,"name":"uint256","nodeType":"ElementaryTypeName","src":"467:7:119","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":67807,"nodeType":"FunctionDefinition","src":"494:62:119","nodes":[],"body":{"id":67806,"nodeType":"Block","src":"523:33:119","nodes":[],"statements":[{"expression":{"id":67804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67802,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67787,"src":"533:6:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":67803,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67799,"src":"542:7:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"533:16:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67805,"nodeType":"ExpressionStatement","src":"533:16:119"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":67800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67799,"mutability":"mutable","name":"_router","nameLocation":"514:7:119","nodeType":"VariableDeclaration","scope":67807,"src":"506:15:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67798,"name":"address","nodeType":"ElementaryTypeName","src":"506:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"505:17:119"},"returnParameters":{"id":67801,"nodeType":"ParameterList","parameters":[],"src":"523:0:119"},"scope":67879,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67818,"nodeType":"FunctionDefinition","src":"592:119:119","nodes":[],"body":{"id":67817,"nodeType":"Block","src":"683:28:119","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67814,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[67865,42855],"referencedDeclaration":67865,"src":"693:9:119","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"693:11:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67816,"nodeType":"ExpressionStatement","src":"693:11:119"}]},"functionSelector":"d5624222","implemented":true,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"601:11:119","parameters":{"id":67812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67809,"mutability":"mutable","name":"payload","nameLocation":"628:7:119","nodeType":"VariableDeclaration","scope":67818,"src":"613:22:119","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":67808,"name":"bytes","nodeType":"ElementaryTypeName","src":"613:5:119","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":67811,"mutability":"mutable","name":"value","nameLocation":"645:5:119","nodeType":"VariableDeclaration","scope":67818,"src":"637:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67810,"name":"uint128","nodeType":"ElementaryTypeName","src":"637:7:119","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"612:39:119"},"returnParameters":{"id":67813,"nodeType":"ParameterList","parameters":[],"src":"683:0:119"},"scope":67879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67831,"nodeType":"FunctionDefinition","src":"717:114:119","nodes":[],"body":{"id":67830,"nodeType":"Block","src":"803:28:119","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67827,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[67865,42855],"referencedDeclaration":67865,"src":"813:9:119","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"813:11:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67829,"nodeType":"ExpressionStatement","src":"813:11:119"}]},"functionSelector":"29336f39","implemented":true,"kind":"function","modifiers":[],"name":"sendReply","nameLocation":"726:9:119","parameters":{"id":67825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67820,"mutability":"mutable","name":"repliedTo","nameLocation":"744:9:119","nodeType":"VariableDeclaration","scope":67831,"src":"736:17:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"736:7:119","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":67822,"mutability":"mutable","name":"payload","nameLocation":"770:7:119","nodeType":"VariableDeclaration","scope":67831,"src":"755:22:119","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":67821,"name":"bytes","nodeType":"ElementaryTypeName","src":"755:5:119","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":67824,"mutability":"mutable","name":"value","nameLocation":"787:5:119","nodeType":"VariableDeclaration","scope":67831,"src":"779:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67823,"name":"uint128","nodeType":"ElementaryTypeName","src":"779:7:119","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"735:58:119"},"returnParameters":{"id":67826,"nodeType":"ParameterList","parameters":[],"src":"803:0:119"},"scope":67879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67840,"nodeType":"FunctionDefinition","src":"837:76:119","nodes":[],"body":{"id":67839,"nodeType":"Block","src":"885:28:119","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67836,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[67865,42855],"referencedDeclaration":67865,"src":"895:9:119","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"895:11:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67838,"nodeType":"ExpressionStatement","src":"895:11:119"}]},"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[],"name":"claimValue","nameLocation":"846:10:119","parameters":{"id":67834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67833,"mutability":"mutable","name":"claimedId","nameLocation":"865:9:119","nodeType":"VariableDeclaration","scope":67840,"src":"857:17:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"857:7:119","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"856:19:119"},"returnParameters":{"id":67835,"nodeType":"ParameterList","parameters":[],"src":"885:0:119"},"scope":67879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67849,"nodeType":"FunctionDefinition","src":"919:84:119","nodes":[],"body":{"id":67848,"nodeType":"Block","src":"975:28:119","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67845,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[67865,42855],"referencedDeclaration":67865,"src":"985:9:119","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"985:11:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67847,"nodeType":"ExpressionStatement","src":"985:11:119"}]},"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[],"name":"executableBalanceTopUp","nameLocation":"928:22:119","parameters":{"id":67843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67842,"mutability":"mutable","name":"value","nameLocation":"959:5:119","nodeType":"VariableDeclaration","scope":67849,"src":"951:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67841,"name":"uint128","nodeType":"ElementaryTypeName","src":"951:7:119","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"950:15:119"},"returnParameters":{"id":67844,"nodeType":"ParameterList","parameters":[],"src":"975:0:119"},"scope":67879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67856,"nodeType":"FunctionDefinition","src":"1009:79:119","nodes":[],"body":{"id":67855,"nodeType":"Block","src":"1060:28:119","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67852,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[67865,42855],"referencedDeclaration":67865,"src":"1070:9:119","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:11:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67854,"nodeType":"ExpressionStatement","src":"1070:11:119"}]},"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[],"name":"transferLockedValueToInheritor","nameLocation":"1018:30:119","parameters":{"id":67850,"nodeType":"ParameterList","parameters":[],"src":"1048:2:119"},"returnParameters":{"id":67851,"nodeType":"ParameterList","parameters":[],"src":"1060:0:119"},"scope":67879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67865,"nodeType":"FunctionDefinition","src":"1132:75:119","nodes":[],"body":{"id":67864,"nodeType":"Block","src":"1162:45:119","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":67860,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[67878],"referencedDeclaration":67878,"src":"1182:15:119","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":67861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1182:17:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67859,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[67865,42855],"referencedDeclaration":42855,"src":"1172:9:119","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":67862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1172:28:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67863,"nodeType":"ExpressionStatement","src":"1172:28:119"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"1141:9:119","parameters":{"id":67857,"nodeType":"ParameterList","parameters":[],"src":"1150:2:119"},"returnParameters":{"id":67858,"nodeType":"ParameterList","parameters":[],"src":"1162:0:119"},"scope":67879,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":67878,"nodeType":"FunctionDefinition","src":"1213:128:119","nodes":[],"body":{"id":67877,"nodeType":"Block","src":"1289:52:119","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":67872,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67787,"src":"1314:6:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67871,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65486,"src":"1306:7:119","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$65486_$","typeString":"type(contract IRouter)"}},"id":67873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1306:15:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$65486","typeString":"contract IRouter"}},"id":67874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1322:10:119","memberName":"mirrorImpl","nodeType":"MemberAccess","referencedDeclaration":65319,"src":"1306:26:119","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":67875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1306:28:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67870,"id":67876,"nodeType":"Return","src":"1299:35:119"}]},"baseFunctions":[42861],"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1222:15:119","overrides":{"id":67867,"nodeType":"OverrideSpecifier","overrides":[],"src":"1262:8:119"},"parameters":{"id":67866,"nodeType":"ParameterList","parameters":[],"src":"1237:2:119"},"returnParameters":{"id":67870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67869,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67878,"src":"1280:7:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67868,"name":"address","nodeType":"ElementaryTypeName","src":"1280:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1279:9:119"},"scope":67879,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":67782,"name":"IMirrorProxy","nameLocations":["283:12:119"],"nodeType":"IdentifierPath","referencedDeclaration":65223,"src":"283:12:119"},"id":67783,"nodeType":"InheritanceSpecifier","src":"283:12:119"},{"baseName":{"id":67784,"name":"Proxy","nameLocations":["297:5:119"],"nodeType":"IdentifierPath","referencedDeclaration":42880,"src":"297:5:119"},"id":67785,"nodeType":"InheritanceSpecifier","src":"297:5:119"}],"canonicalName":"MirrorProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[67879,42880,65223],"name":"MirrorProxy","nameLocation":"268:11:119","scope":67880,"usedErrors":[],"usedEvents":[]}],"license":"UNLICENSED"},"id":119} \ No newline at end of file diff --git a/ethexe/ethereum/Router.json b/ethexe/ethereum/Router.json index fde5c74dd89..da603721246 100644 --- a/ethexe/ethereum/Router.json +++ b/ethexe/ethereum/Router.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"areValidators","inputs":[{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Gear.CodeState"}],"stateMutability":"view"},{"type":"function","name":"codesStates","inputs":[{"name":"_codesIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint8[]","internalType":"enum Gear.CodeState[]"}],"stateMutability":"view"},{"type":"function","name":"commitBlocks","inputs":[{"name":"_blockCommitments","type":"tuple[]","internalType":"struct Gear.BlockCommitment[]","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBlock","type":"bytes32","internalType":"bytes32"},{"name":"predecessorBlock","type":"bytes32","internalType":"bytes32"},{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.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 Gear.Message[]","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 Gear.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":"_codeCommitments","type":"tuple[]","internalType":"struct Gear.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":"commitValidators","inputs":[{"name":"commitment","type":"tuple","internalType":"struct Gear.ValidatorsCommitment","components":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeSettings","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"createProgram","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithDecoder","inputs":[{"name":"_decoderImpl","type":"address","internalType":"address"},{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"genesisTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_mirrorProxy","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isValidator","inputs":[{"name":"_validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorProxyImpl","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":"_programId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCodeIds","inputs":[{"name":"_programsIds","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":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdPercentage","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BlockCommitted","inputs":[{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"codeId","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":"ComputationSettingsChanged","inputs":[{"name":"threshold","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"NextEraValidatorsCommitted","inputs":[{"name":"startTimestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"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":"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":"0x6080806040523460aa575f516020612e715f395f51905f525460ff8160401c16609b576002600160401b03196001600160401b038216016049575b604051612dc290816100af8239f35b6001600160401b0319166001600160401b039081175f516020612e715f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80603a565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081627a32e7146121415750806301b1d15614611a035780631c149d8a146118aa57806328e24b3d146118805780633d43b4181461182e578063527de0f9146117ac57806365ecfea2146117735780636c2eb3501461148c578063715018a61461142357806382bdeaad1461130b57806384d22a4f146112a257806388f50cf0146112695780638b1edf1e146111a25780638da5cb5b1461116d5780638f381dbe146111275780639067088e146110de57806396a2ddfa146110b0578063aaf0fe6a14610d13578063b1669a3314610865578063baaf020114610768578063c13911e814610724578063c9f16a11146106f6578063ca1e781914610675578063cacf66ab1461063d578063e6fabc0914610604578063e7006a74146104e3578063e97d3eb3146102b0578063ed612f8c1461027a578063edc8722514610231578063efd81abc146101ff578063f2fde38b146101d25763facd743b1461017d575f80fd5b346101cf5760203660031901126101cf576101966121b1565b6101ad5f516020612d4d5f395f51905f52546128d5565b9060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346101cf5760203660031901126101cf576101fc6101ef6121b1565b6101f7612729565b61254b565b80f35b50346101cf57806003193601126101cf57602061ffff60075f516020612d4d5f395f51905f5254015416604051908152f35b50346101cf57806003193601126101cf5760206102725f516020612d4d5f395f51905f525461ffff60076001610266846128d5565b01549201541690612a22565b604051908152f35b50346101cf57806003193601126101cf57602060016102a65f516020612d4d5f395f51905f52546128d5565b0154604051908152f35b50346101cf5760403660031901126101cf57600435906001600160401b0382116101cf57366023830112156101cf578160040135916001600160401b0383116104df573660248460061b830101116104df576024356001600160401b0381116104db57906103238492369060040161216b565b935f516020612d4d5f395f51905f525492610340845415156121e8565b606095829360118601975b878610156104be578560061b84016024810135918287528a60205260ff60408820541660038110156104aa57600103610447576001926103fa6044610427940161039481612530565b1561042f57828a528d60205260408a20600260ff1982541617905560148c016103bd815461253d565b90555b6103c981612530565b15157f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020604051868152a2612530565b6040519060208201928352151560f81b60408201526021815261041e6041826122a4565b519020906122c5565b95019461034b565b828a528d60205260408a2060ff1981541690556103c0565b60405162461bcd60e51b815260206004820152603560248201527f636f6465206d7573742062652072657175657374656420666f722076616c6964604482015274185d1a5bdb881d1bc818994818dbdb5b5a5d1d1959605a1b6064820152608490fd5b634e487b7160e01b88526021600452602488fd5b84926101fc92886104d69360208151910120906125cf565b6122f4565b8280fd5b5080fd5b50346101cf5760603660031901126101cf576104fd6121b1565b6024359061054560443591610512838561275c565b9360405193602085019182526040850152604084526105326060856122a4565b92519092206001600160a01b0392612c47565b16803b156104db5760405163189acdbd60e31b81526001600160a01b0390921660048301819052918390818160248183875af180156105f9576105e4575b5050813b156104db576040519063485cc95560e01b82523360048301526024820152828160448183865af180156105d9576105c4575b602082604051908152f35b6105cf8380926122a4565b6104df57816105b9565b6040513d85823e3d90fd5b816105ee916122a4565b6104db57825f610583565b6040513d84823e3d90fd5b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600401546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf57602065ffffffffffff60015f516020612d4d5f395f51905f52540154821c16604051908152f35b50346101cf57806003193601126101cf576106a860016106a25f516020612d4d5f395f51905f52546128d5565b01612340565b90604051918291602083016020845282518091526020604085019301915b8181106106d4575050500390f35b82516001600160a01b03168452859450602093840193909201916001016106c6565b50346101cf57806003193601126101cf57602060025f516020612d4d5f395f51905f52540154604051908152f35b50346101cf5760203660031901126101cf5760ff604060209260115f516020612d4d5f395f51905f5254016004358252845220541661076660405180926121db565bf35b50346101cf5760203660031901126101cf576004356001600160401b0381116104df5761079990369060040161216b565b905f516020612d4d5f395f51905f5254906107b383612391565b916107c160405193846122a4565b8383526107cd84612391565b602084019490601f19013686376012869201915b81811061082c57868587604051928392602084019060208552518091526040840192915b818110610813575050500390f35b8251845285945060209384019390920191600101610805565b8061084261083d60019385886123a8565b6123f8565b828060a01b03165f528360205260405f205461085e82886123cc565b52016107e1565b50346101cf5760e03660031901126101cf5761087f6121b1565b6024356001600160a01b03811691908290036104db576044356001600160a01b0381169290839003610d0f576064356001600160a01b0381169190829003610d0b576084359160a43560c4356001600160401b038111610d07576108e790369060040161216b565b9490925f516020612d6d5f395f51905f52549660ff8860401c1615976001600160401b03811680159081610cff575b6001149081610cf5575b159081610cec575b50610cdd5767ffffffffffffffff1981166001175f516020612d6d5f395f51905f5255610967919089610cb1575b5061095f612b82565b6101f7612b82565b4215610c5b578215610c055782821115610ba457604097885161098a8a826122a4565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526109be612729565b5190205f198101908111610b905792610b3697969592600895928b610b2f966109f48251926020840192835260208452836122a4565b60ff19915190201697885f516020612d4d5f395f51905f52558c610a16612890565b80518b5560018b019169ffffffffffff0000000063ffffffff60208401511691845493015160201b169169ffffffffffffffffffff191617179055828d8051610a5e81612289565b8381526020810185905201526004890180546001600160a01b03199081166001600160a01b039384161790915560058a018054821693831693909317909255600689018054909216921691909117905560078601805461ffff1916611a0a179055610ac76123e0565b506509184e72a00060208b51610adc8161225a565b639502f90081520152600e860180546001600160c01b0319166d09184e72a000000000009502f90017905589518290602090610b178161225a565b8381520152600f8601556010850155429436916124a7565b91016128ef565b610b3e575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020612d6d5f395f51905f5254165f516020612d6d5f395f51905f52555160018152a180f35b634e487b7160e01b8b52601160045260248bfd5b60405162461bcd60e51b815260206004820152603360248201527f657261206475726174696f6e206d757374206265206772656174657220746861604482015272371032b632b1ba34b7b710323ab930ba34b7b760691b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f656c656374696f6e206475726174696f6e206d75737420626520677265617465604482015267072207468616e20360c41b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f63757272656e742074696d657374616d70206d75737420626520677265617465604482015267072207468616e20360c41b6064820152608490fd5b68ffffffffffffffffff191668010000000000000001175f516020612d6d5f395f51905f52555f610956565b63f92ee8a960e01b8b5260048bfd5b9050155f610928565b303b159150610920565b8a9150610916565b8780fd5b8480fd5b8380fd5b50346101cf5760403660031901126101cf57600435906001600160401b0382116101cf5781600401604060031984360301126104df576024356001600160401b0381116104db57610d6890369060040161216b565b91905f516020612d4d5f395f51905f52549265ffffffffffff600185015460201c1691610d958342612473565b94600f81015495861561109c5786900495602489013596600181018091116110885787036110305786610dc791612494565b840180941161101c57610dde601082015485612473565b4210610fd757610ded81612a08565b954260028801541015610f775760405198610e078a61225a565b8635906001600160401b038211610f73570136602382011215610f6f576020610e3b839236906024600482013591016124a7565b9a8b8152015260405160208101918260208c51919c01908b5b818110610f50575050506020828c610e7a93610e9f9a9b9c9d9e520380845201826122a4565b5190206040516020810191825260208152610e966040826122a4565b519020906125cf565b15610ef057610ee6817f41e7f919bf726af8aa2ef36bd31905a693013e30c45c6284060e613d4941997b94610ee0610ed9866020976124fb565b36916124a7565b906128ef565b604051908152a180f35b60405162461bcd60e51b815260206004820152603260248201527f6e657874206572612076616c696461746f7273207369676e6174757265732076604482015271195c9a599a58d85d1a5bdb8819985a5b195960721b6064820152608490fd5b82516001600160a01b03168e5260209d8e019d90920191600101610e54565b8880fd5b8980fd5b60405162461bcd60e51b815260206004820152603260248201527f6c6f6f6b73206c696b652076616c696461746f727320666f72206e65787420656044820152711c9848185c9948185b1c9958591e481cd95d60721b6064820152608490fd5b60405162461bcd60e51b815260206004820152601b60248201527f656c656374696f6e206973206e6f7420796574207374617274656400000000006044820152606490fd5b634e487b7160e01b87526011600452602487fd5b60405162461bcd60e51b815260206004820152602a60248201527f636f6d6d69746d656e742065726120696e646578206973206e6f74206e657874604482015269040cae4c240d2dcc8caf60b31b6064820152608490fd5b634e487b7160e01b89526011600452602489fd5b634e487b7160e01b88526012600452602488fd5b50346101cf57806003193601126101cf57602060135f516020612d4d5f395f51905f52540154604051908152f35b50346101cf5760203660031901126101cf576110f86121b1565b60125f516020612d4d5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b50346101cf5760203660031901126101cf57600435906001600160401b0382116101cf57602061116361115d366004860161216b565b9061240c565b6040519015158152f35b50346101cf57806003193601126101cf575f516020612d2d5f395f51905f52546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f525480546112245763ffffffff600182015416409081156111df575580f35b60405162461bcd60e51b815260206004820152601d60248201527f756e61626c6520746f206c6f6f6b75702067656e6573697320686173680000006044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f67656e65736973206861736820616c72656164792073657400000000000000006044820152606490fd5b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf576112bb6123e0565b506040600e5f516020612d4d5f395f51905f5254016001600160801b038251916112e48361225a565b548160206001600160401b038316948581520191851c168152835192835251166020820152f35b50346101cf5760203660031901126101cf576004356001600160401b0381116104df5761133c90369060040161216b565b905f516020612d4d5f395f51905f52549061135683612391565b9161136460405193846122a4565b83835261137084612391565b602084019490601f19013686376011869201915b8181106113d957868587604051928392602084019060208552518091526040840192915b8181106113b6575050500390f35b91935091602080826113cb60019488516121db565b0194019101918493926113a8565b6113e48183866123a8565b3587528260205260ff6040882054166113fd82876123cc565b600382101561140f5752600101611384565b634e487b7160e01b89526021600452602489fd5b50346101cf57806003193601126101cf5761143c612729565b5f516020612d2d5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101cf57806003193601126101cf576114a5612729565b5f516020612d6d5f395f51905f525460ff8160401c16801561175f575b61175057680100000000000000029068ffffffffffffffffff1916175f516020612d6d5f395f51905f52555f516020612d4d5f395f51905f5254604090815161150b83826122a4565b6017815260208101907f726f757465722e73746f726167652e526f757465725632000000000000000000825261153f612729565b5190205f19810190811161173c57916020917fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29382519084820190815284825261158984836122a4565b60ff19915190201690815f516020612d4d5f395f51905f52556115aa612890565b80518355600183019063ffffffff868201511669ffffffffffff00000000868454930151881b169169ffffffffffffffffffff1916171790556004810160048301908082036116ee575b505061ffff600782015416600783019061ffff19825416179055611630600161161c836128d5565b016116274291612340565b600885016128ef565b600e8101600e83019080820361169c575b5050600f8101600f830191818303611686575b5050505060ff60401b195f516020612d6d5f395f51905f5254165f516020612d6d5f395f51905f52555160028152a180f35b601092839254905501549101555f808080611654565b806001600160401b03806001600160801b03935416166001600160401b031984541617835554851c16600160401b600160c01b03825491861b1690600160401b600160c01b0319161790555f80611641565b5481546001600160a01b03199081166001600160a01b039283161790925560058381015490850180548416918316919091179055600680840154908501805490931691161790555f806115f4565b634e487b7160e01b84526011600452602484fd5b63f92ee8a960e01b8252600482fd5b5060026001600160401b03821610156114c2565b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600501546040516001600160a01b039091168152602090f35b3461182a576117cc6117bd3661219b565b6001600160a01b03929161275c565b16803b1561182a576040519063485cc95560e01b82523360048301525f60248301525f8260448183855af191821561181f5760209261180f575b50604051908152f35b5f611819916122a4565b5f611806565b6040513d5f823e3d90fd5b5f80fd5b3461182a57602036600319011261182a576118476121b1565b61184f612729565b5f516020612d4d5f395f51905f525460040180546001600160a01b0319166001600160a01b03909216919091179055005b3461182a575f36600319011261182a5760205f516020612d4d5f395f51905f525454604051908152f35b3461182a576118b83661219b565b9081158015906119f9575b156119be5760115f516020612d4d5f395f51905f52546118e5815415156121e8565b0190805f528160205260ff60405f20541660038110156119aa57611949577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603360248201527f676976656e20636f646520696420697320616c7265616479206f6e2076616c6960448201527219185d1a5bdb881bdc881d985b1a59185d1959606a1b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b60405162461bcd60e51b8152602060048201526013602482015272189b1bd88818d85b89dd08189948199bdd5b99606a1b6044820152606490fd5b505f4915156118c3565b3461182a57604036600319011261182a576004356001600160401b03811161182a57611a3390369060040161216b565b6024356001600160401b03811161182a57611a5290369060040161216b565b90927f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6121325760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020612d4d5f395f51905f525491611aba835415156121e8565b60605f915b858310156120f6578260051b840135609e198536030181121561182a5784019060028601546040830135036120a357611afb6060830135612a44565b1561204f57949396959291906020611b148183016125bc565b65ffffffffffff60405191611b288361225a565b843583521691829101528135600287015565ffffffffffff19600387015416176003860155611b5a60808201826124fb565b9690946060995f925b89841015611fac578360051b88013560be198936030181121561182a5788019b611b8c8d6123f8565b6001600160a01b03165f90815260128b01602052604090205415611f4f5760068a01548d906001600160a01b03166060611bc5836123f8565b92019182356001600160801b03811680910361182a5760405163a9059cbb60e01b81526001600160a01b039092166004830152602482015290602090829060449082905f905af1801561181f57611f19575b506001600160a01b03611c298f6123f8565b6040516309ed323560e41b8152602060048201529f9116918f919060e48301906001600160801b0390611c96906001600160a01b03611c67866121c7565b166024870152602085013560448701526001600160a01b03611c8b604087016121c7565b166064870152612a87565b16608484015236829003601e19019060808301358281121561182a57830190602082359201946001600160401b03831161182a57606083023603861361182a57826101049260c060a4840152520193905f905b808210611ecf575050509e9f939495969798999a9b9c9d9e60a08201359081121561182a570190813560208301926001600160401b03821161182a578160051b91823603851361182a578684036023190160c48801528084528694928401602090810194908101925f923682900360de19019290915b828510611dd6575050505050505091815f8160209503925af190811561181f575f91611da4575b50611d93906001926122c5565b9b9a99989796959401929190611b63565b90506020813d8211611dce575b81611dbe602093836122a4565b8101031261182a57516001611d86565b3d9150611db1565b9193959750919395601f1983820301875287358581121561182a57820160208101358252906001600160a01b03611e0f604084016121c7565b1660208201526060820135603e19368490030181121561182a5782602091010191602083359301906001600160401b03841161182a57833603821361182a578360c092836040860152818486015260e08501375f60e085850101526001600160801b03611e7e60808301612a87565b16606084015260a0810135608084015201359163ffffffff60e01b831680930361182a5760e0826020939260019560a086950152601f80199101160101990197019501929091899796959492611d5f565b90919460608060019288358152838060a01b03611eee60208b016121c7565b1660208201526001600160801b03611f0860408b01612a87565b166040820152019601920190611ce9565b6020813d8211611f47575b81611f31602093836122a4565b8101031261182a57518015158114611c17575f80fd5b3d9150611f24565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b96509697509793986001939150916120469260208151910120907fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e602060405183358152a1611ffd602082016125bc565b9160606040519260208401948135865265ffffffffffff60d01b9060d01b166040850152604081013560468501520135606683015260868201526086815261041e60a6826122a4565b91960191611abf565b60405162461bcd60e51b815260206004820152602660248201527f616c6c6f776564207072656465636573736f7220626c6f636b207761736e277460448201526508199bdd5b9960d21b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f696e76616c69642070726576696f757320636f6d6d697474656420626c6f636b604482015264040d0c2e6d60db1b6064820152608490fd5b6104d690878661210d9460208151910120906125cf565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b3461182a575f36600319011261182a5760209060145f516020612d4d5f395f51905f525401548152f35b9181601f8401121561182a578235916001600160401b03831161182a576020808501948460051b01011161182a57565b604090600319011261182a576004359060243590565b600435906001600160a01b038216820361182a57565b35906001600160a01b038216820361182a57565b9060038210156119aa5752565b156121ef57565b60405162461bcd60e51b815260206004820152603860248201527f726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f60448201527f6f6b757047656e657369734861736828296020666972737400000000000000006064820152608490fd5b604081019081106001600160401b0382111761227557604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761227557604052565b90601f801991011681019081106001600160401b0382111761227557604052565b6020806122f2928195946040519682889351918291018585015e82019083820152030180855201836122a4565b565b156122fb57565b60405162461bcd60e51b815260206004820152601e60248201527f7369676e61747572657320766572696669636174696f6e206661696c656400006044820152606490fd5b90604051918281549182825260208201905f5260205f20925f5b81811061236f5750506122f2925003836122a4565b84546001600160a01b031683526001948501948794506020909301920161235a565b6001600160401b0381116122755760051b60200190565b91908110156123b85760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156123b85760209160051b010190565b604051906123ed8261225a565b5f6020838281520152565b356001600160a01b038116810361182a5790565b6124235f516020612d4d5f395f51905f52546128d5565b905f5b8381106124365750505050600190565b61244461083d8286856123a8565b6001600160a01b03165f9081526020849052604090205460ff161561246b57600101612426565b505050505f90565b9190820391821161248057565b634e487b7160e01b5f52601160045260245ffd5b8181029291811591840414171561248057565b9291906124b381612391565b936124c160405195866122a4565b602085838152019160051b810192831161182a57905b8282106124e357505050565b602080916124f0846121c7565b8152019101906124d7565b903590601e198136030182121561182a57018035906001600160401b03821161182a57602001918160051b3603831361182a57565b35801515810361182a5790565b5f1981146124805760010190565b6001600160a01b031680156125a9575f516020612d2d5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b3565ffffffffffff8116810361182a5790565b9190916125f36125de826128d5565b9161ffff600760018501549201541690612a22565b9260405190602082019081526020825261260e6040836122a4565b61264a603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f1981018352826122a4565b5190205f925f5b8681101561271e578060051b820135601e198336030181121561182a5782018035906001600160401b03821161182a576020810190823603821361182a57604051906126a7601f8501601f1916602001836122a4565b838252602084369201011161182a575f6020846126d9956126d095838601378301015285612bad565b90929192612be7565b6001600160a01b03165f9081526020859052604090205460ff16612700575b600101612651565b9361270a9061253d565b938585036126f85750505050505050600190565b505050505050505f90565b5f516020612d2d5f395f51905f52546001600160a01b0316330361274957565b63118cdaa760e01b5f523360045260245ffd5b5f516020612d4d5f395f51905f525491612778835415156121e8565b815f526011830160205260ff60405f20541660038110156119aa57600203612834576127d660139160018060a01b036005860154169060405160208101918683526040820152604081526127cd6060826122a4565b51902090612c47565b9260018060a01b0384165f52601281016020528260405f2055016127fa815461253d565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a290565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f6040805161289e81612289565b82815282602082015201526040516128b581612289565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6128de81612a9b565b156128e957600b0190565b60080190565b905f5b6001830190815481101561292f575f91825260208083208201546001600160a01b031683528490526040909120805460ff191690556001016128f2565b50505f5b8151811015612974576001906001600160a01b0361295182856123cc565b5116828060a01b03165f528360205260405f208260ff1982541617905501612933565b50600182018151916001600160401b038311612275576801000000000000000083116122755781548383558084106129e2575b50602001905f5260205f205f5b8381106129c5575050505060020155565b82516001600160a01b0316818301556020909201916001016129b4565b825f528360205f2091820191015b8181106129fd57506129a7565b5f81556001016129f0565b612a1181612a9b565b15612a1c5760080190565b600b0190565b61ffff612a30921690612494565b61270f810180911161248057612710900490565b905f19430143811161248057805b612a5d575b505f9150565b8040838103612a6e57506001925050565b15612a82578015612480575f190180612a52565b612a57565b35906001600160801b038216820361182a57565b600d600a820154910154808214612b3e5780821091421090811590421015918190612b37575b15612ad65782612ad057505090565b14919050565b60405162461bcd60e51b815260206004820152603360248201527f636f756c64206e6f74206964656e746966792076616c696461746f727320666f6044820152720722063757272656e742074696d657374616d7606c1b6064820152608490fd5b5081612ac1565b606460405162461bcd60e51b815260206004820152602060248201527f657261732074696d657374616d70206d757374206e6f7420626520657175616c6044820152fd5b60ff5f516020612d6d5f395f51905f525460401c1615612b9e57565b631afcd79f60e31b5f5260045ffd5b8151919060418303612bdd57612bd69250602082015190606060408401519301515f1a90612caa565b9192909190565b50505f9160029190565b60048110156119aa5780612bf9575050565b60018103612c105763f645eedf60e01b5f5260045ffd5b60028103612c2b575063fce698f760e01b5f5260045260245ffd5b600314612c355750565b6335e2f38360e21b5f5260045260245ffd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b17602052603760095ff5906001600160a01b03821615612c9b57565b63b06ebf3d60e01b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612d21579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561181f575f516001600160a01b03811615612d1757905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f66e3e1bc4037348273211a9406000b46d6c209d6dcb3083248113c6033f9a2b64736f6c634300081c0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"690:16205:120:-:0;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;7896:76:25;;-1:-1:-1;;;;;;;;;;;690:16205:120;;7985:34:25;7981:146;;-1:-1:-1;690:16205:120;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;690:16205:120;-1:-1:-1;;;;;690:16205:120;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;8087:29:25;;690:16205:120;;8087:29:25;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:25;;-1:-1:-1;7938:23:25;690:16205:120;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081627a32e7146121415750806301b1d15614611a035780631c149d8a146118aa57806328e24b3d146118805780633d43b4181461182e578063527de0f9146117ac57806365ecfea2146117735780636c2eb3501461148c578063715018a61461142357806382bdeaad1461130b57806384d22a4f146112a257806388f50cf0146112695780638b1edf1e146111a25780638da5cb5b1461116d5780638f381dbe146111275780639067088e146110de57806396a2ddfa146110b0578063aaf0fe6a14610d13578063b1669a3314610865578063baaf020114610768578063c13911e814610724578063c9f16a11146106f6578063ca1e781914610675578063cacf66ab1461063d578063e6fabc0914610604578063e7006a74146104e3578063e97d3eb3146102b0578063ed612f8c1461027a578063edc8722514610231578063efd81abc146101ff578063f2fde38b146101d25763facd743b1461017d575f80fd5b346101cf5760203660031901126101cf576101966121b1565b6101ad5f516020612d4d5f395f51905f52546128d5565b9060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346101cf5760203660031901126101cf576101fc6101ef6121b1565b6101f7612729565b61254b565b80f35b50346101cf57806003193601126101cf57602061ffff60075f516020612d4d5f395f51905f5254015416604051908152f35b50346101cf57806003193601126101cf5760206102725f516020612d4d5f395f51905f525461ffff60076001610266846128d5565b01549201541690612a22565b604051908152f35b50346101cf57806003193601126101cf57602060016102a65f516020612d4d5f395f51905f52546128d5565b0154604051908152f35b50346101cf5760403660031901126101cf57600435906001600160401b0382116101cf57366023830112156101cf578160040135916001600160401b0383116104df573660248460061b830101116104df576024356001600160401b0381116104db57906103238492369060040161216b565b935f516020612d4d5f395f51905f525492610340845415156121e8565b606095829360118601975b878610156104be578560061b84016024810135918287528a60205260ff60408820541660038110156104aa57600103610447576001926103fa6044610427940161039481612530565b1561042f57828a528d60205260408a20600260ff1982541617905560148c016103bd815461253d565b90555b6103c981612530565b15157f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020604051868152a2612530565b6040519060208201928352151560f81b60408201526021815261041e6041826122a4565b519020906122c5565b95019461034b565b828a528d60205260408a2060ff1981541690556103c0565b60405162461bcd60e51b815260206004820152603560248201527f636f6465206d7573742062652072657175657374656420666f722076616c6964604482015274185d1a5bdb881d1bc818994818dbdb5b5a5d1d1959605a1b6064820152608490fd5b634e487b7160e01b88526021600452602488fd5b84926101fc92886104d69360208151910120906125cf565b6122f4565b8280fd5b5080fd5b50346101cf5760603660031901126101cf576104fd6121b1565b6024359061054560443591610512838561275c565b9360405193602085019182526040850152604084526105326060856122a4565b92519092206001600160a01b0392612c47565b16803b156104db5760405163189acdbd60e31b81526001600160a01b0390921660048301819052918390818160248183875af180156105f9576105e4575b5050813b156104db576040519063485cc95560e01b82523360048301526024820152828160448183865af180156105d9576105c4575b602082604051908152f35b6105cf8380926122a4565b6104df57816105b9565b6040513d85823e3d90fd5b816105ee916122a4565b6104db57825f610583565b6040513d84823e3d90fd5b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600401546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf57602065ffffffffffff60015f516020612d4d5f395f51905f52540154821c16604051908152f35b50346101cf57806003193601126101cf576106a860016106a25f516020612d4d5f395f51905f52546128d5565b01612340565b90604051918291602083016020845282518091526020604085019301915b8181106106d4575050500390f35b82516001600160a01b03168452859450602093840193909201916001016106c6565b50346101cf57806003193601126101cf57602060025f516020612d4d5f395f51905f52540154604051908152f35b50346101cf5760203660031901126101cf5760ff604060209260115f516020612d4d5f395f51905f5254016004358252845220541661076660405180926121db565bf35b50346101cf5760203660031901126101cf576004356001600160401b0381116104df5761079990369060040161216b565b905f516020612d4d5f395f51905f5254906107b383612391565b916107c160405193846122a4565b8383526107cd84612391565b602084019490601f19013686376012869201915b81811061082c57868587604051928392602084019060208552518091526040840192915b818110610813575050500390f35b8251845285945060209384019390920191600101610805565b8061084261083d60019385886123a8565b6123f8565b828060a01b03165f528360205260405f205461085e82886123cc565b52016107e1565b50346101cf5760e03660031901126101cf5761087f6121b1565b6024356001600160a01b03811691908290036104db576044356001600160a01b0381169290839003610d0f576064356001600160a01b0381169190829003610d0b576084359160a43560c4356001600160401b038111610d07576108e790369060040161216b565b9490925f516020612d6d5f395f51905f52549660ff8860401c1615976001600160401b03811680159081610cff575b6001149081610cf5575b159081610cec575b50610cdd5767ffffffffffffffff1981166001175f516020612d6d5f395f51905f5255610967919089610cb1575b5061095f612b82565b6101f7612b82565b4215610c5b578215610c055782821115610ba457604097885161098a8a826122a4565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526109be612729565b5190205f198101908111610b905792610b3697969592600895928b610b2f966109f48251926020840192835260208452836122a4565b60ff19915190201697885f516020612d4d5f395f51905f52558c610a16612890565b80518b5560018b019169ffffffffffff0000000063ffffffff60208401511691845493015160201b169169ffffffffffffffffffff191617179055828d8051610a5e81612289565b8381526020810185905201526004890180546001600160a01b03199081166001600160a01b039384161790915560058a018054821693831693909317909255600689018054909216921691909117905560078601805461ffff1916611a0a179055610ac76123e0565b506509184e72a00060208b51610adc8161225a565b639502f90081520152600e860180546001600160c01b0319166d09184e72a000000000009502f90017905589518290602090610b178161225a565b8381520152600f8601556010850155429436916124a7565b91016128ef565b610b3e575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020612d6d5f395f51905f5254165f516020612d6d5f395f51905f52555160018152a180f35b634e487b7160e01b8b52601160045260248bfd5b60405162461bcd60e51b815260206004820152603360248201527f657261206475726174696f6e206d757374206265206772656174657220746861604482015272371032b632b1ba34b7b710323ab930ba34b7b760691b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f656c656374696f6e206475726174696f6e206d75737420626520677265617465604482015267072207468616e20360c41b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f63757272656e742074696d657374616d70206d75737420626520677265617465604482015267072207468616e20360c41b6064820152608490fd5b68ffffffffffffffffff191668010000000000000001175f516020612d6d5f395f51905f52555f610956565b63f92ee8a960e01b8b5260048bfd5b9050155f610928565b303b159150610920565b8a9150610916565b8780fd5b8480fd5b8380fd5b50346101cf5760403660031901126101cf57600435906001600160401b0382116101cf5781600401604060031984360301126104df576024356001600160401b0381116104db57610d6890369060040161216b565b91905f516020612d4d5f395f51905f52549265ffffffffffff600185015460201c1691610d958342612473565b94600f81015495861561109c5786900495602489013596600181018091116110885787036110305786610dc791612494565b840180941161101c57610dde601082015485612473565b4210610fd757610ded81612a08565b954260028801541015610f775760405198610e078a61225a565b8635906001600160401b038211610f73570136602382011215610f6f576020610e3b839236906024600482013591016124a7565b9a8b8152015260405160208101918260208c51919c01908b5b818110610f50575050506020828c610e7a93610e9f9a9b9c9d9e520380845201826122a4565b5190206040516020810191825260208152610e966040826122a4565b519020906125cf565b15610ef057610ee6817f41e7f919bf726af8aa2ef36bd31905a693013e30c45c6284060e613d4941997b94610ee0610ed9866020976124fb565b36916124a7565b906128ef565b604051908152a180f35b60405162461bcd60e51b815260206004820152603260248201527f6e657874206572612076616c696461746f7273207369676e6174757265732076604482015271195c9a599a58d85d1a5bdb8819985a5b195960721b6064820152608490fd5b82516001600160a01b03168e5260209d8e019d90920191600101610e54565b8880fd5b8980fd5b60405162461bcd60e51b815260206004820152603260248201527f6c6f6f6b73206c696b652076616c696461746f727320666f72206e65787420656044820152711c9848185c9948185b1c9958591e481cd95d60721b6064820152608490fd5b60405162461bcd60e51b815260206004820152601b60248201527f656c656374696f6e206973206e6f7420796574207374617274656400000000006044820152606490fd5b634e487b7160e01b87526011600452602487fd5b60405162461bcd60e51b815260206004820152602a60248201527f636f6d6d69746d656e742065726120696e646578206973206e6f74206e657874604482015269040cae4c240d2dcc8caf60b31b6064820152608490fd5b634e487b7160e01b89526011600452602489fd5b634e487b7160e01b88526012600452602488fd5b50346101cf57806003193601126101cf57602060135f516020612d4d5f395f51905f52540154604051908152f35b50346101cf5760203660031901126101cf576110f86121b1565b60125f516020612d4d5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b50346101cf5760203660031901126101cf57600435906001600160401b0382116101cf57602061116361115d366004860161216b565b9061240c565b6040519015158152f35b50346101cf57806003193601126101cf575f516020612d2d5f395f51905f52546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f525480546112245763ffffffff600182015416409081156111df575580f35b60405162461bcd60e51b815260206004820152601d60248201527f756e61626c6520746f206c6f6f6b75702067656e6573697320686173680000006044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f67656e65736973206861736820616c72656164792073657400000000000000006044820152606490fd5b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf576112bb6123e0565b506040600e5f516020612d4d5f395f51905f5254016001600160801b038251916112e48361225a565b548160206001600160401b038316948581520191851c168152835192835251166020820152f35b50346101cf5760203660031901126101cf576004356001600160401b0381116104df5761133c90369060040161216b565b905f516020612d4d5f395f51905f52549061135683612391565b9161136460405193846122a4565b83835261137084612391565b602084019490601f19013686376011869201915b8181106113d957868587604051928392602084019060208552518091526040840192915b8181106113b6575050500390f35b91935091602080826113cb60019488516121db565b0194019101918493926113a8565b6113e48183866123a8565b3587528260205260ff6040882054166113fd82876123cc565b600382101561140f5752600101611384565b634e487b7160e01b89526021600452602489fd5b50346101cf57806003193601126101cf5761143c612729565b5f516020612d2d5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101cf57806003193601126101cf576114a5612729565b5f516020612d6d5f395f51905f525460ff8160401c16801561175f575b61175057680100000000000000029068ffffffffffffffffff1916175f516020612d6d5f395f51905f52555f516020612d4d5f395f51905f5254604090815161150b83826122a4565b6017815260208101907f726f757465722e73746f726167652e526f757465725632000000000000000000825261153f612729565b5190205f19810190811161173c57916020917fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29382519084820190815284825261158984836122a4565b60ff19915190201690815f516020612d4d5f395f51905f52556115aa612890565b80518355600183019063ffffffff868201511669ffffffffffff00000000868454930151881b169169ffffffffffffffffffff1916171790556004810160048301908082036116ee575b505061ffff600782015416600783019061ffff19825416179055611630600161161c836128d5565b016116274291612340565b600885016128ef565b600e8101600e83019080820361169c575b5050600f8101600f830191818303611686575b5050505060ff60401b195f516020612d6d5f395f51905f5254165f516020612d6d5f395f51905f52555160028152a180f35b601092839254905501549101555f808080611654565b806001600160401b03806001600160801b03935416166001600160401b031984541617835554851c16600160401b600160c01b03825491861b1690600160401b600160c01b0319161790555f80611641565b5481546001600160a01b03199081166001600160a01b039283161790925560058381015490850180548416918316919091179055600680840154908501805490931691161790555f806115f4565b634e487b7160e01b84526011600452602484fd5b63f92ee8a960e01b8252600482fd5b5060026001600160401b03821610156114c2565b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600501546040516001600160a01b039091168152602090f35b3461182a576117cc6117bd3661219b565b6001600160a01b03929161275c565b16803b1561182a576040519063485cc95560e01b82523360048301525f60248301525f8260448183855af191821561181f5760209261180f575b50604051908152f35b5f611819916122a4565b5f611806565b6040513d5f823e3d90fd5b5f80fd5b3461182a57602036600319011261182a576118476121b1565b61184f612729565b5f516020612d4d5f395f51905f525460040180546001600160a01b0319166001600160a01b03909216919091179055005b3461182a575f36600319011261182a5760205f516020612d4d5f395f51905f525454604051908152f35b3461182a576118b83661219b565b9081158015906119f9575b156119be5760115f516020612d4d5f395f51905f52546118e5815415156121e8565b0190805f528160205260ff60405f20541660038110156119aa57611949577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603360248201527f676976656e20636f646520696420697320616c7265616479206f6e2076616c6960448201527219185d1a5bdb881bdc881d985b1a59185d1959606a1b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b60405162461bcd60e51b8152602060048201526013602482015272189b1bd88818d85b89dd08189948199bdd5b99606a1b6044820152606490fd5b505f4915156118c3565b3461182a57604036600319011261182a576004356001600160401b03811161182a57611a3390369060040161216b565b6024356001600160401b03811161182a57611a5290369060040161216b565b90927f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6121325760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020612d4d5f395f51905f525491611aba835415156121e8565b60605f915b858310156120f6578260051b840135609e198536030181121561182a5784019060028601546040830135036120a357611afb6060830135612a44565b1561204f57949396959291906020611b148183016125bc565b65ffffffffffff60405191611b288361225a565b843583521691829101528135600287015565ffffffffffff19600387015416176003860155611b5a60808201826124fb565b9690946060995f925b89841015611fac578360051b88013560be198936030181121561182a5788019b611b8c8d6123f8565b6001600160a01b03165f90815260128b01602052604090205415611f4f5760068a01548d906001600160a01b03166060611bc5836123f8565b92019182356001600160801b03811680910361182a5760405163a9059cbb60e01b81526001600160a01b039092166004830152602482015290602090829060449082905f905af1801561181f57611f19575b506001600160a01b03611c298f6123f8565b6040516309ed323560e41b8152602060048201529f9116918f919060e48301906001600160801b0390611c96906001600160a01b03611c67866121c7565b166024870152602085013560448701526001600160a01b03611c8b604087016121c7565b166064870152612a87565b16608484015236829003601e19019060808301358281121561182a57830190602082359201946001600160401b03831161182a57606083023603861361182a57826101049260c060a4840152520193905f905b808210611ecf575050509e9f939495969798999a9b9c9d9e60a08201359081121561182a570190813560208301926001600160401b03821161182a578160051b91823603851361182a578684036023190160c48801528084528694928401602090810194908101925f923682900360de19019290915b828510611dd6575050505050505091815f8160209503925af190811561181f575f91611da4575b50611d93906001926122c5565b9b9a99989796959401929190611b63565b90506020813d8211611dce575b81611dbe602093836122a4565b8101031261182a57516001611d86565b3d9150611db1565b9193959750919395601f1983820301875287358581121561182a57820160208101358252906001600160a01b03611e0f604084016121c7565b1660208201526060820135603e19368490030181121561182a5782602091010191602083359301906001600160401b03841161182a57833603821361182a578360c092836040860152818486015260e08501375f60e085850101526001600160801b03611e7e60808301612a87565b16606084015260a0810135608084015201359163ffffffff60e01b831680930361182a5760e0826020939260019560a086950152601f80199101160101990197019501929091899796959492611d5f565b90919460608060019288358152838060a01b03611eee60208b016121c7565b1660208201526001600160801b03611f0860408b01612a87565b166040820152019601920190611ce9565b6020813d8211611f47575b81611f31602093836122a4565b8101031261182a57518015158114611c17575f80fd5b3d9150611f24565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b96509697509793986001939150916120469260208151910120907fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e602060405183358152a1611ffd602082016125bc565b9160606040519260208401948135865265ffffffffffff60d01b9060d01b166040850152604081013560468501520135606683015260868201526086815261041e60a6826122a4565b91960191611abf565b60405162461bcd60e51b815260206004820152602660248201527f616c6c6f776564207072656465636573736f7220626c6f636b207761736e277460448201526508199bdd5b9960d21b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f696e76616c69642070726576696f757320636f6d6d697474656420626c6f636b604482015264040d0c2e6d60db1b6064820152608490fd5b6104d690878661210d9460208151910120906125cf565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b3461182a575f36600319011261182a5760209060145f516020612d4d5f395f51905f525401548152f35b9181601f8401121561182a578235916001600160401b03831161182a576020808501948460051b01011161182a57565b604090600319011261182a576004359060243590565b600435906001600160a01b038216820361182a57565b35906001600160a01b038216820361182a57565b9060038210156119aa5752565b156121ef57565b60405162461bcd60e51b815260206004820152603860248201527f726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f60448201527f6f6b757047656e657369734861736828296020666972737400000000000000006064820152608490fd5b604081019081106001600160401b0382111761227557604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761227557604052565b90601f801991011681019081106001600160401b0382111761227557604052565b6020806122f2928195946040519682889351918291018585015e82019083820152030180855201836122a4565b565b156122fb57565b60405162461bcd60e51b815260206004820152601e60248201527f7369676e61747572657320766572696669636174696f6e206661696c656400006044820152606490fd5b90604051918281549182825260208201905f5260205f20925f5b81811061236f5750506122f2925003836122a4565b84546001600160a01b031683526001948501948794506020909301920161235a565b6001600160401b0381116122755760051b60200190565b91908110156123b85760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156123b85760209160051b010190565b604051906123ed8261225a565b5f6020838281520152565b356001600160a01b038116810361182a5790565b6124235f516020612d4d5f395f51905f52546128d5565b905f5b8381106124365750505050600190565b61244461083d8286856123a8565b6001600160a01b03165f9081526020849052604090205460ff161561246b57600101612426565b505050505f90565b9190820391821161248057565b634e487b7160e01b5f52601160045260245ffd5b8181029291811591840414171561248057565b9291906124b381612391565b936124c160405195866122a4565b602085838152019160051b810192831161182a57905b8282106124e357505050565b602080916124f0846121c7565b8152019101906124d7565b903590601e198136030182121561182a57018035906001600160401b03821161182a57602001918160051b3603831361182a57565b35801515810361182a5790565b5f1981146124805760010190565b6001600160a01b031680156125a9575f516020612d2d5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b3565ffffffffffff8116810361182a5790565b9190916125f36125de826128d5565b9161ffff600760018501549201541690612a22565b9260405190602082019081526020825261260e6040836122a4565b61264a603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f1981018352826122a4565b5190205f925f5b8681101561271e578060051b820135601e198336030181121561182a5782018035906001600160401b03821161182a576020810190823603821361182a57604051906126a7601f8501601f1916602001836122a4565b838252602084369201011161182a575f6020846126d9956126d095838601378301015285612bad565b90929192612be7565b6001600160a01b03165f9081526020859052604090205460ff16612700575b600101612651565b9361270a9061253d565b938585036126f85750505050505050600190565b505050505050505f90565b5f516020612d2d5f395f51905f52546001600160a01b0316330361274957565b63118cdaa760e01b5f523360045260245ffd5b5f516020612d4d5f395f51905f525491612778835415156121e8565b815f526011830160205260ff60405f20541660038110156119aa57600203612834576127d660139160018060a01b036005860154169060405160208101918683526040820152604081526127cd6060826122a4565b51902090612c47565b9260018060a01b0384165f52601281016020528260405f2055016127fa815461253d565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a290565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f6040805161289e81612289565b82815282602082015201526040516128b581612289565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6128de81612a9b565b156128e957600b0190565b60080190565b905f5b6001830190815481101561292f575f91825260208083208201546001600160a01b031683528490526040909120805460ff191690556001016128f2565b50505f5b8151811015612974576001906001600160a01b0361295182856123cc565b5116828060a01b03165f528360205260405f208260ff1982541617905501612933565b50600182018151916001600160401b038311612275576801000000000000000083116122755781548383558084106129e2575b50602001905f5260205f205f5b8381106129c5575050505060020155565b82516001600160a01b0316818301556020909201916001016129b4565b825f528360205f2091820191015b8181106129fd57506129a7565b5f81556001016129f0565b612a1181612a9b565b15612a1c5760080190565b600b0190565b61ffff612a30921690612494565b61270f810180911161248057612710900490565b905f19430143811161248057805b612a5d575b505f9150565b8040838103612a6e57506001925050565b15612a82578015612480575f190180612a52565b612a57565b35906001600160801b038216820361182a57565b600d600a820154910154808214612b3e5780821091421090811590421015918190612b37575b15612ad65782612ad057505090565b14919050565b60405162461bcd60e51b815260206004820152603360248201527f636f756c64206e6f74206964656e746966792076616c696461746f727320666f6044820152720722063757272656e742074696d657374616d7606c1b6064820152608490fd5b5081612ac1565b606460405162461bcd60e51b815260206004820152602060248201527f657261732074696d657374616d70206d757374206e6f7420626520657175616c6044820152fd5b60ff5f516020612d6d5f395f51905f525460401c1615612b9e57565b631afcd79f60e31b5f5260045ffd5b8151919060418303612bdd57612bd69250602082015190606060408401519301515f1a90612caa565b9192909190565b50505f9160029190565b60048110156119aa5780612bf9575050565b60018103612c105763f645eedf60e01b5f5260045ffd5b60028103612c2b575063fce698f760e01b5f5260045260245ffd5b600314612c355750565b6335e2f38360e21b5f5260045260245ffd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b17602052603760095ff5906001600160a01b03821615612c9b57565b63b06ebf3d60e01b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612d21579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561181f575f516001600160a01b03811615612d1757905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220f66e3e1bc4037348273211a9406000b46d6c209d6dcb3083248113c6033f9a2b64736f6c634300081c0033","sourceMap":"690:16205:120:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;:::i;:::-;5005:36;-1:-1:-1;;;;;;;;;;;690:16205:120;5005:36;:::i;:::-;:52;690:16205;;;;;;-1:-1:-1;690:16205:120;;;;;;-1:-1:-1;690:16205:120;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;2357:1:24;690:16205:120;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;:::-;690:16205:120;;;;;;;;;;;;;;;;;5154:28;-1:-1:-1;;;;;;;;;;;690:16205:120;5154:28;690:16205;;;;;;;;;;;;;;;;;;;;;;5619:147;-1:-1:-1;;;;;;;;;;;690:16205:120;;5704:25;5657:38;:33;;;:::i;:::-;:38;690:16205;5704:25;;690:16205;;5619:147;;:::i;:::-;690:16205;;;;;;;;;;;;;;;;;;;;5428:41;:36;-1:-1:-1;;;;;;;;;;;690:16205:120;5428:36;:::i;:::-;:41;690:16205;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;690:16205:120;;10552:107;690:16205;;10560:38;;10552:107;:::i;:::-;690:16205;10720:13;;10888:19;;;;10715:838;10764:3;10735:27;;;;;;690:16205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10888:82;690:16205;;;11076:20;3987::122;11076::120;11466:76;11076:20;;;;;:::i;:::-;;;;690:16205;;;;;;;;;11163:24;690:16205;;;;;;;;11205:39;;;:41;690:16205;;11205:41;:::i;:::-;690:16205;;11072:279;11406:20;;;:::i;:::-;690:16205;;11370:57;690:16205;;;;;;11370:57;3987:20:122;:::i;:::-;690:16205:120;;3951:57:122;690:16205:120;3951:57:122;;690:16205:120;;;;;;;;;;;;3951:57:122;;;;;;:::i;:::-;690:16205:120;3941:68:122;;11466:76:120;;:::i;:::-;10764:3;690:16205;10720:13;;;11072:279;690:16205;;;;;;;;;;;;;;;;11072:279;;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;10735:27;;;11563:155;10735:27;;11584:78;10735:27;690:16205;;;;;11616:32;11584:78;;:::i;:::-;11563:155;:::i;690:16205::-;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;:::i;:::-;;;;2908:43:37;690:16205:120;;8825:30;;;;;:::i;:::-;690:16205;;;8922:32;690:16205;8922:32;;690:16205;;;;;;;;8922:32;;;690:16205;8922:32;;:::i;:::-;690:16205;;8912:43;;;-1:-1:-1;;;;;690:16205:120;2908:43:37;:::i;:::-;690:16205:120;13659:43;;;;;690:16205;;-1:-1:-1;;;13659:43:120;;-1:-1:-1;;;;;690:16205:120;;;;13659:43;;690:16205;;;;;;;;;;;13659:43;;;;;;;;;690:16205;8975:47;;;;;;;690:16205;;;;;;8975:47;;9002:10;690:16205;8975:47;;690:16205;;;;;8975:47;;690:16205;8975:47;;;;;;;;;;;690:16205;;;;;;;;;8975:47;;;;;;:::i;:::-;690:16205;;8975:47;;;;690:16205;;;;;;;;;13659:43;;;;;:::i;:::-;690:16205;;13659:43;;;;;690:16205;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;4256:23;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;4011:32;-1:-1:-1;;;;;;;;;;;690:16205:120;4011:32;690:16205;;;;;;;;;;;;;;;;;;;;;;;;5300:41;:36;-1:-1:-1;;;;;;;;;;;690:16205:120;5300:36;:::i;:::-;:41;690:16205;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;-1:-1:-1;690:16205:120;;;;;;;;;5300:41;690:16205;;;;;;;;;;;;;;;;;4139:30;-1:-1:-1;;;;;;;;;;;690:16205:120;4139:30;690:16205;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;;6005:22;-1:-1:-1;;;;;;;;;;;690:16205:120;6005:22;690:16205;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;690:16205:120;;;;6878:28;6810:13;6878:28;;6805:129;6825:23;;;;;;690:16205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;690:16205:120;;;;;;;;;6878:28;690:16205;;;6850:3;6907:15;;;6878:28;6907:15;;;;:::i;:::-;;:::i;:::-;690:16205;;;;;;-1:-1:-1;690:16205:120;;;;;-1:-1:-1;690:16205:120;;6869:54;;;;:::i;:::-;577:4:122;690:16205:120;6810:13;;690:16205;;;;;;;-1:-1:-1;;690:16205:120;;;;;;:::i;:::-;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;;4301:16:25;690:16205:120;-1:-1:-1;;;;;690:16205:120;;4726:16:25;;:34;;;;690:16205:120;;4790:16:25;:50;;;;690:16205:120;4855:13:25;:30;;;;690:16205:120;4851:91:25;;;-1:-1:-1;;690:16205:120;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;6961:1:25;;690:16205:120;;4979:67:25;;690:16205:120;6893:76:25;;;:::i;:::-;;;:::i;6961:1::-;1512:15:120;:19;690:16205;;1594:21;;690:16205;;1678:32;;;690:16205;;;;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:24;;:::i;:::-;690:16205:120;16763:27;;-1:-1:-1;;690:16205:120;;;;;;;;2293:85;690:16205;;;;2310:37;690:16205;;;;;16744:52;690:16205;;16744:52;690:16205;16744:52;;690:16205;;;;16744:52;;;;:::i;:::-;690:16205;;;;16734:63;;:89;690:16205;;-1:-1:-1;;;;;;;;;;;690:16205:120;1896:17;;;:::i;:::-;690:16205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1946:53;;690:16205;;;1946:53;690:16205;;1923:20;;690:16205;;-1:-1:-1;;;;;;690:16205:120;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2009:25;;;690:16205;;-1:-1:-1;;690:16205:120;;;;;;;:::i;:::-;;674:18:122;690:16205:120;;;;;;:::i;:::-;447:13:122;690:16205:120;;4128:60:122;690:16205:120;2107:22;;;690:16205;;-1:-1:-1;;;;;;690:16205:120;;;;;;;;;;;;;;:::i;:::-;577:4:122;;;2194:47:120;577:4:122;2175:16:120;;;690:16205;577:4:122;;;690:16205:120;1512:15;690:16205;;;;:::i;:::-;2310:37;;2293:85;:::i;:::-;5066:101:25;;690:16205:120;;;5066:101:25;690:16205:120;5142:14:25;690:16205:120;-1:-1:-1;;;690:16205:120;-1:-1:-1;;;;;;;;;;;690:16205:120;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;5142:14:25;690:16205:120;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;4979:67:25;-1:-1:-1;;690:16205:120;;;-1:-1:-1;;;;;;;;;;;690:16205:120;4979:67:25;;;4851:91;-1:-1:-1;;;4908:23:25;;690:16205:120;6498:23:25;4908;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;;690:16205:120;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;690:16205:120;9344:29;690:16205;9344:29;;;690:16205;;;;9326:15;:47;:15;;:47;:::i;:::-;9377:16;;;;690:16205;9325:72;690:16205;;;;;;;9416:19;690:16205;9416:19;;690:16205;;9344:29;690:16205;;;;;;;9416:42;;690:16205;;9571:42;;;;:::i;:::-;690:16205;;;;;;;9650:40;9665:25;;;690:16205;9650:40;;:::i;:::-;9326:15;9631:59;690:16205;;9818:34;;;:::i;:::-;9326:15;;9870:28;;;690:16205;9870:46;690:16205;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3015:60:122;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;3015:60:122;690:16205:120;10079:88;690:16205;;;;;;3015:60:122;;;;;;;:::i;:::-;690:16205:120;3005:71:122;;690:16205:120;;;10121:32;;690:16205;;;;10121:32;;;690:16205;10121:32;;:::i;:::-;690:16205;10111:43;;10079:88;;:::i;:::-;690:16205;;;10254:66;10284:21;10336:40;10284:21;690:16205;10284:21;;690:16205;10284:21;;:::i;:::-;690:16205;;;:::i;:::-;10254:66;;:::i;:::-;690:16205;;;;;10336:40;690:16205;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;9344:29;690:16205;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;7039:36;-1:-1:-1;;;;;;;;;;;690:16205:120;7039:36;690:16205;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;:::i;:::-;6529:31;-1:-1:-1;;;;;;;;;;;690:16205:120;6529:31;:43;690:16205;;;;;;-1:-1:-1;690:16205:120;;;;;-1:-1:-1;690:16205:120;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;7590:26;;;690:16205;;7580:37;7636:25;;;690:16205;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;4491:35;;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;5877:25;-1:-1:-1;;;;;;;;;;;690:16205:120;5877:25;-1:-1:-1;;;;;690:16205:120;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;690:16205:120;;;;6356:19;6291:13;6356:19;;6286:120;6306:20;;;;;;690:16205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;6328:3;6382:12;;;;;:::i;:::-;690:16205;;;;;;;;;;;;6347:48;;;;:::i;:::-;690:16205;;;;;;;;;6291:13;;690:16205;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;690:16205:120;;-1:-1:-1;;;;;;690:16205:120;;;;;;;-1:-1:-1;;;;;690:16205:120;3975:40:24;690:16205:120;;3975:40:24;690:16205:120;;;;;;;;;;;;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;6431:44:25;;;;690:16205:120;6427:105:25;;690:16205:120;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:24;;:::i;:::-;690:16205:120;16763:27;;-1:-1:-1;;690:16205:120;;;;;;;;;;6656:20:25;690:16205:120;;;16744:52;;;;690:16205;;;16744:52;;;;;;;:::i;:::-;690:16205;;;;16734:63;;:89;690:16205;;-1:-1:-1;;;;;;;;;;;690:16205:120;2673:17;;:::i;:::-;690:16205;;;;6593:4:25;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;2842:23;;690:16205;2816:23;;690:16205;;;;;;;3012:28;;690:16205;3012:28;;;690:16205;;3012:28;2942;;690:16205;;;;;;;;;3350:140;6593:4:25;3422:36:120;;;:::i;:::-;:41;690:16205;3465:15;690:16205;;:::i;:::-;3380:40;;;3350:140;:::i;:::-;3587:25;;;;3559;;690:16205;;;;;;;3692:19;;;;;;3670;;690:16205;;;;;;;;;;;-1:-1:-1;;;690:16205:120;-1:-1:-1;;;;;;;;;;;690:16205:120;;-1:-1:-1;;;;;;;;;;;690:16205:120;;2446:1;690:16205;;6656:20:25;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;-1:-1:-1;;;;;690:16205:120;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;-1:-1:-1;;;;;;;690:16205:120;;;;;;;-1:-1:-1;;;;;;;690:16205:120;;;;;;;;;;;;;-1:-1:-1;;;;;;690:16205:120;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;-1:-1:-1;;;690:16205:120;;;;;;;;6427:105:25;-1:-1:-1;;;6498:23:25;;690:16205:120;6498:23:25;;6431:44;690:16205:120;2446:1;-1:-1:-1;;;;;690:16205:120;;6450:25:25;;6431:44;;690:16205:120;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;4373:35;;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;8535:30;690:16205;;;:::i;:::-;-1:-1:-1;;;;;690:16205:120;;8535:30;:::i;:::-;690:16205;8576:50;;;;;690:16205;;;;;;8576:50;;8603:10;690:16205;8576:50;;690:16205;;;;;;;8576:50;;;;;;;;;;;;690:16205;8576:50;;;690:16205;;;;;;;;8576:50;690:16205;8576:50;;;:::i;:::-;690:16205;8576:50;;;690:16205;;;;;;;;;8576:50;690:16205;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;690:16205:120;;7308:23;690:16205;;-1:-1:-1;;;;;;690:16205:120;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;;;;;;;;;;:::i;:::-;7879:16;;;;;:36;;;690:16205;;;;8133:19;-1:-1:-1;;;;;;;;;;;690:16205:120;7994:107;690:16205;;8002:38;;7994:107;:::i;:::-;8133:19;690:16205;;;;;;;;;;;;;;;;;;;;;8368:45;690:16205;;;;;;;;;;;8318:34;690:16205;;;;;;;;;;;;;;;;;8368:45;690:16205;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;7879:36;7899:11;690:16205;7899:11;:16;;7879:36;;690:16205;;;;;;-1:-1:-1;;690:16205:120;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;3321:69:57;;637:66:54;3321:69:57;1413:93:54;;1624:4;637:66;3550:68:57;-1:-1:-1;;;;;;;;;;;690:16205:120;;11930:107;690:16205;;11938:38;;11930:107;:::i;:::-;690:16205;;12094:262;12144:3;12114:28;;;;;;690:16205;;;;;;;;;;;;;;;;;;;13911:27;;;;690:16205;;13947:39;;690:16205;13911:75;690:16205;;14068:58;690:16205;14092:33;;690:16205;14068:58;:::i;:::-;690:16205;;;14386:26;;;;;;;690:16205;14386:26;;;;;:::i;:::-;690:16205;;;;;;;:::i;:::-;;;577:4:122;;690:16205:120;14339:74;;;;690:16205;;;13911:27;;;690:16205;;;;;;;;;;;;;14483:28;;;;;;:::i;:::-;14994:30;;;690:16205;15040:13;690:16205;15035:592;15080:3;15055:23;;;;;;690:16205;;;;;;;;;;;;;;;;;;;15226:18;;;;:::i;:::-;-1:-1:-1;;;;;690:16205:120;;;;;15197:28;;;690:16205;;;;;;15197:53;690:16205;;15343:32;;;690:16205;;;-1:-1:-1;;;;;690:16205:120;;15386:18;690:16205;15386:18;:::i;:::-;15406:25;;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;-1:-1:-1;;;15330:102:120;;-1:-1:-1;;;;;690:16205:120;;;;15330:102;;690:16205;;;;;;;;;;15330:102;;690:16205;;;;15330:102;;;;;;;;15080:3;-1:-1:-1;;;;;;15480:18:120;690:16205;15480:18;:::i;:::-;690:16205;;-1:-1:-1;;;15472:62:120;;690:16205;;15472:62;;690:16205;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;-1:-1:-1;;;;;690:16205:120;;;:::i;:::-;;;;;;;;;;15330:102;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;690:16205:120;;14483:28;690:16205;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;;;;15472:62;;;;;;;;;690:16205;15472:62;690:16205;15472:62;;;;;;;;;;690:16205;15472:62;;;690:16205;15569:47;;;1624:4:54;15569:47:120;;:::i;:::-;15080:3;15040:13;;;;;;;690:16205;;15040:13;;;;15472:62;;;690:16205;15472:62;;;;;;;;;690:16205;15472:62;;;:::i;:::-;;;690:16205;;;;;1624:4:54;15472:62:120;;;;;-1:-1:-1;15472:62:120;;690:16205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;14483:28;690:16205;;;:::i;:::-;;;;;;;;;;14483:28;690:16205;;;;;;;;;;;;;;;;;;;;;1624:4:54;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1624:4:54;690:16205:120;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;:::i;:::-;;;;;;;;;;;;;;15330:102;690:16205;15330:102;;;;;;;;;690:16205;15330:102;;;:::i;:::-;;;690:16205;;;;;;;;;;15330:102;690:16205;;;;15330:102;;;-1:-1:-1;15330:102:120;;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;15330:102;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;15055:23;;;;;;;;;1624:4:54;15055:23:120;;;;12270:75;15055:23;690:16205;;;;;15644:28;690:16205;14528:37;690:16205;;;;;;;14528:37;14656:26;690:16205;14386:26;;14656;:::i;:::-;690:16205;;;;3357:98:122;690:16205:120;3357:98:122;;690:16205:120;;;;;;;;;;;;;;;;;13947:39;;690:16205;;;;;14092:33;690:16205;;;;;;;;;;3357:98:122;;;;;;:::i;12270:75:120:-;12099:13;;690:16205;;12099:13;;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;15330:102;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;15330:102;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;12114:28;12387:79;12114:28;;;12366:156;12114:28;690:16205;;;;;12419:33;12387:79;;:::i;12366:156::-;690:16205;637:66:54;3550:68:57;690:16205:120;1413:93:54;1465:30;;;690:16205:120;1465:30:54;690:16205:120;;1465:30:54;690:16205:120;;;;;;-1:-1:-1;;690:16205:120;;;;;;7166:42;-1:-1:-1;;;;;;;;;;;690:16205:120;7166:42;690:16205;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;690:16205:120;;;;;;:::o;:::-;;;-1:-1:-1;;;;;690:16205:120;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;:::o;:::-;;;;-1:-1:-1;690:16205:120;;;;;-1:-1:-1;690:16205:120;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;690:16205:120;;-1:-1:-1;690:16205:120;;-1:-1:-1;690:16205:120;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;-1:-1:-1;690:16205:120;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;690:16205:120;;;;;;;:::o;:::-;;-1:-1:-1;;;;;690:16205:120;;;;;;;:::o;4539:375::-;4676:36;-1:-1:-1;;;;;;;;;;;690:16205:120;4676:36;:::i;:::-;4728:13;690:16205;4743:22;;;;;;4896:11;;;;690:16205;4539:375;:::o;4767:3::-;4814:14;;;;;;:::i;:::-;-1:-1:-1;;;;;690:16205:120;-1:-1:-1;690:16205:120;;;;;;;;;;;;;4790:39;4786:90;;690:16205;;4728:13;;4786:90;4849:12;;;;690:16205;4849:12;:::o;690:16205::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;690:16205:120;;;;;;;:::o;3405:215:24:-;-1:-1:-1;;;;;690:16205:120;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;690:16205:120;;-1:-1:-1;;;;;;690:16205:120;;;;;;;-1:-1:-1;;;;;690:16205:120;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;690:16205:120;;3509:1:24;3534:31;690:16205:120;;;;;;;;;;:::o;5229:897:122:-;;;;5508:97;5437:28;;;:::i;:::-;5528:15;690:16205:120;5552:25:122;5528:15;;;690:16205:120;5552:25:122;;690:16205:120;;5508:97:122;;:::i;:::-;690:16205:120;;;5680:27:122;;;;690:16205:120;;;5680:27:122;;;;690:16205:120;5680:27:122;;:::i;:::-;2831:45:59;690:16205:120;;;2831:45:59;;5680:27:122;2831:45:59;;690:16205:120;;;;;;5642:4:122;690:16205:120;;;;;;;;;;;;;;;;;;;;2831:45:59;;690:16205:120;;2831:45:59;;;;;;:::i;:::-;690:16205:120;2821:56:59;;690:16205:120;5761:13:122;690:16205:120;5800:3:122;5776:22;;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;5680:27:122;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;5680:27:122;690:16205:120;;;:::i;:::-;;;;5680:27:122;690:16205:120;;;;;;;;;5680:27:122;690:16205:120;3927:8:58;690:16205:120;3871:27:58;690:16205:120;;;;;;;;;3871:27:58;;:::i;:::-;3927:8;;;;;:::i;:::-;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;5936:151:122;;5800:3;5528:15;690:16205:120;5761:13:122;;5936:151;5989:17;;;;:::i;:::-;:30;;;;5936:151;5985:88;6043:11;;;;;;;5528:15;6043:11;:::o;5776:22::-;;;;;;;;690:16205:120;5229:897:122;:::o;2658:162:24:-;-1:-1:-1;;;;;;;;;;;690:16205:120;-1:-1:-1;;;;;690:16205:120;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;690:16205:120;;-1:-1:-1;2763:40:24;12571:887:120;-1:-1:-1;;;;;;;;;;;690:16205:120;;12707:107;690:16205;;12715:38;;12707:107;:::i;:::-;690:16205;-1:-1:-1;690:16205:120;12846:19;;;690:16205;;;;-1:-1:-1;690:16205:120;;;;;;;;;12884:24;12846:62;690:16205;;2908:43:37;13343:33:120;690:16205;;;;;;13197:32;;;690:16205;;;;;;13241:32;;690:16205;;;;;;;;;13241:32;;;;;;:::i;:::-;690:16205;13231:43;;2908::37;;:::i;:::-;13286:37:120;690:16205;;;;;;;-1:-1:-1;690:16205:120;13286:28;;;690:16205;;;;-1:-1:-1;690:16205:120;;13343:33;:35;690:16205;;13343:35;:::i;:::-;690:16205;;;;-1:-1:-1;;;;;690:16205:120;;;;13394:32;;690:16205;;13394:32;12571:887;:::o;690:16205::-;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;4584:169:122;-1:-1:-1;690:16205:120;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;577:4:122;;690:16205:120;4707:12:122;690:16205:120;;4671:75:122;;690:16205:120;;4729:15:122;690:16205:120;;4671:75:122;;690:16205:120;4584:169:122;:::o;6132:318::-;6251:47;;;:::i;:::-;;;;6321:37;;6314:44;:::o;6247:197::-;6396:37;;6389:44;:::o;15685:618:120:-;;15873:1;15905:3;690:16205;15880:16;;690:16205;;;15876:27;;;;;15873:1;690:16205;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;15861:13;;15876:27;;;15873:1;16080:3;690:16205;;16053:25;;;;;690:16205;;-1:-1:-1;;;;;16120:17:120;690:16205;16120:17;;:::i;:::-;690:16205;;;;;;;;-1:-1:-1;690:16205:120;;;;;-1:-1:-1;690:16205:120;;;;;;;;;;;16038:13;;16053:25;;690:16205;16205:16;;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;16033:163;690:16205;;;;15873:1;690:16205;;15873:1;690:16205;15873:1;690:16205;;;;;;16248:28;;;;;;690:16205;15685:618::o;690:16205::-;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;15873:1;690:16205;;;15873:1;690:16205;;;;;;;;;;;;;;;;15873:1;690:16205;;;;;;6456:319:122;6576:47;;;:::i;:::-;;;;6646:37;;6639:44;:::o;6572:197::-;6721:37;;6714:44;:::o;7908:285::-;690:16205:120;8123:47:122;7908:285;690:16205:120;8123:47:122;;:::i;:::-;8173:4;690:16205:120;;;;;;;8181:5:122;690:16205:120;;7908:285:122;:::o;3478:340::-;;690:16205:120;;3576:12:122;690:16205:120;3576:12:122;690:16205:120;;;;3559:230:122;3594:5;;;3559:230;-1:-1:-1;690:16205:120;;-1:-1:-1;3478:340:122:o;3601:3::-;3634:12;;3664:11;;;;;-1:-1:-1;3591:1:122;;-1:-1:-1;;3695:11:122:o;3660:119::-;3731:8;3727:52;;690:16205:120;;;;-1:-1:-1;;690:16205:120;;3564:28:122;;3727:52;3759:5;;690:16205:120;;;-1:-1:-1;;;;;690:16205:120;;;;;;:::o;6998:904:122:-;7248:54;7170;;;690:16205:120;7248:54:122;;690:16205:120;7376:10:122;;;690:16205:120;;7452:9:122;;;7131:15;;-1:-1:-1;7484:9:122;;;7131:15;;-1:-1:-1;7516:9:122;7628:14;;;;;6998:904;690:16205:120;;;7865:30:122;;;7858:37;;6998:904;:::o;7865:30::-;7880:14;;6998:904;-1:-1:-1;6998:904:122:o;690:16205:120:-;;;-1:-1:-1;;;690:16205:120;;;7248:37:122;690:16205:120;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;7628:14:122;;;;;690:16205:120;;;;;;;;;;7248:37:122;690:16205:120;;;;;;;;;;;;;;7084:141:25;690:16205:120;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:25;;-1:-1:-1;7191:17:25;2129:778:58;690:16205:120;;;2129:778:58;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:58;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;7280:532::-;690:16205:120;;;;;;7366:29:58;;;7411:7;;:::o;7362:444::-;690:16205:120;7462:38:58;;690:16205:120;;7523:23:58;;;7375:20;7523:23;690:16205:120;7375:20:58;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;690:16205:120;;;7375:20:58;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;690:16205:120;;;7375:20:58;7763:32;3384:974:37;3673:585;3384:974;3673:585;;;;;;;-1:-1:-1;3673:585:37;;;;;;;;-1:-1:-1;3673:585:37;690:16205:120;-1:-1:-1;;;;;690:16205:120;;4271:22:37;4267:85;;3384:974::o;4267:85::-;4316:25;;;-1:-1:-1;4316:25:37;;-1:-1:-1;4316:25:37;5203:1551:58;;;6283:66;6270:79;;6266:164;;690:16205:120;;;;;;-1:-1:-1;690:16205:120;;;;;;;;;;;;;;;;;;;6541:24:58;;;;;;;;;-1:-1:-1;6541:24:58;-1:-1:-1;;;;;690:16205:120;;6579:20:58;6575:113;;6698:49;-1:-1:-1;6698:49:58;-1:-1:-1;5203:1551:58;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:58;6541:24;6615:62;-1:-1:-1;6615:62:58;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o","linkReferences":{}},"methodIdentifiers":{"areValidators(address[])":"8f381dbe","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBlocks((bytes32,uint48,bytes32,bytes32,(address,bytes32,address,uint128,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4))[])[])[],bytes[])":"01b1d156","commitCodes((bytes32,bool)[],bytes[])":"e97d3eb3","commitValidators((address[],uint256),bytes[])":"aaf0fe6a","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32)":"527de0f9","createProgramWithDecoder(address,bytes32,bytes32)":"e7006a74","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,address[])":"b1669a33","isValidator(address)":"facd743b","latestCommittedBlockHash()":"c9f16a11","lookupGenesisHash()":"8b1edf1e","mirrorImpl()":"e6fabc09","mirrorProxyImpl()":"65ecfea2","owner()":"8da5cb5b","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,bytes32)":"1c149d8a","setMirror(address)":"3d43b418","signingThresholdPercentage()":"efd81abc","transferOwnership(address)":"f2fde38b","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BlockCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"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\":\"threshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"name\":\"ComputationSettingsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTimestamp\",\"type\":\"uint256\"}],\"name\":\"NextEraValidatorsCommitted\",\"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\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"areValidators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_codesIds\",\"type\":\"bytes32[]\"}],\"name\":\"codesStates\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"previousCommittedBlock\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"predecessorBlock\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"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 Gear.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 Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BlockCommitment[]\",\"name\":\"_blockCommitments\",\"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 Gear.CodeCommitment[]\",\"name\":\"_codeCommitments\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitCodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment\",\"name\":\"commitment\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_decoderImpl\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"createProgramWithDecoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirrorProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorProxyImpl\",\"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\":\"_programId\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_programsIds\",\"type\":\"address[]\"}],\"name\":\"programsCodeIds\",\"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\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdPercentage\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"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\":{\"BlockCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the block outcome has been committed.\",\"params\":{\"hash\":\"The block hash that was \\\"finalized\\\" in relation to the necessary transitions.\"}},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"This is an *informational* event, signaling the results of code validation.\",\"params\":{\"codeId\":\"The ID of the code that was validated.\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32,bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"blobTxHash\":\"The transaction hash that contains the WASM blob. Set to zero if applied to the current transaction.\",\"codeId\":\"The expected code ID of the applied WASM blob, represented as a Blake2 hash.\"}},\"ComputationSettingsChanged(uint64,uint128)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to change the computation settings. Users and program authors may want to adjust their practices, while validators need to apply the changes internally starting from the next block.\",\"params\":{\"threshold\":\"The amount of Gear gas initially allocated for free to allow the program to decide if it wants to process the incoming message.\",\"wvaraPerSecond\":\"The amount of WVara to be charged from the program's execution balance per second of computation.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"NextEraValidatorsCommitted(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"startTimestamp\":\"timestamp when the new era starts.\"}},\"ProgramCreated(address,bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling the creation of a new program and its Ethereum mirror. Validators need to initialize it with a zeroed hash state internally.\",\"params\":{\"actorId\":\"ID of the actor that was created. It is accessible inside the co-processor and on Ethereum by this identifier.\",\"codeId\":\"The code ID of the WASM implementation of the created program.\"}},\"StorageSlotChanged()\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to wipe the router state, rendering all previously existing codes and programs ineligible. Validators need to wipe their databases immediately.\"}},\"kind\":\"dev\",\"methods\":{\"commitValidators((address[],uint256),bytes[])\":{\"details\":\"Set validators for the next era.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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\":{\"events\":{\"BlockCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its CodeStatus changed.\"},\"CodeValidationRequested(bytes32,bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"NextEraValidatorsCommitted(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"StorageSlotChanged()\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"}},\"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/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"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\":\"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0\",\"dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x1899463c32e174ebde503846dd1b40ddb6d6ba15e21d68b21b8151e97af35a5e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c91227968491548c006b70f1de87bb1b67a83d72d05faf19ba09ddfe27de3f6\",\"dweb:/ipfs/QmeXXQd2Wk1Jp1rvbysD1hZb3QVXR3sPxkU8UKBfwrKmkm\"]},\"src/IMirrorDecoder.sol\":{\"keccak256\":\"0xdc8493f52a809ac9470823d4c13f329845a10aa90a73bddd791137f3bd8849ac\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb625d21f8554f1a973a4ace5b5db4cc696b71605592a22eab44576d020ff70d\",\"dweb:/ipfs/Qma98jtpbJ4zYoBHwsCCUtgkeEVZsPFYUZiGwnPSpKsdqx\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b\",\"dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Router.sol\":{\"keccak256\":\"0xeb1eb08e258df76bce34b94392f4276b38849b8c94f9627081c6ae0a17371c11\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dc92bef1184e6377a33bfba7faa9bdca8187ecfe3cbf07024f46f8a171e47739\",\"dweb:/ipfs/QmRqups2TbDu2Gm7CKyPvAAEqsgKGWPekpA4giHKaG3PXp\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831\",\"dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"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":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BlockCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","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":"threshold","type":"uint64","indexed":false},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128","indexed":false}],"type":"event","name":"ComputationSettingsChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"startTimestamp","type":"uint256","indexed":false}],"type":"event","name":"NextEraValidatorsCommitted","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":[{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"view","type":"function","name":"areValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum Gear.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32[]","name":"_codesIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"codesStates","outputs":[{"internalType":"enum Gear.CodeState[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"struct Gear.BlockCommitment[]","name":"_blockCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBlock","type":"bytes32"},{"internalType":"bytes32","name":"predecessorBlock","type":"bytes32"},{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"struct Gear.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 Gear.Message[]","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 Gear.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 Gear.CodeCommitment[]","name":"_codeCommitments","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":"struct Gear.ValidatorsCommitment","name":"commitment","type":"tuple","components":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitValidators"},{"inputs":[],"stateMutability":"view","type":"function","name":"computeSettings","outputs":[{"internalType":"struct Gear.ComputationSettings","name":"","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_decoderImpl","type":"address"},{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"}],"stateMutability":"nonpayable","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":"genesisTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_mirrorProxy","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_validator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorProxyImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_programId","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"_programsIds","type":"address[]"}],"stateMutability":"view","type":"function","name":"programsCodeIds","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":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdPercentage","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"commitValidators((address[],uint256),bytes[])":{"details":"Set validators for the next era."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"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/","symbiotic-core/=lib/symbiotic-core/"],"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":"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae","urls":["bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0","dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x1899463c32e174ebde503846dd1b40ddb6d6ba15e21d68b21b8151e97af35a5e","urls":["bzz-raw://3c91227968491548c006b70f1de87bb1b67a83d72d05faf19ba09ddfe27de3f6","dweb:/ipfs/QmeXXQd2Wk1Jp1rvbysD1hZb3QVXR3sPxkU8UKBfwrKmkm"],"license":"UNLICENSED"},"src/IMirrorDecoder.sol":{"keccak256":"0xdc8493f52a809ac9470823d4c13f329845a10aa90a73bddd791137f3bd8849ac","urls":["bzz-raw://fb625d21f8554f1a973a4ace5b5db4cc696b71605592a22eab44576d020ff70d","dweb:/ipfs/Qma98jtpbJ4zYoBHwsCCUtgkeEVZsPFYUZiGwnPSpKsdqx"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf","urls":["bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b","dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Router.sol":{"keccak256":"0xeb1eb08e258df76bce34b94392f4276b38849b8c94f9627081c6ae0a17371c11","urls":["bzz-raw://dc92bef1184e6377a33bfba7faa9bdca8187ecfe3cbf07024f46f8a171e47739","dweb:/ipfs/QmRqups2TbDu2Gm7CKyPvAAEqsgKGWPekpA4giHKaG3PXp"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de","urls":["bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831","dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":69366,"exportedSymbols":{"Clones":[42512],"Gear":[70080],"IMirror":[65178],"IMirrorDecoder":[65215],"IRouter":[65486],"IWrappedVara":[65497],"OwnableUpgradeable":[40332],"ReentrancyGuardTransient":[44307],"Router":[69365],"StorageSlot":[44431]},"nodeType":"SourceUnit","src":"39:16857:120","nodes":[{"id":67813,"nodeType":"PragmaDirective","src":"39:24:120","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":67815,"nodeType":"ImportDirective","src":"65:64:120","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":69366,"sourceUnit":42513,"symbolAliases":[{"foreign":{"id":67814,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42512,"src":"73:6:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67817,"nodeType":"ImportDirective","src":"130:42:120","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"./libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":69366,"sourceUnit":70081,"symbolAliases":[{"foreign":{"id":67816,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"138:4:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67819,"nodeType":"ImportDirective","src":"173:38:120","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":69366,"sourceUnit":65179,"symbolAliases":[{"foreign":{"id":67818,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65178,"src":"181:7:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67821,"nodeType":"ImportDirective","src":"212:52:120","nodes":[],"absolutePath":"src/IMirrorDecoder.sol","file":"./IMirrorDecoder.sol","nameLocation":"-1:-1:-1","scope":69366,"sourceUnit":65216,"symbolAliases":[{"foreign":{"id":67820,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65215,"src":"220:14:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67823,"nodeType":"ImportDirective","src":"265:38:120","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":69366,"sourceUnit":65487,"symbolAliases":[{"foreign":{"id":67822,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65486,"src":"273:7:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67825,"nodeType":"ImportDirective","src":"304:48:120","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":69366,"sourceUnit":65498,"symbolAliases":[{"foreign":{"id":67824,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65497,"src":"312:12:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67827,"nodeType":"ImportDirective","src":"353:101:120","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":69366,"sourceUnit":40333,"symbolAliases":[{"foreign":{"id":67826,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40332,"src":"361:18:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67829,"nodeType":"ImportDirective","src":"455:100:120","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":69366,"sourceUnit":44308,"symbolAliases":[{"foreign":{"id":67828,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44307,"src":"463:24:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67831,"nodeType":"ImportDirective","src":"556:74:120","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":69366,"sourceUnit":44432,"symbolAliases":[{"foreign":{"id":67830,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44431,"src":"564:11:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69365,"nodeType":"ContractDefinition","src":"690:16205:120","nodes":[{"id":67840,"nodeType":"VariableDeclaration","src":"871:106:120","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"896:12:120","scope":69365,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67838,"name":"bytes32","nodeType":"ElementaryTypeName","src":"871:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":67839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"911:66:120","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":67848,"nodeType":"FunctionDefinition","src":"1037:53:120","nodes":[],"body":{"id":67847,"nodeType":"Block","src":"1051:39:120","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67844,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40554,"src":"1061:20:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1061:22:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67846,"nodeType":"ExpressionStatement","src":"1061:22:120"}]},"documentation":{"id":67841,"nodeType":"StructuredDocumentation","src":"984:48:120","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":67842,"nodeType":"ParameterList","parameters":[],"src":"1048:2:120"},"returnParameters":{"id":67843,"nodeType":"ParameterList","parameters":[],"src":"1051:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67960,"nodeType":"FunctionDefinition","src":"1096:1289:120","nodes":[],"body":{"id":67959,"nodeType":"Block","src":"1355:1030:120","nodes":[],"statements":[{"expression":{"arguments":[{"id":67869,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67850,"src":"1380:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67868,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40192,"src":"1365:14:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":67870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:22:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67871,"nodeType":"ExpressionStatement","src":"1365:22:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67873,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1512:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":67874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1518:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"1512:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":67875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1530:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1512:19:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63757272656e742074696d657374616d70206d7573742062652067726561746572207468616e2030","id":67877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1533:42:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_010a1bc0b39cf96528374edb07c79052766d9dbc6322e9b022f045d426584476","typeString":"literal_string \"current timestamp must be greater than 0\""},"value":"current timestamp must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_010a1bc0b39cf96528374edb07c79052766d9dbc6322e9b022f045d426584476","typeString":"literal_string \"current timestamp must be greater than 0\""}],"id":67872,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1504:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1504:72:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67879,"nodeType":"ExpressionStatement","src":"1504:72:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67881,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67860,"src":"1594:17:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":67882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1614:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1594:21:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"656c656374696f6e206475726174696f6e206d7573742062652067726561746572207468616e2030","id":67884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1617:42:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_22f70577ade1b9c6246323ca38a4066fa51456aa417f5a924af9df8299c24ade","typeString":"literal_string \"election duration must be greater than 0\""},"value":"election duration must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_22f70577ade1b9c6246323ca38a4066fa51456aa417f5a924af9df8299c24ade","typeString":"literal_string \"election duration must be greater than 0\""}],"id":67880,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1586:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1586:74:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67886,"nodeType":"ExpressionStatement","src":"1586:74:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67888,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67858,"src":"1678:12:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":67889,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67860,"src":"1693:17:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1678:32:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"657261206475726174696f6e206d7573742062652067726561746572207468616e20656c656374696f6e206475726174696f6e","id":67891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1712:53:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_07fe5d445d3047744132d2b933786d7532224c888580fad1eb3bf2fab68d889a","typeString":"literal_string \"era duration must be greater than election duration\""},"value":"era duration must be greater than election duration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_07fe5d445d3047744132d2b933786d7532224c888580fad1eb3bf2fab68d889a","typeString":"literal_string \"era duration must be greater than election duration\""}],"id":67887,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1670:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1670:96:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67893,"nodeType":"ExpressionStatement","src":"1670:96:120"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":67895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1793:25:120","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":67894,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69364,"src":"1777:15:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":67896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1777:42:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67897,"nodeType":"ExpressionStatement","src":"1777:42:120"},{"assignments":[67900],"declarations":[{"constant":false,"id":67900,"mutability":"mutable","name":"router","nameLocation":"1845:6:120","nodeType":"VariableDeclaration","scope":67959,"src":"1829:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":67899,"nodeType":"UserDefinedTypeName","pathNode":{"id":67898,"name":"Storage","nameLocations":["1829:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"1829:7:120"},"referencedDeclaration":65258,"src":"1829:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":67903,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":67901,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"1854:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":67902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1854:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1829:34:120"},{"expression":{"id":67910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67904,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67900,"src":"1874:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1881:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"1874:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":67907,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"1896:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":67908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1901:10:120","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":69800,"src":"1896:15:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$69557_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":67909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1896:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"1874:39:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":67911,"nodeType":"ExpressionStatement","src":"1874:39:120"},{"expression":{"id":67921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67912,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67900,"src":"1923:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1930:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"1923:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":67917,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67852,"src":"1963:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67918,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67854,"src":"1972:12:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67919,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67856,"src":"1986:12:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":67915,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"1946:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":67916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1951:11:120","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":69512,"src":"1946:16:120","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$69512_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":67920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1946:53:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"1923:76:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":67922,"nodeType":"ExpressionStatement","src":"1923:76:120"},{"expression":{"id":67930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":67923,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67900,"src":"2009:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2016:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"2009:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69619_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":67927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2035:26:120","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":69612,"src":"2009:52:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":67928,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"2064:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":67929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2069:28:120","memberName":"SIGNING_THRESHOLD_PERCENTAGE","nodeType":"MemberAccess","referencedDeclaration":69492,"src":"2064:33:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2009:88:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":67931,"nodeType":"ExpressionStatement","src":"2009:88:120"},{"expression":{"id":67938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67932,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67900,"src":"2107:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2114:15:120","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":65249,"src":"2107:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69550_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":67935,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"2132:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":67936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2137:26:120","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":69747,"src":"2132:31:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$69550_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":67937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:33:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69550_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"2107:58:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69550_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":67939,"nodeType":"ExpressionStatement","src":"2107:58:120"},{"expression":{"id":67948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67940,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67900,"src":"2175:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2182:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"2175:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69610_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":67945,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67858,"src":"2209:12:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":67946,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67860,"src":"2223:17:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":67943,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"2194:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":67944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2199:9:120","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":69610,"src":"2194:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$69610_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":67947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2194:47:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69610_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"2175:66:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69610_storage","typeString":"struct Gear.Timelines storage ref"}},"id":67949,"nodeType":"ExpressionStatement","src":"2175:66:120"},{"expression":{"arguments":[{"expression":{"expression":{"id":67951,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67900,"src":"2310:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2317:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"2310:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69619_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":67953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2336:11:120","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":69615,"src":"2310:37:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage","typeString":"struct Gear.Validators storage ref"}},{"id":67954,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67863,"src":"2349:11:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":67955,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2362:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":67956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2368:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"2362:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$69505_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":67950,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69294,"src":"2293:16:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$69505_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,address[] memory,uint256)"}},"id":67957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2293:85:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67958,"nodeType":"ExpressionStatement","src":"2293:85:120"}]},"functionSelector":"b1669a33","implemented":true,"kind":"function","modifiers":[{"id":67866,"kind":"modifierInvocation","modifierName":{"id":67865,"name":"initializer","nameLocations":["1343:11:120"],"nodeType":"IdentifierPath","referencedDeclaration":40440,"src":"1343:11:120"},"nodeType":"ModifierInvocation","src":"1343:11:120"}],"name":"initialize","nameLocation":"1105:10:120","parameters":{"id":67864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67850,"mutability":"mutable","name":"_owner","nameLocation":"1133:6:120","nodeType":"VariableDeclaration","scope":67960,"src":"1125:14:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67849,"name":"address","nodeType":"ElementaryTypeName","src":"1125:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67852,"mutability":"mutable","name":"_mirror","nameLocation":"1157:7:120","nodeType":"VariableDeclaration","scope":67960,"src":"1149:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67851,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67854,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"1182:12:120","nodeType":"VariableDeclaration","scope":67960,"src":"1174:20:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67853,"name":"address","nodeType":"ElementaryTypeName","src":"1174:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67856,"mutability":"mutable","name":"_wrappedVara","nameLocation":"1212:12:120","nodeType":"VariableDeclaration","scope":67960,"src":"1204:20:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67855,"name":"address","nodeType":"ElementaryTypeName","src":"1204:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67858,"mutability":"mutable","name":"_eraDuration","nameLocation":"1242:12:120","nodeType":"VariableDeclaration","scope":67960,"src":"1234:20:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67857,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67860,"mutability":"mutable","name":"_electionDuration","nameLocation":"1272:17:120","nodeType":"VariableDeclaration","scope":67960,"src":"1264:25:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67859,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67863,"mutability":"mutable","name":"_validators","nameLocation":"1318:11:120","nodeType":"VariableDeclaration","scope":67960,"src":"1299:30:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":67861,"name":"address","nodeType":"ElementaryTypeName","src":"1299:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67862,"nodeType":"ArrayTypeName","src":"1299:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1115:220:120"},"returnParameters":{"id":67867,"nodeType":"ParameterList","parameters":[],"src":"1355:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":68037,"nodeType":"FunctionDefinition","src":"2391:1409:120","nodes":[],"body":{"id":68036,"nodeType":"Block","src":"2449:1351:120","nodes":[],"statements":[{"assignments":[67970],"declarations":[{"constant":false,"id":67970,"mutability":"mutable","name":"oldRouter","nameLocation":"2475:9:120","nodeType":"VariableDeclaration","scope":68036,"src":"2459:25:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":67969,"nodeType":"UserDefinedTypeName","pathNode":{"id":67968,"name":"Storage","nameLocations":["2459:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"2459:7:120"},"referencedDeclaration":65258,"src":"2459:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":67973,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":67971,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"2487:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":67972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2487:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2459:37:120"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":67975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2523:25:120","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":67974,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69364,"src":"2507:15:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":67976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2507:42:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67977,"nodeType":"ExpressionStatement","src":"2507:42:120"},{"assignments":[67980],"declarations":[{"constant":false,"id":67980,"mutability":"mutable","name":"newRouter","nameLocation":"2575:9:120","nodeType":"VariableDeclaration","scope":68036,"src":"2559:25:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":67979,"nodeType":"UserDefinedTypeName","pathNode":{"id":67978,"name":"Storage","nameLocations":["2559:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"2559:7:120"},"referencedDeclaration":65258,"src":"2559:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":67983,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":67981,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"2587:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":67982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2587:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2559:37:120"},{"expression":{"id":67990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67984,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67980,"src":"2648:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2658:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"2648:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":67987,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"2673:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":67988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2678:10:120","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":69800,"src":"2673:15:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$69557_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":67989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"2648:42:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":67991,"nodeType":"ExpressionStatement","src":"2648:42:120"},{"expression":{"id":67997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67992,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67980,"src":"2816:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2826:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"2816:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":67995,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67970,"src":"2842:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2852:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"2842:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"src":"2816:49:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":67998,"nodeType":"ExpressionStatement","src":"2816:49:120"},{"expression":{"id":68007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":67999,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67980,"src":"2942:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2952:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"2942:28:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69619_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2971:26:120","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":69612,"src":"2942:55:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":68004,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67970,"src":"3012:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3022:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"3012:28:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69619_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3041:26:120","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":69612,"src":"3012:55:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2942:125:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":68008,"nodeType":"ExpressionStatement","src":"2942:125:120"},{"expression":{"arguments":[{"expression":{"expression":{"id":68010,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67980,"src":"3380:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3390:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"3380:28:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69619_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3409:11:120","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":69615,"src":"3380:40:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage","typeString":"struct Gear.Validators storage ref"}},{"expression":{"arguments":[{"id":68015,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67970,"src":"3448:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68013,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"3422:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3427:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":69946,"src":"3422:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69505_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3422:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3459:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69502,"src":"3422:41:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":68018,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3465:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3471:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"3465:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$69505_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68009,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69294,"src":"3350:16:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$69505_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,address[] memory,uint256)"}},"id":68020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3350:140:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68021,"nodeType":"ExpressionStatement","src":"3350:140:120"},{"expression":{"id":68027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":68022,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67980,"src":"3559:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3569:15:120","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":65249,"src":"3559:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69550_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":68025,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67970,"src":"3587:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3597:15:120","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":65249,"src":"3587:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69550_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"src":"3559:53:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69550_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":68028,"nodeType":"ExpressionStatement","src":"3559:53:120"},{"expression":{"id":68034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":68029,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67980,"src":"3670:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3680:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"3670:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69610_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":68032,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67970,"src":"3692:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3702:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"3692:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69610_storage","typeString":"struct Gear.Timelines storage ref"}},"src":"3670:41:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69610_storage","typeString":"struct Gear.Timelines storage ref"}},"id":68035,"nodeType":"ExpressionStatement","src":"3670:41:120"}]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":67963,"kind":"modifierInvocation","modifierName":{"id":67962,"name":"onlyOwner","nameLocations":["2422:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":40227,"src":"2422:9:120"},"nodeType":"ModifierInvocation","src":"2422:9:120"},{"arguments":[{"hexValue":"32","id":67965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2446:1:120","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":67966,"kind":"modifierInvocation","modifierName":{"id":67964,"name":"reinitializer","nameLocations":["2432:13:120"],"nodeType":"IdentifierPath","referencedDeclaration":40487,"src":"2432:13:120"},"nodeType":"ModifierInvocation","src":"2432:16:120"}],"name":"reinitialize","nameLocation":"2400:12:120","parameters":{"id":67961,"nodeType":"ParameterList","parameters":[],"src":"2412:2:120"},"returnParameters":{"id":67967,"nodeType":"ParameterList","parameters":[],"src":"2449:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":68048,"nodeType":"FunctionDefinition","src":"3822:109:120","nodes":[],"body":{"id":68047,"nodeType":"Block","src":"3880:51:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68042,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"3897:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3897:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3907:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"3897:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3920:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69552,"src":"3897:27:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":68041,"id":68046,"nodeType":"Return","src":"3890:34:120"}]},"baseFunctions":[65304],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"3831:16:120","parameters":{"id":68038,"nodeType":"ParameterList","parameters":[],"src":"3847:2:120"},"returnParameters":{"id":68041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68048,"src":"3871:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3871:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3870:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68059,"nodeType":"FunctionDefinition","src":"3937:113:120","nodes":[],"body":{"id":68058,"nodeType":"Block","src":"3994:56:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68053,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"4011:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4011:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4021:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"4011:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4034:9:120","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":69556,"src":"4011:32:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":68052,"id":68057,"nodeType":"Return","src":"4004:39:120"}]},"baseFunctions":[65309],"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"3946:16:120","parameters":{"id":68049,"nodeType":"ParameterList","parameters":[],"src":"3962:2:120"},"returnParameters":{"id":68052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68059,"src":"3986:6:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":68050,"name":"uint48","nodeType":"ElementaryTypeName","src":"3986:6:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3985:8:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68070,"nodeType":"FunctionDefinition","src":"4056:125:120","nodes":[],"body":{"id":68069,"nodeType":"Block","src":"4122:59:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68064,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"4139:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4139:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4149:20:120","memberName":"latestCommittedBlock","nodeType":"MemberAccess","referencedDeclaration":65237,"src":"4139:30:120","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBlockInfo_$69545_storage","typeString":"struct Gear.CommittedBlockInfo storage ref"}},"id":68067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4170:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69542,"src":"4139:35:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":68063,"id":68068,"nodeType":"Return","src":"4132:42:120"}]},"baseFunctions":[65314],"functionSelector":"c9f16a11","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBlockHash","nameLocation":"4065:24:120","parameters":{"id":68060,"nodeType":"ParameterList","parameters":[],"src":"4089:2:120"},"returnParameters":{"id":68063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68070,"src":"4113:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4113:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4112:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68081,"nodeType":"FunctionDefinition","src":"4187:106:120","nodes":[],"body":{"id":68080,"nodeType":"Block","src":"4239:54:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68075,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"4256:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4256:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4266:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"4256:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":68078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4280:6:120","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":69507,"src":"4256:30:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68074,"id":68079,"nodeType":"Return","src":"4249:37:120"}]},"baseFunctions":[65319],"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"4196:10:120","parameters":{"id":68071,"nodeType":"ParameterList","parameters":[],"src":"4206:2:120"},"returnParameters":{"id":68074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68081,"src":"4230:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68072,"name":"address","nodeType":"ElementaryTypeName","src":"4230:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4229:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68092,"nodeType":"FunctionDefinition","src":"4299:116:120","nodes":[],"body":{"id":68091,"nodeType":"Block","src":"4356:59:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68086,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"4373:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4373:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4383:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"4373:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":68089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4397:11:120","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":69509,"src":"4373:35:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68085,"id":68090,"nodeType":"Return","src":"4366:42:120"}]},"baseFunctions":[65324],"functionSelector":"65ecfea2","implemented":true,"kind":"function","modifiers":[],"name":"mirrorProxyImpl","nameLocation":"4308:15:120","parameters":{"id":68082,"nodeType":"ParameterList","parameters":[],"src":"4323:2:120"},"returnParameters":{"id":68085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68092,"src":"4347:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68083,"name":"address","nodeType":"ElementaryTypeName","src":"4347:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4346:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68103,"nodeType":"FunctionDefinition","src":"4421:112:120","nodes":[],"body":{"id":68102,"nodeType":"Block","src":"4474:59:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68097,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"4491:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4491:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4501:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"4491:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":68100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4515:11:120","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":69511,"src":"4491:35:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68096,"id":68101,"nodeType":"Return","src":"4484:42:120"}]},"baseFunctions":[65329],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"4430:11:120","parameters":{"id":68093,"nodeType":"ParameterList","parameters":[],"src":"4441:2:120"},"returnParameters":{"id":68096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68095,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68103,"src":"4465:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68094,"name":"address","nodeType":"ElementaryTypeName","src":"4465:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4464:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68149,"nodeType":"FunctionDefinition","src":"4539:375:120","nodes":[],"body":{"id":68148,"nodeType":"Block","src":"4621:293:120","nodes":[],"statements":[{"assignments":[68115],"declarations":[{"constant":false,"id":68115,"mutability":"mutable","name":"_currentValidators","nameLocation":"4655:18:120","nodeType":"VariableDeclaration","scope":68148,"src":"4631:42:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":68114,"nodeType":"UserDefinedTypeName","pathNode":{"id":68113,"name":"Gear.Validators","nameLocations":["4631:4:120","4636:10:120"],"nodeType":"IdentifierPath","referencedDeclaration":69505,"src":"4631:15:120"},"referencedDeclaration":69505,"src":"4631:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":68121,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":68118,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"4702:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4702:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68116,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"4676:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4681:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":69946,"src":"4676:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69505_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4676:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4631:81:120"},{"body":{"id":68144,"nodeType":"Block","src":"4772:114:120","statements":[{"condition":{"id":68139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4790:39:120","subExpression":{"baseExpression":{"expression":{"id":68133,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68115,"src":"4791:18:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4810:3:120","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":69499,"src":"4791:22:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":68138,"indexExpression":{"baseExpression":{"id":68135,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68106,"src":"4814:11:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":68137,"indexExpression":{"id":68136,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68123,"src":"4826:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4814:14:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4791:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68143,"nodeType":"IfStatement","src":"4786:90:120","trueBody":{"id":68142,"nodeType":"Block","src":"4831:45:120","statements":[{"expression":{"hexValue":"66616c7365","id":68140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4856:5:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":68110,"id":68141,"nodeType":"Return","src":"4849:12:120"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68123,"src":"4743:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68127,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68106,"src":"4747:11:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":68128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4759:6:120","memberName":"length","nodeType":"MemberAccess","src":"4747:18:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4743:22:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68145,"initializationExpression":{"assignments":[68123],"declarations":[{"constant":false,"id":68123,"mutability":"mutable","name":"i","nameLocation":"4736:1:120","nodeType":"VariableDeclaration","scope":68145,"src":"4728:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68122,"name":"uint256","nodeType":"ElementaryTypeName","src":"4728:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68125,"initialValue":{"hexValue":"30","id":68124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4740:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4728:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":68131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4767:3:120","subExpression":{"id":68130,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68123,"src":"4767:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68132,"nodeType":"ExpressionStatement","src":"4767:3:120"},"nodeType":"ForStatement","src":"4723:163:120"},{"expression":{"hexValue":"74727565","id":68146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4903:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":68110,"id":68147,"nodeType":"Return","src":"4896:11:120"}]},"baseFunctions":[65337],"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"4548:13:120","parameters":{"id":68107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68106,"mutability":"mutable","name":"_validators","nameLocation":"4581:11:120","nodeType":"VariableDeclaration","scope":68149,"src":"4562:30:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":68104,"name":"address","nodeType":"ElementaryTypeName","src":"4562:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":68105,"nodeType":"ArrayTypeName","src":"4562:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4561:32:120"},"returnParameters":{"id":68110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68149,"src":"4615:4:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":68108,"name":"bool","nodeType":"ElementaryTypeName","src":"4615:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4614:6:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68166,"nodeType":"FunctionDefinition","src":"4920:144:120","nodes":[],"body":{"id":68165,"nodeType":"Block","src":"4988:76:120","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":68158,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"5031:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5031:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68156,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"5005:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5010:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":69946,"src":"5005:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69505_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5005:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5042:3:120","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":69499,"src":"5005:40:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":68163,"indexExpression":{"id":68162,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68151,"src":"5046:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5005:52:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":68155,"id":68164,"nodeType":"Return","src":"4998:59:120"}]},"baseFunctions":[65344],"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"4929:11:120","parameters":{"id":68152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68151,"mutability":"mutable","name":"_validator","nameLocation":"4949:10:120","nodeType":"VariableDeclaration","scope":68166,"src":"4941:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68150,"name":"address","nodeType":"ElementaryTypeName","src":"4941:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4940:20:120"},"returnParameters":{"id":68155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68166,"src":"4982:4:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":68153,"name":"bool","nodeType":"ElementaryTypeName","src":"4982:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4981:6:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68177,"nodeType":"FunctionDefinition","src":"5070:146:120","nodes":[],"body":{"id":68176,"nodeType":"Block","src":"5137:79:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68171,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"5154:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5154:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5164:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"5154:28:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69619_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5183:26:120","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":69612,"src":"5154:55:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":68170,"id":68175,"nodeType":"Return","src":"5147:62:120"}]},"baseFunctions":[65349],"functionSelector":"efd81abc","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdPercentage","nameLocation":"5079:26:120","parameters":{"id":68167,"nodeType":"ParameterList","parameters":[],"src":"5105:2:120"},"returnParameters":{"id":68170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68177,"src":"5129:6:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":68168,"name":"uint16","nodeType":"ElementaryTypeName","src":"5129:6:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5128:8:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68191,"nodeType":"FunctionDefinition","src":"5222:126:120","nodes":[],"body":{"id":68190,"nodeType":"Block","src":"5283:65:120","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":68185,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"5326:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5326:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68183,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"5300:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5305:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":69946,"src":"5300:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69505_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5300:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5337:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69502,"src":"5300:41:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":68182,"id":68189,"nodeType":"Return","src":"5293:48:120"}]},"baseFunctions":[65355],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"5231:10:120","parameters":{"id":68178,"nodeType":"ParameterList","parameters":[],"src":"5241:2:120"},"returnParameters":{"id":68182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68191,"src":"5265:16:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":68179,"name":"address","nodeType":"ElementaryTypeName","src":"5265:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":68180,"nodeType":"ArrayTypeName","src":"5265:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5264:18:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68205,"nodeType":"FunctionDefinition","src":"5354:129:120","nodes":[],"body":{"id":68204,"nodeType":"Block","src":"5411:72:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":68198,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"5454:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5454:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68196,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"5428:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5433:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":69946,"src":"5428:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69505_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5428:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5465:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69502,"src":"5428:41:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":68202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5470:6:120","memberName":"length","nodeType":"MemberAccess","src":"5428:48:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":68195,"id":68203,"nodeType":"Return","src":"5421:55:120"}]},"baseFunctions":[65360],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"5363:15:120","parameters":{"id":68192,"nodeType":"ParameterList","parameters":[],"src":"5378:2:120"},"returnParameters":{"id":68195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68194,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68205,"src":"5402:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68193,"name":"uint256","nodeType":"ElementaryTypeName","src":"5402:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5401:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68232,"nodeType":"FunctionDefinition","src":"5489:284:120","nodes":[],"body":{"id":68231,"nodeType":"Block","src":"5550:223:120","nodes":[],"statements":[{"assignments":[68214],"declarations":[{"constant":false,"id":68214,"mutability":"mutable","name":"router","nameLocation":"5584:6:120","nodeType":"VariableDeclaration","scope":68231,"src":"5560:30:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68213,"nodeType":"UserDefinedTypeName","pathNode":{"id":68212,"name":"IRouter.Storage","nameLocations":["5560:7:120","5568:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"5560:15:120"},"referencedDeclaration":65258,"src":"5560:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68217,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68215,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"5593:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5593:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5560:42:120"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":68222,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68214,"src":"5683:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68220,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"5657:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5662:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":69946,"src":"5657:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69505_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5657:33:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5691:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69502,"src":"5657:38:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":68225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5696:6:120","memberName":"length","nodeType":"MemberAccess","src":"5657:45:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":68226,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68214,"src":"5704:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5711:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"5704:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69619_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5730:26:120","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":69612,"src":"5704:52:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":68218,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"5619:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5624:19:120","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":70060,"src":"5619:24:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint256,uint16) pure returns (uint256)"}},"id":68229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5619:147:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":68209,"id":68230,"nodeType":"Return","src":"5612:154:120"}]},"baseFunctions":[65365],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"5498:19:120","parameters":{"id":68206,"nodeType":"ParameterList","parameters":[],"src":"5517:2:120"},"returnParameters":{"id":68209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68232,"src":"5541:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68207,"name":"uint256","nodeType":"ElementaryTypeName","src":"5541:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5540:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68243,"nodeType":"FunctionDefinition","src":"5779:130:120","nodes":[],"body":{"id":68242,"nodeType":"Block","src":"5860:49:120","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68238,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"5877:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5877:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5887:15:120","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":65249,"src":"5877:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69550_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":68237,"id":68241,"nodeType":"Return","src":"5870:32:120"}]},"baseFunctions":[65371],"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"5788:15:120","parameters":{"id":68233,"nodeType":"ParameterList","parameters":[],"src":"5803:2:120"},"returnParameters":{"id":68237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68243,"src":"5827:31:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69550_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":68235,"nodeType":"UserDefinedTypeName","pathNode":{"id":68234,"name":"Gear.ComputationSettings","nameLocations":["5827:4:120","5832:19:120"],"nodeType":"IdentifierPath","referencedDeclaration":69550,"src":"5827:24:120"},"referencedDeclaration":69550,"src":"5827:24:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69550_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"5826:33:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68259,"nodeType":"FunctionDefinition","src":"5915:134:120","nodes":[],"body":{"id":68258,"nodeType":"Block","src":"5988:61:120","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68251,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"6005:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6005:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6015:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"6005:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6028:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69574,"src":"6005:28:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69540_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68256,"indexExpression":{"id":68255,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68245,"src":"6034:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6005:37:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"functionReturnParameters":68250,"id":68257,"nodeType":"Return","src":"5998:44:120"}]},"baseFunctions":[65379],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"5924:9:120","parameters":{"id":68246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68245,"mutability":"mutable","name":"_codeId","nameLocation":"5942:7:120","nodeType":"VariableDeclaration","scope":68259,"src":"5934:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5934:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5933:17:120"},"returnParameters":{"id":68250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68259,"src":"5972:14:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"},"typeName":{"id":68248,"nodeType":"UserDefinedTypeName","pathNode":{"id":68247,"name":"Gear.CodeState","nameLocations":["5972:4:120","5977:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":69540,"src":"5972:14:120"},"referencedDeclaration":69540,"src":"5972:14:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"5971:16:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68317,"nodeType":"FunctionDefinition","src":"6055:378:120","nodes":[],"body":{"id":68316,"nodeType":"Block","src":"6152:281:120","nodes":[],"statements":[{"assignments":[68271],"declarations":[{"constant":false,"id":68271,"mutability":"mutable","name":"router","nameLocation":"6178:6:120","nodeType":"VariableDeclaration","scope":68316,"src":"6162:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68270,"nodeType":"UserDefinedTypeName","pathNode":{"id":68269,"name":"Storage","nameLocations":["6162:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"6162:7:120"},"referencedDeclaration":65258,"src":"6162:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68272,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"6187:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6187:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6162:34:120"},{"assignments":[68280],"declarations":[{"constant":false,"id":68280,"mutability":"mutable","name":"res","nameLocation":"6231:3:120","nodeType":"VariableDeclaration","scope":68316,"src":"6207:27:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69540_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":68278,"nodeType":"UserDefinedTypeName","pathNode":{"id":68277,"name":"Gear.CodeState","nameLocations":["6207:4:120","6212:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":69540,"src":"6207:14:120"},"referencedDeclaration":69540,"src":"6207:14:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"id":68279,"nodeType":"ArrayTypeName","src":"6207:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69540_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":68288,"initialValue":{"arguments":[{"expression":{"id":68285,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68262,"src":"6258:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":68286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6268:6:120","memberName":"length","nodeType":"MemberAccess","src":"6258:16:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6237:20:120","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$69540_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":68282,"nodeType":"UserDefinedTypeName","pathNode":{"id":68281,"name":"Gear.CodeState","nameLocations":["6241:4:120","6246:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":69540,"src":"6241:14:120"},"referencedDeclaration":69540,"src":"6241:14:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"id":68283,"nodeType":"ArrayTypeName","src":"6241:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69540_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":68287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6237:38:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69540_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6207:68:120"},{"body":{"id":68312,"nodeType":"Block","src":"6333:73:120","statements":[{"expression":{"id":68310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":68300,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68280,"src":"6347:3:120","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69540_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":68302,"indexExpression":{"id":68301,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68290,"src":"6351:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6347:6:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":68303,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68271,"src":"6356:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6363:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"6356:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6376:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69574,"src":"6356:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69540_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68309,"indexExpression":{"baseExpression":{"id":68306,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68262,"src":"6382:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":68308,"indexExpression":{"id":68307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68290,"src":"6392:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6382:12:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6356:39:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"src":"6347:48:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"id":68311,"nodeType":"ExpressionStatement","src":"6347:48:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68293,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68290,"src":"6306:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68294,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68262,"src":"6310:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":68295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6320:6:120","memberName":"length","nodeType":"MemberAccess","src":"6310:16:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6306:20:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68313,"initializationExpression":{"assignments":[68290],"declarations":[{"constant":false,"id":68290,"mutability":"mutable","name":"i","nameLocation":"6299:1:120","nodeType":"VariableDeclaration","scope":68313,"src":"6291:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68289,"name":"uint256","nodeType":"ElementaryTypeName","src":"6291:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68292,"initialValue":{"hexValue":"30","id":68291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6303:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6291:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":68298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6328:3:120","subExpression":{"id":68297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68290,"src":"6328:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68299,"nodeType":"ExpressionStatement","src":"6328:3:120"},"nodeType":"ForStatement","src":"6286:120:120"},{"expression":{"id":68314,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68280,"src":"6423:3:120","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69540_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":68268,"id":68315,"nodeType":"Return","src":"6416:10:120"}]},"baseFunctions":[65389],"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"6064:11:120","parameters":{"id":68263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68262,"mutability":"mutable","name":"_codesIds","nameLocation":"6095:9:120","nodeType":"VariableDeclaration","scope":68317,"src":"6076:28:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":68260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6076:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68261,"nodeType":"ArrayTypeName","src":"6076:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6075:30:120"},"returnParameters":{"id":68268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68317,"src":"6127:23:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69540_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":68265,"nodeType":"UserDefinedTypeName","pathNode":{"id":68264,"name":"Gear.CodeState","nameLocations":["6127:4:120","6132:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":69540,"src":"6127:14:120"},"referencedDeclaration":69540,"src":"6127:14:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"id":68266,"nodeType":"ArrayTypeName","src":"6127:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69540_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"6126:25:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68332,"nodeType":"FunctionDefinition","src":"6439:140:120","nodes":[],"body":{"id":68331,"nodeType":"Block","src":"6512:67:120","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68324,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"6529:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6529:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6539:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"6529:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6552:8:120","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":69578,"src":"6529:31:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":68329,"indexExpression":{"id":68328,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68319,"src":"6561:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6529:43:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":68323,"id":68330,"nodeType":"Return","src":"6522:50:120"}]},"baseFunctions":[65396],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"6448:13:120","parameters":{"id":68320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68319,"mutability":"mutable","name":"_programId","nameLocation":"6470:10:120","nodeType":"VariableDeclaration","scope":68332,"src":"6462:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68318,"name":"address","nodeType":"ElementaryTypeName","src":"6462:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6461:20:120"},"returnParameters":{"id":68323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68332,"src":"6503:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6503:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6502:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68387,"nodeType":"FunctionDefinition","src":"6585:376:120","nodes":[],"body":{"id":68386,"nodeType":"Block","src":"6682:279:120","nodes":[],"statements":[{"assignments":[68343],"declarations":[{"constant":false,"id":68343,"mutability":"mutable","name":"router","nameLocation":"6708:6:120","nodeType":"VariableDeclaration","scope":68386,"src":"6692:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68342,"nodeType":"UserDefinedTypeName","pathNode":{"id":68341,"name":"Storage","nameLocations":["6692:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"6692:7:120"},"referencedDeclaration":65258,"src":"6692:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68346,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68344,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"6717:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6717:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6692:34:120"},{"assignments":[68351],"declarations":[{"constant":false,"id":68351,"mutability":"mutable","name":"res","nameLocation":"6754:3:120","nodeType":"VariableDeclaration","scope":68386,"src":"6737:20:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":68349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68350,"nodeType":"ArrayTypeName","src":"6737:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":68358,"initialValue":{"arguments":[{"expression":{"id":68355,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68335,"src":"6774:12:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":68356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6787:6:120","memberName":"length","nodeType":"MemberAccess","src":"6774:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6760:13:120","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":68352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6764:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68353,"nodeType":"ArrayTypeName","src":"6764:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":68357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6760:34:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6737:57:120"},{"body":{"id":68382,"nodeType":"Block","src":"6855:79:120","statements":[{"expression":{"id":68380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":68370,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68351,"src":"6869:3:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":68372,"indexExpression":{"id":68371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68360,"src":"6873:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6869:6:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":68373,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68343,"src":"6878:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6885:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"6878:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6898:8:120","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":69578,"src":"6878:28:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":68379,"indexExpression":{"baseExpression":{"id":68376,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68335,"src":"6907:12:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":68378,"indexExpression":{"id":68377,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68360,"src":"6920:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6907:15:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6878:45:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6869:54:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68381,"nodeType":"ExpressionStatement","src":"6869:54:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68363,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68360,"src":"6825:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68364,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68335,"src":"6829:12:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":68365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6842:6:120","memberName":"length","nodeType":"MemberAccess","src":"6829:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6825:23:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68383,"initializationExpression":{"assignments":[68360],"declarations":[{"constant":false,"id":68360,"mutability":"mutable","name":"i","nameLocation":"6818:1:120","nodeType":"VariableDeclaration","scope":68383,"src":"6810:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68359,"name":"uint256","nodeType":"ElementaryTypeName","src":"6810:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68362,"initialValue":{"hexValue":"30","id":68361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6822:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6810:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":68368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6850:3:120","subExpression":{"id":68367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68360,"src":"6850:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68369,"nodeType":"ExpressionStatement","src":"6850:3:120"},"nodeType":"ForStatement","src":"6805:129:120"},{"expression":{"id":68384,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68351,"src":"6951:3:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":68340,"id":68385,"nodeType":"Return","src":"6944:10:120"}]},"baseFunctions":[65405],"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"6594:15:120","parameters":{"id":68336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68335,"mutability":"mutable","name":"_programsIds","nameLocation":"6629:12:120","nodeType":"VariableDeclaration","scope":68387,"src":"6610:31:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":68333,"name":"address","nodeType":"ElementaryTypeName","src":"6610:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":68334,"nodeType":"ArrayTypeName","src":"6610:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"6609:33:120"},"returnParameters":{"id":68340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68387,"src":"6664:16:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":68337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6664:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68338,"nodeType":"ArrayTypeName","src":"6664:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6663:18:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68398,"nodeType":"FunctionDefinition","src":"6967:115:120","nodes":[],"body":{"id":68397,"nodeType":"Block","src":"7022:60:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68392,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"7039:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7039:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7049:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"7039:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7062:13:120","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":69580,"src":"7039:36:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":68391,"id":68396,"nodeType":"Return","src":"7032:43:120"}]},"baseFunctions":[65410],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"6976:13:120","parameters":{"id":68388,"nodeType":"ParameterList","parameters":[],"src":"6989:2:120"},"returnParameters":{"id":68391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68398,"src":"7013:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68389,"name":"uint256","nodeType":"ElementaryTypeName","src":"7013:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7012:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68409,"nodeType":"FunctionDefinition","src":"7088:127:120","nodes":[],"body":{"id":68408,"nodeType":"Block","src":"7149:66:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68403,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"7166:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7166:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7176:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"7166:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7189:19:120","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":69582,"src":"7166:42:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":68402,"id":68407,"nodeType":"Return","src":"7159:49:120"}]},"baseFunctions":[65415],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"7097:19:120","parameters":{"id":68399,"nodeType":"ParameterList","parameters":[],"src":"7116:2:120"},"returnParameters":{"id":68402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68409,"src":"7140:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68400,"name":"uint256","nodeType":"ElementaryTypeName","src":"7140:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7139:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68424,"nodeType":"FunctionDefinition","src":"7241:116:120","nodes":[],"body":{"id":68423,"nodeType":"Block","src":"7298:59:120","nodes":[],"statements":[{"expression":{"id":68421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68416,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"7308:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7308:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7318:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"7308:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":68419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7332:6:120","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":69507,"src":"7308:30:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":68420,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68411,"src":"7341:9:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7308:42:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":68422,"nodeType":"ExpressionStatement","src":"7308:42:120"}]},"baseFunctions":[65420],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":68414,"kind":"modifierInvocation","modifierName":{"id":68413,"name":"onlyOwner","nameLocations":["7288:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":40227,"src":"7288:9:120"},"nodeType":"ModifierInvocation","src":"7288:9:120"}],"name":"setMirror","nameLocation":"7250:9:120","parameters":{"id":68412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68411,"mutability":"mutable","name":"newMirror","nameLocation":"7268:9:120","nodeType":"VariableDeclaration","scope":68424,"src":"7260:17:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68410,"name":"address","nodeType":"ElementaryTypeName","src":"7260:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7259:19:120"},"returnParameters":{"id":68415,"nodeType":"ParameterList","parameters":[],"src":"7298:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68476,"nodeType":"FunctionDefinition","src":"7379:398:120","nodes":[],"body":{"id":68475,"nodeType":"Block","src":"7417:360:120","nodes":[],"statements":[{"assignments":[68429],"declarations":[{"constant":false,"id":68429,"mutability":"mutable","name":"router","nameLocation":"7443:6:120","nodeType":"VariableDeclaration","scope":68475,"src":"7427:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68428,"nodeType":"UserDefinedTypeName","pathNode":{"id":68427,"name":"Storage","nameLocations":["7427:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"7427:7:120"},"referencedDeclaration":65258,"src":"7427:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68432,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68430,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"7452:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7452:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7427:34:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68434,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68429,"src":"7480:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7487:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"7480:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7500:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69552,"src":"7480:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":68439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7516:1:120","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":68438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7508:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7508:7:120","typeDescriptions":{}}},"id":68440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7508:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7480:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67656e65736973206861736820616c726561647920736574","id":68442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7520:26:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ec654a5a6e0b043639db348d1557e0acfcdb8bbf2c9de24c4983866c0ccfa21","typeString":"literal_string \"genesis hash already set\""},"value":"genesis hash already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ec654a5a6e0b043639db348d1557e0acfcdb8bbf2c9de24c4983866c0ccfa21","typeString":"literal_string \"genesis hash already set\""}],"id":68433,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7472:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7472:75:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68444,"nodeType":"ExpressionStatement","src":"7472:75:120"},{"assignments":[68446],"declarations":[{"constant":false,"id":68446,"mutability":"mutable","name":"genesisHash","nameLocation":"7566:11:120","nodeType":"VariableDeclaration","scope":68475,"src":"7558:19:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7558:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":68452,"initialValue":{"arguments":[{"expression":{"expression":{"id":68448,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68429,"src":"7590:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7597:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"7590:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7610:6:120","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":69554,"src":"7590:26:120","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":68447,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"7580:9:120","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":68451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7580:37:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7558:59:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68454,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68446,"src":"7636:11:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":68457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7659:1:120","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":68456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7651:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7651:7:120","typeDescriptions":{}}},"id":68458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7651:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7636:25:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e61626c6520746f206c6f6f6b75702067656e657369732068617368","id":68460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7663:31:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_983585e130902c48e8b21c3e7ab53cd0d7f3ffc3109244b201330c039df8ce4e","typeString":"literal_string \"unable to lookup genesis hash\""},"value":"unable to lookup genesis hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_983585e130902c48e8b21c3e7ab53cd0d7f3ffc3109244b201330c039df8ce4e","typeString":"literal_string \"unable to lookup genesis hash\""}],"id":68453,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7628:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7628:67:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68462,"nodeType":"ExpressionStatement","src":"7628:67:120"},{"expression":{"id":68473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":68463,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68429,"src":"7706:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7713:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"7706:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7726:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69552,"src":"7706:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":68469,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68429,"src":"7743:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7750:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"7743:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7763:6:120","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":69554,"src":"7743:26:120","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":68468,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"7733:9:120","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":68472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7733:37:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7706:64:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68474,"nodeType":"ExpressionStatement","src":"7706:64:120"}]},"baseFunctions":[65423],"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"7388:17:120","parameters":{"id":68425,"nodeType":"ParameterList","parameters":[],"src":"7405:2:120"},"returnParameters":{"id":68426,"nodeType":"ParameterList","parameters":[],"src":"7417:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68545,"nodeType":"FunctionDefinition","src":"7783:637:120","nodes":[],"body":{"id":68544,"nodeType":"Block","src":"7861:559:120","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":68492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68484,"name":"_blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68480,"src":"7879:11:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":68485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7894:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7879:16:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":68488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7908:1:120","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":68487,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"7899:8:120","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":68489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7899:11:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":68490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7914:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7899:16:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7879:36:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"626c6f622063616e277420626520666f756e64","id":68493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7917:21:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_50f679c075644435e0dfad2beb36f786441d5cb0c0dd08ea9c9aa80169c123d2","typeString":"literal_string \"blob can't be found\""},"value":"blob can't be found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_50f679c075644435e0dfad2beb36f786441d5cb0c0dd08ea9c9aa80169c123d2","typeString":"literal_string \"blob can't be found\""}],"id":68483,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7871:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7871:68:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68495,"nodeType":"ExpressionStatement","src":"7871:68:120"},{"assignments":[68498],"declarations":[{"constant":false,"id":68498,"mutability":"mutable","name":"router","nameLocation":"7966:6:120","nodeType":"VariableDeclaration","scope":68544,"src":"7950:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68497,"nodeType":"UserDefinedTypeName","pathNode":{"id":68496,"name":"Storage","nameLocations":["7950:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"7950:7:120"},"referencedDeclaration":65258,"src":"7950:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68501,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68499,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"7975:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7975:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7950:34:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68503,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68498,"src":"8002:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8009:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"8002:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8022:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69552,"src":"8002:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":68508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8038:1:120","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":68507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8030:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8030:7:120","typeDescriptions":{}}},"id":68509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8030:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8002:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f6f6b757047656e6573697348617368282960206669727374","id":68511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8042:58:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""},"value":"router genesis is zero; call `lookupGenesisHash()` first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""}],"id":68502,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7994:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7994:107:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68513,"nodeType":"ExpressionStatement","src":"7994:107:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"},"id":68523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":68515,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68498,"src":"8133:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8140:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"8133:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8153:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69574,"src":"8133:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69540_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68519,"indexExpression":{"id":68518,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68478,"src":"8159:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8133:34:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":68520,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"8171:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8176:9:120","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":69540,"src":"8171:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$69540_$","typeString":"type(enum Gear.CodeState)"}},"id":68522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8186:7:120","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":69537,"src":"8171:22:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"src":"8133:60:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"676976656e20636f646520696420697320616c7265616479206f6e2076616c69646174696f6e206f722076616c696461746564","id":68524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8207:53:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_6767c8b133cc7e7263c64dbd155947c93c4fdbe1adf907d9d3428673190ae536","typeString":"literal_string \"given code id is already on validation or validated\""},"value":"given code id is already on validation or validated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6767c8b133cc7e7263c64dbd155947c93c4fdbe1adf907d9d3428673190ae536","typeString":"literal_string \"given code id is already on validation or validated\""}],"id":68514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8112:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8112:158:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68526,"nodeType":"ExpressionStatement","src":"8112:158:120"},{"expression":{"id":68537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":68527,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68498,"src":"8281:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8288:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"8281:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8301:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69574,"src":"8281:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69540_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68533,"indexExpression":{"id":68530,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68478,"src":"8307:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8281:34:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":68534,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"8318:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8323:9:120","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":69540,"src":"8318:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$69540_$","typeString":"type(enum Gear.CodeState)"}},"id":68536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8333:19:120","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":69538,"src":"8318:34:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"src":"8281:71:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"id":68538,"nodeType":"ExpressionStatement","src":"8281:71:120"},{"eventCall":{"arguments":[{"id":68540,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68478,"src":"8392:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68541,"name":"_blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68480,"src":"8401:11:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":68539,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65277,"src":"8368:23:120","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":68542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8368:45:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68543,"nodeType":"EmitStatement","src":"8363:50:120"}]},"baseFunctions":[65431],"functionSelector":"1c149d8a","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidation","nameLocation":"7792:21:120","parameters":{"id":68481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68478,"mutability":"mutable","name":"_codeId","nameLocation":"7822:7:120","nodeType":"VariableDeclaration","scope":68545,"src":"7814:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7814:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":68480,"mutability":"mutable","name":"_blobTxHash","nameLocation":"7839:11:120","nodeType":"VariableDeclaration","scope":68545,"src":"7831:19:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7831:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7813:38:120"},"returnParameters":{"id":68482,"nodeType":"ParameterList","parameters":[],"src":"7861:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68576,"nodeType":"FunctionDefinition","src":"8426:231:120","nodes":[],"body":{"id":68575,"nodeType":"Block","src":"8508:149:120","nodes":[],"statements":[{"assignments":[68555],"declarations":[{"constant":false,"id":68555,"mutability":"mutable","name":"mirror","nameLocation":"8526:6:120","nodeType":"VariableDeclaration","scope":68575,"src":"8518:14:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68554,"name":"address","nodeType":"ElementaryTypeName","src":"8518:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":68560,"initialValue":{"arguments":[{"id":68557,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68547,"src":"8550:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68558,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68549,"src":"8559:5:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":68556,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69031,"src":"8535:14:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) returns (address)"}},"id":68559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8518:47:120"},{"expression":{"arguments":[{"expression":{"id":68565,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8603:3:120","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":68566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8607:6:120","memberName":"sender","nodeType":"MemberAccess","src":"8603:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":68569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8623:1:120","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":68568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8615:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":68567,"name":"address","nodeType":"ElementaryTypeName","src":"8615:7:120","typeDescriptions":{}}},"id":68570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8615:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":68562,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68555,"src":"8584:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":68561,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65178,"src":"8576:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$65178_$","typeString":"type(contract IMirror)"}},"id":68563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8576:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$65178","typeString":"contract IMirror"}},"id":68564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8592:10:120","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":65169,"src":"8576:26:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":68571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8576:50:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68572,"nodeType":"ExpressionStatement","src":"8576:50:120"},{"expression":{"id":68573,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68555,"src":"8644:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68553,"id":68574,"nodeType":"Return","src":"8637:13:120"}]},"baseFunctions":[65441],"functionSelector":"527de0f9","implemented":true,"kind":"function","modifiers":[],"name":"createProgram","nameLocation":"8435:13:120","parameters":{"id":68550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68547,"mutability":"mutable","name":"_codeId","nameLocation":"8457:7:120","nodeType":"VariableDeclaration","scope":68576,"src":"8449:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8449:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":68549,"mutability":"mutable","name":"_salt","nameLocation":"8474:5:120","nodeType":"VariableDeclaration","scope":68576,"src":"8466:13:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8466:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8448:32:120"},"returnParameters":{"id":68553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68576,"src":"8499:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68551,"name":"address","nodeType":"ElementaryTypeName","src":"8499:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8498:9:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68620,"nodeType":"FunctionDefinition","src":"8663:390:120","nodes":[],"body":{"id":68619,"nodeType":"Block","src":"8798:255:120","nodes":[],"statements":[{"assignments":[68588],"declarations":[{"constant":false,"id":68588,"mutability":"mutable","name":"mirror","nameLocation":"8816:6:120","nodeType":"VariableDeclaration","scope":68619,"src":"8808:14:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68587,"name":"address","nodeType":"ElementaryTypeName","src":"8808:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":68593,"initialValue":{"arguments":[{"id":68590,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68580,"src":"8840:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68591,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68582,"src":"8849:5:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":68589,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69031,"src":"8825:14:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) returns (address)"}},"id":68592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8825:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8808:47:120"},{"assignments":[68595],"declarations":[{"constant":false,"id":68595,"mutability":"mutable","name":"decoder","nameLocation":"8873:7:120","nodeType":"VariableDeclaration","scope":68619,"src":"8865:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68594,"name":"address","nodeType":"ElementaryTypeName","src":"8865:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":68607,"initialValue":{"arguments":[{"id":68597,"name":"_decoderImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68578,"src":"8898:12:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":68601,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68580,"src":"8939:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68602,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68582,"src":"8948:5:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":68599,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8922:3:120","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":68600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8926:12:120","memberName":"encodePacked","nodeType":"MemberAccess","src":"8922:16:120","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":68603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8922:32:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":68598,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8912:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":68604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8912:43:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68605,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68588,"src":"8957:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":68596,"name":"_createDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69060,"src":"8883:14:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (address,bytes32,address) returns (address)"}},"id":68606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:81:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8865:99:120"},{"expression":{"arguments":[{"expression":{"id":68612,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9002:3:120","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":68613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9006:6:120","memberName":"sender","nodeType":"MemberAccess","src":"9002:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":68614,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68595,"src":"9014:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":68609,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68588,"src":"8983:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":68608,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65178,"src":"8975:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$65178_$","typeString":"type(contract IMirror)"}},"id":68610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8975:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$65178","typeString":"contract IMirror"}},"id":68611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8991:10:120","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":65169,"src":"8975:26:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":68615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8975:47:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68616,"nodeType":"ExpressionStatement","src":"8975:47:120"},{"expression":{"id":68617,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68588,"src":"9040:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68586,"id":68618,"nodeType":"Return","src":"9033:13:120"}]},"baseFunctions":[65453],"functionSelector":"e7006a74","implemented":true,"kind":"function","modifiers":[],"name":"createProgramWithDecoder","nameLocation":"8672:24:120","parameters":{"id":68583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68578,"mutability":"mutable","name":"_decoderImpl","nameLocation":"8705:12:120","nodeType":"VariableDeclaration","scope":68620,"src":"8697:20:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68577,"name":"address","nodeType":"ElementaryTypeName","src":"8697:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":68580,"mutability":"mutable","name":"_codeId","nameLocation":"8727:7:120","nodeType":"VariableDeclaration","scope":68620,"src":"8719:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68579,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8719:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":68582,"mutability":"mutable","name":"_salt","nameLocation":"8744:5:120","nodeType":"VariableDeclaration","scope":68620,"src":"8736:13:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8736:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8696:54:120"},"returnParameters":{"id":68586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68620,"src":"8785:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68584,"name":"address","nodeType":"ElementaryTypeName","src":"8785:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8784:9:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68738,"nodeType":"FunctionDefinition","src":"9133:1250:120","nodes":[],"body":{"id":68737,"nodeType":"Block","src":"9244:1139:120","nodes":[],"statements":[{"assignments":[68632],"declarations":[{"constant":false,"id":68632,"mutability":"mutable","name":"router","nameLocation":"9270:6:120","nodeType":"VariableDeclaration","scope":68737,"src":"9254:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68631,"nodeType":"UserDefinedTypeName","pathNode":{"id":68630,"name":"Storage","nameLocations":["9254:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"9254:7:120"},"referencedDeclaration":65258,"src":"9254:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68635,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68633,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"9279:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9279:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9254:34:120"},{"assignments":[68637],"declarations":[{"constant":false,"id":68637,"mutability":"mutable","name":"currentEraIndex","nameLocation":"9307:15:120","nodeType":"VariableDeclaration","scope":68737,"src":"9299:23:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68636,"name":"uint256","nodeType":"ElementaryTypeName","src":"9299:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68649,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":68638,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9326:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9332:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"9326:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":68640,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68632,"src":"9344:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9351:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"9344:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9364:9:120","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":69556,"src":"9344:29:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9326:47:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":68644,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9325:49:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":68645,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68632,"src":"9377:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9384:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"9377:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69610_storage","typeString":"struct Gear.Timelines storage ref"}},"id":68647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9394:3:120","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":69607,"src":"9377:20:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9325:72:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9299:98:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":68651,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68624,"src":"9416:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69518_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":68652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9427:8:120","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":69517,"src":"9416:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68653,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68637,"src":"9439:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":68654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9457:1:120","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9439:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9416:42:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6d6d69746d656e742065726120696e646578206973206e6f74206e6578742065726120696e646578","id":68657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9460:44:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_162890466e3da7889495cad8b992d317e467631b8d4abd8dc4464c15dd41b759","typeString":"literal_string \"commitment era index is not next era index\""},"value":"commitment era index is not next era index"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_162890466e3da7889495cad8b992d317e467631b8d4abd8dc4464c15dd41b759","typeString":"literal_string \"commitment era index is not next era index\""}],"id":68650,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9408:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9408:97:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68659,"nodeType":"ExpressionStatement","src":"9408:97:120"},{"assignments":[68661],"declarations":[{"constant":false,"id":68661,"mutability":"mutable","name":"nextEraStart","nameLocation":"9524:12:120","nodeType":"VariableDeclaration","scope":68737,"src":"9516:20:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68660,"name":"uint256","nodeType":"ElementaryTypeName","src":"9516:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68672,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68662,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68632,"src":"9539:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9546:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"9539:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9559:9:120","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":69556,"src":"9539:29:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68665,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68632,"src":"9571:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9578:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"9571:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69610_storage","typeString":"struct Gear.Timelines storage ref"}},"id":68667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9588:3:120","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":69607,"src":"9571:20:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":68668,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68624,"src":"9594:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69518_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":68669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9605:8:120","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":69517,"src":"9594:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9571:42:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9539:74:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9516:97:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":68674,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9631:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9637:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"9631:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68676,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68661,"src":"9650:12:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":68677,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68632,"src":"9665:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9672:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"9665:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69610_storage","typeString":"struct Gear.Timelines storage ref"}},"id":68679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9682:8:120","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":69609,"src":"9665:25:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9650:40:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9631:59:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"656c656374696f6e206973206e6f74207965742073746172746564","id":68682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9692:29:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3e2748c631aa0d71d8afc854c277a3e771005dd496ece9dad00c587d5c5eaa","typeString":"literal_string \"election is not yet started\""},"value":"election is not yet started"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef3e2748c631aa0d71d8afc854c277a3e771005dd496ece9dad00c587d5c5eaa","typeString":"literal_string \"election is not yet started\""}],"id":68673,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9623:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9623:99:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68684,"nodeType":"ExpressionStatement","src":"9623:99:120"},{"assignments":[68689],"declarations":[{"constant":false,"id":68689,"mutability":"mutable","name":"_validators","nameLocation":"9804:11:120","nodeType":"VariableDeclaration","scope":68737,"src":"9780:35:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":68688,"nodeType":"UserDefinedTypeName","pathNode":{"id":68687,"name":"Gear.Validators","nameLocations":["9780:4:120","9785:10:120"],"nodeType":"IdentifierPath","referencedDeclaration":69505,"src":"9780:15:120"},"referencedDeclaration":69505,"src":"9780:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":68694,"initialValue":{"arguments":[{"id":68692,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68632,"src":"9845:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68690,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"9818:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:21:120","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":69970,"src":"9818:26:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69505_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9818:34:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9780:72:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":68696,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68689,"src":"9870:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9882:16:120","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":69504,"src":"9870:28:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68698,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9901:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9907:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"9901:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9870:46:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6c6f6f6b73206c696b652076616c696461746f727320666f72206e657874206572612061726520616c726561647920736574","id":68701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9918:52:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_b284ea0c51a926e5b8ea00c07f1ff766c11519c493036a65a767443fdf3f1780","typeString":"literal_string \"looks like validators for next era are already set\""},"value":"looks like validators for next era are already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b284ea0c51a926e5b8ea00c07f1ff766c11519c493036a65a767443fdf3f1780","typeString":"literal_string \"looks like validators for next era are already set\""}],"id":68695,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9862:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:109:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68703,"nodeType":"ExpressionStatement","src":"9862:109:120"},{"assignments":[68705],"declarations":[{"constant":false,"id":68705,"mutability":"mutable","name":"commitmentHash","nameLocation":"9990:14:120","nodeType":"VariableDeclaration","scope":68737,"src":"9982:22:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9982:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":68710,"initialValue":{"arguments":[{"id":68708,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68624,"src":"10037:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69518_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69518_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":68706,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"10007:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10012:24:120","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":69645,"src":"10007:29:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$69518_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":68709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10007:41:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9982:66:120"},{"expression":{"arguments":[{"arguments":[{"id":68714,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68632,"src":"10103:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"arguments":[{"arguments":[{"id":68718,"name":"commitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68705,"src":"10138:14:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":68716,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10121:3:120","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":68717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10125:12:120","memberName":"encodePacked","nodeType":"MemberAccess","src":"10121:16:120","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":68719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10121:32:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":68715,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10111:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":68720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10111:43:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68721,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68627,"src":"10156:10:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"expression":{"id":68712,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"10079:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10084:18:120","memberName":"validateSignatures","nodeType":"MemberAccess","referencedDeclaration":69922,"src":"10079:23:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes calldata[] calldata) view returns (bool)"}},"id":68722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10079:88:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e657874206572612076616c696461746f7273207369676e61747572657320766572696669636174696f6e206661696c6564","id":68723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10181:52:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_349cc9c1a1e1cddede1f7780f29c462d7f3b361b9dfecea0303aaa7d870183b1","typeString":"literal_string \"next era validators signatures verification failed\""},"value":"next era validators signatures verification failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_349cc9c1a1e1cddede1f7780f29c462d7f3b361b9dfecea0303aaa7d870183b1","typeString":"literal_string \"next era validators signatures verification failed\""}],"id":68711,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10058:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10058:185:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68725,"nodeType":"ExpressionStatement","src":"10058:185:120"},{"expression":{"arguments":[{"id":68727,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68689,"src":"10271:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":68728,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68624,"src":"10284:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69518_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":68729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10295:10:120","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":69515,"src":"10284:21:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":68730,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68661,"src":"10307:12:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68726,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69294,"src":"10254:16:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$69505_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,address[] memory,uint256)"}},"id":68731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10254:66:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68732,"nodeType":"ExpressionStatement","src":"10254:66:120"},{"eventCall":{"arguments":[{"id":68734,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68661,"src":"10363:12:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68733,"name":"NextEraValidatorsCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65282,"src":"10336:26:120","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":68735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10336:40:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68736,"nodeType":"EmitStatement","src":"10331:45:120"}]},"baseFunctions":[65485],"documentation":{"id":68621,"nodeType":"StructuredDocumentation","src":"9087:41:120","text":"@dev Set validators for the next era."},"functionSelector":"aaf0fe6a","implemented":true,"kind":"function","modifiers":[],"name":"commitValidators","nameLocation":"9142:16:120","parameters":{"id":68628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68624,"mutability":"mutable","name":"commitment","nameLocation":"9194:10:120","nodeType":"VariableDeclaration","scope":68738,"src":"9159:45:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69518_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":68623,"nodeType":"UserDefinedTypeName","pathNode":{"id":68622,"name":"Gear.ValidatorsCommitment","nameLocations":["9159:4:120","9164:20:120"],"nodeType":"IdentifierPath","referencedDeclaration":69518,"src":"9159:25:120"},"referencedDeclaration":69518,"src":"9159:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69518_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"},{"constant":false,"id":68627,"mutability":"mutable","name":"signatures","nameLocation":"9223:10:120","nodeType":"VariableDeclaration","scope":68738,"src":"9206:27:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":68625,"name":"bytes","nodeType":"ElementaryTypeName","src":"9206:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":68626,"nodeType":"ArrayTypeName","src":"9206:7:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9158:76:120"},"returnParameters":{"id":68629,"nodeType":"ParameterList","parameters":[],"src":"9244:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68870,"nodeType":"FunctionDefinition","src":"10389:1336:120","nodes":[],"body":{"id":68869,"nodeType":"Block","src":"10498:1227:120","nodes":[],"statements":[{"assignments":[68750],"declarations":[{"constant":false,"id":68750,"mutability":"mutable","name":"router","nameLocation":"10524:6:120","nodeType":"VariableDeclaration","scope":68869,"src":"10508:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68749,"nodeType":"UserDefinedTypeName","pathNode":{"id":68748,"name":"Storage","nameLocations":["10508:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"10508:7:120"},"referencedDeclaration":65258,"src":"10508:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68753,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68751,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"10533:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10533:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10508:34:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68755,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68750,"src":"10560:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10567:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"10560:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10580:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69552,"src":"10560:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":68760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10596:1:120","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":68759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10588:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10588:7:120","typeDescriptions":{}}},"id":68761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10588:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10560:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f6f6b757047656e6573697348617368282960206669727374","id":68763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10600:58:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""},"value":"router genesis is zero; call `lookupGenesisHash()` first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""}],"id":68754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10552:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10552:107:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68765,"nodeType":"ExpressionStatement","src":"10552:107:120"},{"assignments":[68767],"declarations":[{"constant":false,"id":68767,"mutability":"mutable","name":"codeCommitmentsHashes","nameLocation":"10683:21:120","nodeType":"VariableDeclaration","scope":68869,"src":"10670:34:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":68766,"name":"bytes","nodeType":"ElementaryTypeName","src":"10670:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":68768,"nodeType":"VariableDeclarationStatement","src":"10670:34:120"},{"body":{"id":68855,"nodeType":"Block","src":"10769:784:120","statements":[{"assignments":[68784],"declarations":[{"constant":false,"id":68784,"mutability":"mutable","name":"codeCommitment","nameLocation":"10812:14:120","nodeType":"VariableDeclaration","scope":68855,"src":"10783:43:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":68783,"nodeType":"UserDefinedTypeName","pathNode":{"id":68782,"name":"Gear.CodeCommitment","nameLocations":["10783:4:120","10788:14:120"],"nodeType":"IdentifierPath","referencedDeclaration":69536,"src":"10783:19:120"},"referencedDeclaration":69536,"src":"10783:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":68788,"initialValue":{"baseExpression":{"id":68785,"name":"_codeCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68742,"src":"10829:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$69536_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":68787,"indexExpression":{"id":68786,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68770,"src":"10846:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10829:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"10783:65:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"},"id":68799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":68790,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68750,"src":"10888:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10895:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"10888:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10908:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69574,"src":"10888:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69540_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68795,"indexExpression":{"expression":{"id":68793,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68784,"src":"10914:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10929:2:120","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69533,"src":"10914:17:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10888:44:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":68796,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"10936:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10941:9:120","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":69540,"src":"10936:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$69540_$","typeString":"type(enum Gear.CodeState)"}},"id":68798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10951:19:120","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":69538,"src":"10936:34:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"src":"10888:82:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206d7573742062652072657175657374656420666f722076616c69646174696f6e20746f20626520636f6d6d6974746564","id":68800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10988:55:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5641fde195ef857639d9de420cb3fc56957be6957a3c8a5e78a2243186a510e8","typeString":"literal_string \"code must be requested for validation to be committed\""},"value":"code must be requested for validation to be committed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5641fde195ef857639d9de420cb3fc56957be6957a3c8a5e78a2243186a510e8","typeString":"literal_string \"code must be requested for validation to be committed\""}],"id":68789,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10863:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10863:194:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68802,"nodeType":"ExpressionStatement","src":"10863:194:120"},{"condition":{"expression":{"id":68803,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68784,"src":"11076:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11091:5:120","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":69535,"src":"11076:20:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":68834,"nodeType":"Block","src":"11267:84:120","statements":[{"expression":{"id":68832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11285:51:120","subExpression":{"baseExpression":{"expression":{"expression":{"id":68826,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68750,"src":"11292:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11299:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"11292:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11312:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69574,"src":"11292:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69540_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68831,"indexExpression":{"expression":{"id":68829,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68784,"src":"11318:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11333:2:120","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69533,"src":"11318:17:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11292:44:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68833,"nodeType":"ExpressionStatement","src":"11285:51:120"}]},"id":68835,"nodeType":"IfStatement","src":"11072:279:120","trueBody":{"id":68825,"nodeType":"Block","src":"11098:163:120","statements":[{"expression":{"id":68816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":68805,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68750,"src":"11116:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11123:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"11116:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11136:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69574,"src":"11116:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69540_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68812,"indexExpression":{"expression":{"id":68808,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68784,"src":"11142:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11157:2:120","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69533,"src":"11142:17:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11116:44:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":68813,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"11163:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11168:9:120","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":69540,"src":"11163:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$69540_$","typeString":"type(enum Gear.CodeState)"}},"id":68815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11178:9:120","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":69539,"src":"11163:24:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"src":"11116:71:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"id":68817,"nodeType":"ExpressionStatement","src":"11116:71:120"},{"expression":{"id":68823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11205:41:120","subExpression":{"expression":{"expression":{"id":68818,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68750,"src":"11205:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11212:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"11205:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11225:19:120","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":69582,"src":"11205:39:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68824,"nodeType":"ExpressionStatement","src":"11205:41:120"}]}},{"eventCall":{"arguments":[{"expression":{"id":68837,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68784,"src":"11387:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11402:2:120","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69533,"src":"11387:17:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":68839,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68784,"src":"11406:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11421:5:120","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":69535,"src":"11406:20:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":68836,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65270,"src":"11370:16:120","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":68841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11370:57:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68842,"nodeType":"EmitStatement","src":"11365:62:120"},{"expression":{"id":68853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":68843,"name":"codeCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68767,"src":"11442:21:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":68847,"name":"codeCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68767,"src":"11479:21:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":68850,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68784,"src":"11526:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CodeCommitment_$69536_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}],"expression":{"id":68848,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"11502:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11507:18:120","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":69735,"src":"11502:23:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CodeCommitment_$69536_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.CodeCommitment calldata) pure returns (bytes32)"}},"id":68851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11502:39:120","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":68845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11466:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":68844,"name":"bytes","nodeType":"ElementaryTypeName","src":"11466:5:120","typeDescriptions":{}}},"id":68846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11472:6:120","memberName":"concat","nodeType":"MemberAccess","src":"11466:12:120","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":68852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11466:76:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11442:100:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":68854,"nodeType":"ExpressionStatement","src":"11442:100:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68773,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68770,"src":"10735:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68774,"name":"_codeCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68742,"src":"10739:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$69536_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":68775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10756:6:120","memberName":"length","nodeType":"MemberAccess","src":"10739:23:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10735:27:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68856,"initializationExpression":{"assignments":[68770],"declarations":[{"constant":false,"id":68770,"mutability":"mutable","name":"i","nameLocation":"10728:1:120","nodeType":"VariableDeclaration","scope":68856,"src":"10720:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68769,"name":"uint256","nodeType":"ElementaryTypeName","src":"10720:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68772,"initialValue":{"hexValue":"30","id":68771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10732:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10720:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":68778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10764:3:120","subExpression":{"id":68777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68770,"src":"10764:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68779,"nodeType":"ExpressionStatement","src":"10764:3:120"},"nodeType":"ForStatement","src":"10715:838:120"},{"expression":{"arguments":[{"arguments":[{"id":68860,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68750,"src":"11608:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"arguments":[{"id":68862,"name":"codeCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68767,"src":"11626:21:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":68861,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11616:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":68863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11616:32:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68864,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68745,"src":"11650:11:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"expression":{"id":68858,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"11584:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11589:18:120","memberName":"validateSignatures","nodeType":"MemberAccess","referencedDeclaration":69922,"src":"11584:23:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes calldata[] calldata) view returns (bool)"}},"id":68865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11584:78:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7369676e61747572657320766572696669636174696f6e206661696c6564","id":68866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11676:32:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_42f70f68087ddd2ea90e0adc36eeb88121bbdb06c88480a0c6a87e4a00dde3b2","typeString":"literal_string \"signatures verification failed\""},"value":"signatures verification failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_42f70f68087ddd2ea90e0adc36eeb88121bbdb06c88480a0c6a87e4a00dde3b2","typeString":"literal_string \"signatures verification failed\""}],"id":68857,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11563:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11563:155:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68868,"nodeType":"ExpressionStatement","src":"11563:155:120"}]},"baseFunctions":[65464],"functionSelector":"e97d3eb3","implemented":true,"kind":"function","modifiers":[],"name":"commitCodes","nameLocation":"10398:11:120","parameters":{"id":68746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68742,"mutability":"mutable","name":"_codeCommitments","nameLocation":"10441:16:120","nodeType":"VariableDeclaration","scope":68870,"src":"10410:47:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$69536_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":68740,"nodeType":"UserDefinedTypeName","pathNode":{"id":68739,"name":"Gear.CodeCommitment","nameLocations":["10410:4:120","10415:14:120"],"nodeType":"IdentifierPath","referencedDeclaration":69536,"src":"10410:19:120"},"referencedDeclaration":69536,"src":"10410:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69536_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":68741,"nodeType":"ArrayTypeName","src":"10410:21:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$69536_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":68745,"mutability":"mutable","name":"_signatures","nameLocation":"10476:11:120","nodeType":"VariableDeclaration","scope":68870,"src":"10459:28:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":68743,"name":"bytes","nodeType":"ElementaryTypeName","src":"10459:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":68744,"nodeType":"ArrayTypeName","src":"10459:7:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"10409:79:120"},"returnParameters":{"id":68747,"nodeType":"ParameterList","parameters":[],"src":"10498:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68950,"nodeType":"FunctionDefinition","src":"11731:798:120","nodes":[],"body":{"id":68949,"nodeType":"Block","src":"11876:653:120","nodes":[],"statements":[{"assignments":[68884],"declarations":[{"constant":false,"id":68884,"mutability":"mutable","name":"router","nameLocation":"11902:6:120","nodeType":"VariableDeclaration","scope":68949,"src":"11886:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68883,"nodeType":"UserDefinedTypeName","pathNode":{"id":68882,"name":"Storage","nameLocations":["11886:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"11886:7:120"},"referencedDeclaration":65258,"src":"11886:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68887,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68885,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"11911:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11911:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11886:34:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68889,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"11938:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11945:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"11938:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11958:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69552,"src":"11938:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":68894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11974:1:120","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":68893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11966:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11966:7:120","typeDescriptions":{}}},"id":68895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11966:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11938:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f6f6b757047656e6573697348617368282960206669727374","id":68897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11978:58:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""},"value":"router genesis is zero; call `lookupGenesisHash()` first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""}],"id":68888,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11930:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11930:107:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68899,"nodeType":"ExpressionStatement","src":"11930:107:120"},{"assignments":[68901],"declarations":[{"constant":false,"id":68901,"mutability":"mutable","name":"blockCommitmentsHashes","nameLocation":"12061:22:120","nodeType":"VariableDeclaration","scope":68949,"src":"12048:35:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":68900,"name":"bytes","nodeType":"ElementaryTypeName","src":"12048:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":68902,"nodeType":"VariableDeclarationStatement","src":"12048:35:120"},{"body":{"id":68935,"nodeType":"Block","src":"12149:207:120","statements":[{"assignments":[68918],"declarations":[{"constant":false,"id":68918,"mutability":"mutable","name":"blockCommitment","nameLocation":"12193:15:120","nodeType":"VariableDeclaration","scope":68935,"src":"12163:45:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment"},"typeName":{"id":68917,"nodeType":"UserDefinedTypeName","pathNode":{"id":68916,"name":"Gear.BlockCommitment","nameLocations":["12163:4:120","12168:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":69531,"src":"12163:20:120"},"referencedDeclaration":69531,"src":"12163:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_storage_ptr","typeString":"struct Gear.BlockCommitment"}},"visibility":"internal"}],"id":68922,"initialValue":{"baseExpression":{"id":68919,"name":"_blockCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68874,"src":"12211:17:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$69531_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata[] calldata"}},"id":68921,"indexExpression":{"id":68920,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68904,"src":"12229:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12211:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"12163:68:120"},{"expression":{"id":68933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":68923,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68901,"src":"12245:22:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":68927,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68901,"src":"12283:22:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":68929,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"12320:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":68930,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68918,"src":"12328:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}],"id":68928,"name":"_commitBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69129,"src":"12307:12:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$65258_storage_ptr_$_t_struct$_BlockCommitment_$69531_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BlockCommitment calldata) returns (bytes32)"}},"id":68931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12307:37:120","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":68925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12270:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":68924,"name":"bytes","nodeType":"ElementaryTypeName","src":"12270:5:120","typeDescriptions":{}}},"id":68926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12276:6:120","memberName":"concat","nodeType":"MemberAccess","src":"12270:12:120","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":68932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12270:75:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12245:100:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":68934,"nodeType":"ExpressionStatement","src":"12245:100:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68907,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68904,"src":"12114:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68908,"name":"_blockCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68874,"src":"12118:17:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$69531_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata[] calldata"}},"id":68909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12136:6:120","memberName":"length","nodeType":"MemberAccess","src":"12118:24:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12114:28:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68936,"initializationExpression":{"assignments":[68904],"declarations":[{"constant":false,"id":68904,"mutability":"mutable","name":"i","nameLocation":"12107:1:120","nodeType":"VariableDeclaration","scope":68936,"src":"12099:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68903,"name":"uint256","nodeType":"ElementaryTypeName","src":"12099:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68906,"initialValue":{"hexValue":"30","id":68905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12111:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12099:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":68912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12144:3:120","subExpression":{"id":68911,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68904,"src":"12144:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68913,"nodeType":"ExpressionStatement","src":"12144:3:120"},"nodeType":"ForStatement","src":"12094:262:120"},{"expression":{"arguments":[{"arguments":[{"id":68940,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68884,"src":"12411:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"arguments":[{"id":68942,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68901,"src":"12429:22:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":68941,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12419:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":68943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12419:33:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68944,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68877,"src":"12454:11:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"expression":{"id":68938,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"12387:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12392:18:120","memberName":"validateSignatures","nodeType":"MemberAccess","referencedDeclaration":69922,"src":"12387:23:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes calldata[] calldata) view returns (bool)"}},"id":68945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12387:79:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7369676e61747572657320766572696669636174696f6e206661696c6564","id":68946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12480:32:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_42f70f68087ddd2ea90e0adc36eeb88121bbdb06c88480a0c6a87e4a00dde3b2","typeString":"literal_string \"signatures verification failed\""},"value":"signatures verification failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_42f70f68087ddd2ea90e0adc36eeb88121bbdb06c88480a0c6a87e4a00dde3b2","typeString":"literal_string \"signatures verification failed\""}],"id":68937,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12366:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12366:156:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68948,"nodeType":"ExpressionStatement","src":"12366:156:120"}]},"baseFunctions":[65475],"functionSelector":"01b1d156","implemented":true,"kind":"function","modifiers":[{"id":68880,"kind":"modifierInvocation","modifierName":{"id":68879,"name":"nonReentrant","nameLocations":["11859:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":44262,"src":"11859:12:120"},"nodeType":"ModifierInvocation","src":"11859:12:120"}],"name":"commitBlocks","nameLocation":"11740:12:120","parameters":{"id":68878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68874,"mutability":"mutable","name":"_blockCommitments","nameLocation":"11785:17:120","nodeType":"VariableDeclaration","scope":68950,"src":"11753:49:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$69531_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.BlockCommitment[]"},"typeName":{"baseType":{"id":68872,"nodeType":"UserDefinedTypeName","pathNode":{"id":68871,"name":"Gear.BlockCommitment","nameLocations":["11753:4:120","11758:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":69531,"src":"11753:20:120"},"referencedDeclaration":69531,"src":"11753:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_storage_ptr","typeString":"struct Gear.BlockCommitment"}},"id":68873,"nodeType":"ArrayTypeName","src":"11753:22:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$69531_storage_$dyn_storage_ptr","typeString":"struct Gear.BlockCommitment[]"}},"visibility":"internal"},{"constant":false,"id":68877,"mutability":"mutable","name":"_signatures","nameLocation":"11821:11:120","nodeType":"VariableDeclaration","scope":68950,"src":"11804:28:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":68875,"name":"bytes","nodeType":"ElementaryTypeName","src":"11804:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":68876,"nodeType":"ArrayTypeName","src":"11804:7:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11752:81:120"},"returnParameters":{"id":68881,"nodeType":"ParameterList","parameters":[],"src":"11876:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":69031,"nodeType":"FunctionDefinition","src":"12571:887:120","nodes":[],"body":{"id":69030,"nodeType":"Block","src":"12653:805:120","nodes":[],"statements":[{"assignments":[68961],"declarations":[{"constant":false,"id":68961,"mutability":"mutable","name":"router","nameLocation":"12679:6:120","nodeType":"VariableDeclaration","scope":69030,"src":"12663:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68960,"nodeType":"UserDefinedTypeName","pathNode":{"id":68959,"name":"Storage","nameLocations":["12663:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"12663:7:120"},"referencedDeclaration":65258,"src":"12663:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68964,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68962,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69307,"src":"12688:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12688:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12663:34:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68966,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68961,"src":"12715:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12722:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"12715:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69557_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12735:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69552,"src":"12715:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":68971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12751:1:120","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":68970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12743:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12743:7:120","typeDescriptions":{}}},"id":68972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12743:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12715:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f6f6b757047656e6573697348617368282960206669727374","id":68974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12755:58:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""},"value":"router genesis is zero; call `lookupGenesisHash()` first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""}],"id":68965,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12707:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12707:107:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68976,"nodeType":"ExpressionStatement","src":"12707:107:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"},"id":68986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":68978,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68961,"src":"12846:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12853:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"12846:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12866:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69574,"src":"12846:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69540_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68982,"indexExpression":{"id":68981,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68952,"src":"12872:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12846:34:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":68983,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"12884:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":68984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12889:9:120","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":69540,"src":"12884:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$69540_$","typeString":"type(enum Gear.CodeState)"}},"id":68985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12899:9:120","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":69539,"src":"12884:24:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69540","typeString":"enum Gear.CodeState"}},"src":"12846:62:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206d7573742062652076616c696461746564206265666f72652070726f6772616d206372656174696f6e","id":68987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12922:48:120","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":68977,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12825:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12825:155:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68989,"nodeType":"ExpressionStatement","src":"12825:155:120"},{"assignments":[68991],"declarations":[{"constant":false,"id":68991,"mutability":"mutable","name":"actorId","nameLocation":"13149:7:120","nodeType":"VariableDeclaration","scope":69030,"src":"13141:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68990,"name":"address","nodeType":"ElementaryTypeName","src":"13141:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":69005,"initialValue":{"arguments":[{"expression":{"expression":{"id":68994,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68961,"src":"13197:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13204:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"13197:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":68996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13218:11:120","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":69509,"src":"13197:32:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":69000,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68952,"src":"13258:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":69001,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68954,"src":"13267:5:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":68998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13241:3:120","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":68999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13245:12:120","memberName":"encodePacked","nodeType":"MemberAccess","src":"13241:16:120","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":69002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13241:32:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":68997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13231:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13231:43:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":68992,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42512,"src":"13171:6:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$42512_$","typeString":"type(library Clones)"}},"id":68993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13178:18:120","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":42430,"src":"13171:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":69004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13171:104:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13141:134:120"},{"expression":{"id":69014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":69006,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68961,"src":"13286:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13293:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"13286:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":69011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13306:8:120","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":69578,"src":"13286:28:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":69012,"indexExpression":{"id":69009,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68991,"src":"13315:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13286:37:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":69013,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68952,"src":"13326:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13286:47:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":69015,"nodeType":"ExpressionStatement","src":"13286:47:120"},{"expression":{"id":69021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13343:35:120","subExpression":{"expression":{"expression":{"id":69016,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68961,"src":"13343:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13350:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"13343:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":69020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13363:13:120","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":69580,"src":"13343:33:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69022,"nodeType":"ExpressionStatement","src":"13343:35:120"},{"eventCall":{"arguments":[{"id":69024,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68991,"src":"13409:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":69025,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68952,"src":"13418:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":69023,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65296,"src":"13394:14:120","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":69026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13394:32:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69027,"nodeType":"EmitStatement","src":"13389:37:120"},{"expression":{"id":69028,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68991,"src":"13444:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68958,"id":69029,"nodeType":"Return","src":"13437:14:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"12580:14:120","parameters":{"id":68955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68952,"mutability":"mutable","name":"_codeId","nameLocation":"12603:7:120","nodeType":"VariableDeclaration","scope":69031,"src":"12595:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12595:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":68954,"mutability":"mutable","name":"_salt","nameLocation":"12620:5:120","nodeType":"VariableDeclaration","scope":69031,"src":"12612:13:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68953,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12612:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12594:32:120"},"returnParameters":{"id":68958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69031,"src":"12644:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68956,"name":"address","nodeType":"ElementaryTypeName","src":"12644:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12643:9:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":69060,"nodeType":"FunctionDefinition","src":"13464:270:120","nodes":[],"body":{"id":69059,"nodeType":"Block","src":"13571:163:120","nodes":[],"statements":[{"assignments":[69043],"declarations":[{"constant":false,"id":69043,"mutability":"mutable","name":"decoder","nameLocation":"13589:7:120","nodeType":"VariableDeclaration","scope":69059,"src":"13581:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69042,"name":"address","nodeType":"ElementaryTypeName","src":"13581:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":69049,"initialValue":{"arguments":[{"id":69046,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69033,"src":"13625:15:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":69047,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69035,"src":"13642:5:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69044,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42512,"src":"13599:6:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$42512_$","typeString":"type(library Clones)"}},"id":69045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13606:18:120","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":42430,"src":"13599:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":69048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13599:49:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13581:67:120"},{"expression":{"arguments":[{"id":69054,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69037,"src":"13694:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":69051,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69043,"src":"13674:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":69050,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65215,"src":"13659:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$65215_$","typeString":"type(contract IMirrorDecoder)"}},"id":69052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13659:23:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorDecoder_$65215","typeString":"contract IMirrorDecoder"}},"id":69053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13683:10:120","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":65185,"src":"13659:34:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":69055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13659:43:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69056,"nodeType":"ExpressionStatement","src":"13659:43:120"},{"expression":{"id":69057,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69043,"src":"13720:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":69041,"id":69058,"nodeType":"Return","src":"13713:14:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createDecoder","nameLocation":"13473:14:120","parameters":{"id":69038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69033,"mutability":"mutable","name":"_implementation","nameLocation":"13496:15:120","nodeType":"VariableDeclaration","scope":69060,"src":"13488:23:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69032,"name":"address","nodeType":"ElementaryTypeName","src":"13488:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":69035,"mutability":"mutable","name":"_salt","nameLocation":"13521:5:120","nodeType":"VariableDeclaration","scope":69060,"src":"13513:13:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13513:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":69037,"mutability":"mutable","name":"_mirror","nameLocation":"13536:7:120","nodeType":"VariableDeclaration","scope":69060,"src":"13528:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69036,"name":"address","nodeType":"ElementaryTypeName","src":"13528:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13487:57:120"},"returnParameters":{"id":69041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69060,"src":"13562:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69039,"name":"address","nodeType":"ElementaryTypeName","src":"13562:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13561:9:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":69129,"nodeType":"FunctionDefinition","src":"13740:1094:120","nodes":[],"body":{"id":69128,"nodeType":"Block","src":"13880:954:120","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":69077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":69072,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69063,"src":"13911:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13918:20:120","memberName":"latestCommittedBlock","nodeType":"MemberAccess","referencedDeclaration":65237,"src":"13911:27:120","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBlockInfo_$69545_storage","typeString":"struct Gear.CommittedBlockInfo storage ref"}},"id":69074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13939:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69542,"src":"13911:32:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69075,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69066,"src":"13947:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13964:22:120","memberName":"previousCommittedBlock","nodeType":"MemberAccess","referencedDeclaration":69524,"src":"13947:39:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13911:75:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726576696f757320636f6d6d697474656420626c6f636b2068617368","id":69078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14000:39:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a13fb2485de3ac50aa69e9cf88b3994102e3ec72af73005448c8624cb4f1ed7","typeString":"literal_string \"invalid previous committed block hash\""},"value":"invalid previous committed block hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4a13fb2485de3ac50aa69e9cf88b3994102e3ec72af73005448c8624cb4f1ed7","typeString":"literal_string \"invalid previous committed block hash\""}],"id":69071,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13890:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":69079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13890:159:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69080,"nodeType":"ExpressionStatement","src":"13890:159:120"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":69084,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69066,"src":"14092:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14109:16:120","memberName":"predecessorBlock","nodeType":"MemberAccess","referencedDeclaration":69526,"src":"14092:33:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69082,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"14068:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":69083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14073:18:120","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":69716,"src":"14068:23:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":69086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14068:58:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c6c6f776564207072656465636573736f7220626c6f636b207761736e277420666f756e64","id":69087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14128:40:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3ebb0be53d5bf46a2d46be11aa5ba444a61071a9171c96feb964b4bc5f6539a","typeString":"literal_string \"allowed predecessor block wasn't found\""},"value":"allowed predecessor block wasn't found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b3ebb0be53d5bf46a2d46be11aa5ba444a61071a9171c96feb964b4bc5f6539a","typeString":"literal_string \"allowed predecessor block wasn't found\""}],"id":69081,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14060:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":69088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14060:109:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69089,"nodeType":"ExpressionStatement","src":"14060:109:120"},{"expression":{"id":69100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":69090,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69063,"src":"14309:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14316:20:120","memberName":"latestCommittedBlock","nodeType":"MemberAccess","referencedDeclaration":65237,"src":"14309:27:120","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBlockInfo_$69545_storage","typeString":"struct Gear.CommittedBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":69095,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69066,"src":"14363:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14380:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69520,"src":"14363:21:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":69097,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69066,"src":"14386:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14403:9:120","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":69522,"src":"14386:26:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":69093,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"14339:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":69094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14344:18:120","memberName":"CommittedBlockInfo","nodeType":"MemberAccess","referencedDeclaration":69545,"src":"14339:23:120","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBlockInfo_$69545_storage_ptr_$","typeString":"type(struct Gear.CommittedBlockInfo storage pointer)"}},"id":69099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14339:74:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBlockInfo_$69545_memory_ptr","typeString":"struct Gear.CommittedBlockInfo memory"}},"src":"14309:104:120","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBlockInfo_$69545_storage","typeString":"struct Gear.CommittedBlockInfo storage ref"}},"id":69101,"nodeType":"ExpressionStatement","src":"14309:104:120"},{"assignments":[69103],"declarations":[{"constant":false,"id":69103,"mutability":"mutable","name":"transitionsHashesHash","nameLocation":"14432:21:120","nodeType":"VariableDeclaration","scope":69128,"src":"14424:29:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14424:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":69109,"initialValue":{"arguments":[{"id":69105,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69063,"src":"14475:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":69106,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69066,"src":"14483:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14500:11:120","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":69530,"src":"14483:28:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69605_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69605_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":69104,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69214,"src":"14456:18:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$65258_storage_ptr_$_t_array$_t_struct$_StateTransition_$69605_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":69108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14456:56:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14424:88:120"},{"eventCall":{"arguments":[{"expression":{"id":69111,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69066,"src":"14543:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14560:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69520,"src":"14543:21:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":69110,"name":"BlockCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65263,"src":"14528:14:120","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":69113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14528:37:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69114,"nodeType":"EmitStatement","src":"14523:42:120"},{"expression":{"arguments":[{"expression":{"id":69117,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69066,"src":"14621:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14638:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69520,"src":"14621:21:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":69119,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69066,"src":"14656:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14673:9:120","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":69522,"src":"14656:26:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":69121,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69066,"src":"14696:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14713:22:120","memberName":"previousCommittedBlock","nodeType":"MemberAccess","referencedDeclaration":69524,"src":"14696:39:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":69123,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69066,"src":"14749:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14766:16:120","memberName":"predecessorBlock","nodeType":"MemberAccess","referencedDeclaration":69526,"src":"14749:33:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":69125,"name":"transitionsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69103,"src":"14796:21:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69115,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70080,"src":"14583:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70080_$","typeString":"type(library Gear)"}},"id":69116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14588:19:120","memberName":"blockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":69672,"src":"14583:24:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":69126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14583:244:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":69070,"id":69127,"nodeType":"Return","src":"14576:251:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitBlock","nameLocation":"13749:12:120","parameters":{"id":69067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69063,"mutability":"mutable","name":"router","nameLocation":"13778:6:120","nodeType":"VariableDeclaration","scope":69129,"src":"13762:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":69062,"nodeType":"UserDefinedTypeName","pathNode":{"id":69061,"name":"Storage","nameLocations":["13762:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"13762:7:120"},"referencedDeclaration":65258,"src":"13762:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":69066,"mutability":"mutable","name":"_blockCommitment","nameLocation":"13816:16:120","nodeType":"VariableDeclaration","scope":69129,"src":"13786:46:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_calldata_ptr","typeString":"struct Gear.BlockCommitment"},"typeName":{"id":69065,"nodeType":"UserDefinedTypeName","pathNode":{"id":69064,"name":"Gear.BlockCommitment","nameLocations":["13786:4:120","13791:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":69531,"src":"13786:20:120"},"referencedDeclaration":69531,"src":"13786:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69531_storage_ptr","typeString":"struct Gear.BlockCommitment"}},"visibility":"internal"}],"src":"13761:72:120"},"returnParameters":{"id":69070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69129,"src":"13867:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13867:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13866:9:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":69214,"nodeType":"FunctionDefinition","src":"14840:839:120","nodes":[],"body":{"id":69213,"nodeType":"Block","src":"14984:695:120","nodes":[],"statements":[{"assignments":[69142],"declarations":[{"constant":false,"id":69142,"mutability":"mutable","name":"transitionsHashes","nameLocation":"15007:17:120","nodeType":"VariableDeclaration","scope":69213,"src":"14994:30:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":69141,"name":"bytes","nodeType":"ElementaryTypeName","src":"14994:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":69143,"nodeType":"VariableDeclarationStatement","src":"14994:30:120"},{"body":{"id":69207,"nodeType":"Block","src":"15085:542:120","statements":[{"assignments":[69159],"declarations":[{"constant":false,"id":69159,"mutability":"mutable","name":"transition","nameLocation":"15129:10:120","nodeType":"VariableDeclaration","scope":69207,"src":"15099:40:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":69158,"nodeType":"UserDefinedTypeName","pathNode":{"id":69157,"name":"Gear.StateTransition","nameLocations":["15099:4:120","15104:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":69605,"src":"15099:20:120"},"referencedDeclaration":69605,"src":"15099:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":69163,"initialValue":{"baseExpression":{"id":69160,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69136,"src":"15142:12:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69605_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":69162,"indexExpression":{"id":69161,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69145,"src":"15155:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15142:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"15099:58:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":69172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":69165,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69132,"src":"15197:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15204:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"15197:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69583_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":69167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15217:8:120","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":69578,"src":"15197:28:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":69170,"indexExpression":{"expression":{"id":69168,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69159,"src":"15226:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":69169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15237:7:120","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":69590,"src":"15226:18:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15197:48:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":69171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15249:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15197:53:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f756c646e277420706572666f726d207472616e736974696f6e20666f7220756e6b6e6f776e2070726f6772616d","id":69173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15252:49:120","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":69164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15172:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":69174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15172:143:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69175,"nodeType":"ExpressionStatement","src":"15172:143:120"},{"expression":{"arguments":[{"expression":{"id":69182,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69159,"src":"15386:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":69183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15397:7:120","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":69590,"src":"15386:18:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":69184,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69159,"src":"15406:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":69185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15417:14:120","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":69596,"src":"15406:25:120","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"expression":{"expression":{"id":69177,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69132,"src":"15343:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15350:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"15343:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69512_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":69179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15364:11:120","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":69511,"src":"15343:32:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":69176,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65497,"src":"15330:12:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$65497_$","typeString":"type(contract IWrappedVara)"}},"id":69180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15330:46:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"id":69181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15377:8:120","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43780,"src":"15330:55:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":69186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15330:102:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69187,"nodeType":"ExpressionStatement","src":"15330:102:120"},{"assignments":[69189],"declarations":[{"constant":false,"id":69189,"mutability":"mutable","name":"transitionHash","nameLocation":"15455:14:120","nodeType":"VariableDeclaration","scope":69207,"src":"15447:22:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15447:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":69197,"initialValue":{"arguments":[{"id":69195,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69159,"src":"15523:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":69191,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69159,"src":"15480:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":69192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15491:7:120","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":69590,"src":"15480:18:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":69190,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65178,"src":"15472:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$65178_$","typeString":"type(contract IMirror)"}},"id":69193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15472:27:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$65178","typeString":"contract IMirror"}},"id":69194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15500:22:120","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":65177,"src":"15472:50:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StateTransition_$69605_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) external returns (bytes32)"}},"id":69196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15472:62:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15447:87:120"},{"expression":{"id":69205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":69198,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69142,"src":"15549:17:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":69202,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69142,"src":"15582:17:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":69203,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69189,"src":"15601:14:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15569:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":69199,"name":"bytes","nodeType":"ElementaryTypeName","src":"15569:5:120","typeDescriptions":{}}},"id":69201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15575:6:120","memberName":"concat","nodeType":"MemberAccess","src":"15569:12:120","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":69204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15569:47:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"15549:67:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":69206,"nodeType":"ExpressionStatement","src":"15549:67:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69148,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69145,"src":"15055:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":69149,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69136,"src":"15059:12:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69605_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":69150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15072:6:120","memberName":"length","nodeType":"MemberAccess","src":"15059:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15055:23:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69208,"initializationExpression":{"assignments":[69145],"declarations":[{"constant":false,"id":69145,"mutability":"mutable","name":"i","nameLocation":"15048:1:120","nodeType":"VariableDeclaration","scope":69208,"src":"15040:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69144,"name":"uint256","nodeType":"ElementaryTypeName","src":"15040:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":69147,"initialValue":{"hexValue":"30","id":69146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15052:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15040:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":69153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15080:3:120","subExpression":{"id":69152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69145,"src":"15080:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69154,"nodeType":"ExpressionStatement","src":"15080:3:120"},"nodeType":"ForStatement","src":"15035:592:120"},{"expression":{"arguments":[{"id":69210,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69142,"src":"15654:17:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":69209,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15644:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15644:28:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":69140,"id":69212,"nodeType":"Return","src":"15637:35:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"14849:18:120","parameters":{"id":69137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69132,"mutability":"mutable","name":"router","nameLocation":"14884:6:120","nodeType":"VariableDeclaration","scope":69214,"src":"14868:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":69131,"nodeType":"UserDefinedTypeName","pathNode":{"id":69130,"name":"Storage","nameLocations":["14868:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"14868:7:120"},"referencedDeclaration":65258,"src":"14868:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":69136,"mutability":"mutable","name":"_transitions","nameLocation":"14924:12:120","nodeType":"VariableDeclaration","scope":69214,"src":"14892:44:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69605_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":69134,"nodeType":"UserDefinedTypeName","pathNode":{"id":69133,"name":"Gear.StateTransition","nameLocations":["14892:4:120","14897:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":69605,"src":"14892:20:120"},"referencedDeclaration":69605,"src":"14892:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69605_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":69135,"nodeType":"ArrayTypeName","src":"14892:22:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69605_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"14867:70:120"},"returnParameters":{"id":69140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69214,"src":"14971:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69138,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14971:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14970:9:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":69294,"nodeType":"FunctionDefinition","src":"15685:618:120","nodes":[],"body":{"id":69293,"nodeType":"Block","src":"15846:457:120","nodes":[],"statements":[{"body":{"id":69252,"nodeType":"Block","src":"15910:114:120","statements":[{"assignments":[69238],"declarations":[{"constant":false,"id":69238,"mutability":"mutable","name":"_validator","nameLocation":"15932:10:120","nodeType":"VariableDeclaration","scope":69252,"src":"15924:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69237,"name":"address","nodeType":"ElementaryTypeName","src":"15924:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":69243,"initialValue":{"baseExpression":{"expression":{"id":69239,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69217,"src":"15945:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15957:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69502,"src":"15945:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":69242,"indexExpression":{"id":69241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69226,"src":"15962:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15945:19:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15924:40:120"},{"expression":{"id":69250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":69244,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69217,"src":"15978:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15990:3:120","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":69499,"src":"15978:15:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":69248,"indexExpression":{"id":69246,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69238,"src":"15994:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15978:27:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":69249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16008:5:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"15978:35:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69251,"nodeType":"ExpressionStatement","src":"15978:35:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69226,"src":"15876:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":69230,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69217,"src":"15880:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15892:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69502,"src":"15880:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":69232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15897:6:120","memberName":"length","nodeType":"MemberAccess","src":"15880:23:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15876:27:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69253,"initializationExpression":{"assignments":[69226],"declarations":[{"constant":false,"id":69226,"mutability":"mutable","name":"i","nameLocation":"15869:1:120","nodeType":"VariableDeclaration","scope":69253,"src":"15861:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69225,"name":"uint256","nodeType":"ElementaryTypeName","src":"15861:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":69228,"initialValue":{"hexValue":"30","id":69227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15873:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15861:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":69235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15905:3:120","subExpression":{"id":69234,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69226,"src":"15905:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69236,"nodeType":"ExpressionStatement","src":"15905:3:120"},"nodeType":"ForStatement","src":"15856:168:120"},{"body":{"id":69279,"nodeType":"Block","src":"16085:111:120","statements":[{"assignments":[69266],"declarations":[{"constant":false,"id":69266,"mutability":"mutable","name":"_validator","nameLocation":"16107:10:120","nodeType":"VariableDeclaration","scope":69279,"src":"16099:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69265,"name":"address","nodeType":"ElementaryTypeName","src":"16099:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":69270,"initialValue":{"baseExpression":{"id":69267,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69220,"src":"16120:14:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":69269,"indexExpression":{"id":69268,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69255,"src":"16135:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16120:17:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16099:38:120"},{"expression":{"id":69277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":69271,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69217,"src":"16151:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16163:3:120","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":69499,"src":"16151:15:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":69275,"indexExpression":{"id":69273,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69266,"src":"16167:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16151:27:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":69276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16181:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16151:34:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69278,"nodeType":"ExpressionStatement","src":"16151:34:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69258,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69255,"src":"16053:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":69259,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69220,"src":"16057:14:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":69260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16072:6:120","memberName":"length","nodeType":"MemberAccess","src":"16057:21:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16053:25:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69280,"initializationExpression":{"assignments":[69255],"declarations":[{"constant":false,"id":69255,"mutability":"mutable","name":"i","nameLocation":"16046:1:120","nodeType":"VariableDeclaration","scope":69280,"src":"16038:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69254,"name":"uint256","nodeType":"ElementaryTypeName","src":"16038:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":69257,"initialValue":{"hexValue":"30","id":69256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16050:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16038:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":69263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16080:3:120","subExpression":{"id":69262,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69255,"src":"16080:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69264,"nodeType":"ExpressionStatement","src":"16080:3:120"},"nodeType":"ForStatement","src":"16033:163:120"},{"expression":{"id":69285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":69281,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69217,"src":"16205:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16217:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69502,"src":"16205:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":69284,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69220,"src":"16224:14:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"16205:33:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":69286,"nodeType":"ExpressionStatement","src":"16205:33:120"},{"expression":{"id":69291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":69287,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69217,"src":"16248:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16260:16:120","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":69504,"src":"16248:28:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":69290,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69222,"src":"16279:17:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16248:48:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69292,"nodeType":"ExpressionStatement","src":"16248:48:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"15694:16:120","parameters":{"id":69223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69217,"mutability":"mutable","name":"_validators","nameLocation":"15744:11:120","nodeType":"VariableDeclaration","scope":69294,"src":"15720:35:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":69216,"nodeType":"UserDefinedTypeName","pathNode":{"id":69215,"name":"Gear.Validators","nameLocations":["15720:4:120","15725:10:120"],"nodeType":"IdentifierPath","referencedDeclaration":69505,"src":"15720:15:120"},"referencedDeclaration":69505,"src":"15720:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69505_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":69220,"mutability":"mutable","name":"_newValidators","nameLocation":"15782:14:120","nodeType":"VariableDeclaration","scope":69294,"src":"15765:31:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":69218,"name":"address","nodeType":"ElementaryTypeName","src":"15765:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":69219,"nodeType":"ArrayTypeName","src":"15765:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":69222,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"15814:17:120","nodeType":"VariableDeclaration","scope":69294,"src":"15806:25:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69221,"name":"uint256","nodeType":"ElementaryTypeName","src":"15806:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15710:127:120"},"returnParameters":{"id":69224,"nodeType":"ParameterList","parameters":[],"src":"15846:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":69307,"nodeType":"FunctionDefinition","src":"16309:192:120","nodes":[],"body":{"id":69306,"nodeType":"Block","src":"16374:127:120","nodes":[],"statements":[{"assignments":[69301],"declarations":[{"constant":false,"id":69301,"mutability":"mutable","name":"slot","nameLocation":"16392:4:120","nodeType":"VariableDeclaration","scope":69306,"src":"16384:12:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16384:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":69304,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":69302,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69319,"src":"16399:15:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":69303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16399:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16384:32:120"},{"AST":{"nativeSrc":"16452:43:120","nodeType":"YulBlock","src":"16452:43:120","statements":[{"nativeSrc":"16466:19:120","nodeType":"YulAssignment","src":"16466:19:120","value":{"name":"slot","nativeSrc":"16481:4:120","nodeType":"YulIdentifier","src":"16481:4:120"},"variableNames":[{"name":"router.slot","nativeSrc":"16466:11:120","nodeType":"YulIdentifier","src":"16466:11:120"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":69298,"isOffset":false,"isSlot":true,"src":"16466:11:120","suffix":"slot","valueSize":1},{"declaration":69301,"isOffset":false,"isSlot":false,"src":"16481:4:120","valueSize":1}],"flags":["memory-safe"],"id":69305,"nodeType":"InlineAssembly","src":"16427:68:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"16318:7:120","parameters":{"id":69295,"nodeType":"ParameterList","parameters":[],"src":"16325:2:120"},"returnParameters":{"id":69299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69298,"mutability":"mutable","name":"router","nameLocation":"16366:6:120","nodeType":"VariableDeclaration","scope":69307,"src":"16350:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":69297,"nodeType":"UserDefinedTypeName","pathNode":{"id":69296,"name":"Storage","nameLocations":["16350:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"16350:7:120"},"referencedDeclaration":65258,"src":"16350:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"16349:24:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":69319,"nodeType":"FunctionDefinition","src":"16507:128:120","nodes":[],"body":{"id":69318,"nodeType":"Block","src":"16565:70:120","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":69314,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67840,"src":"16609:12:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69312,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44431,"src":"16582:11:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44431_$","typeString":"type(library StorageSlot)"}},"id":69313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16594:14:120","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44364,"src":"16582:26:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44319_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":69315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16582:40:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44319_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":69316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16623:5:120","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44318,"src":"16582:46:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":69311,"id":69317,"nodeType":"Return","src":"16575:53:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"16516:15:120","parameters":{"id":69308,"nodeType":"ParameterList","parameters":[],"src":"16531:2:120"},"returnParameters":{"id":69311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69319,"src":"16556:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16556:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16555:9:120"},"scope":69365,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":69364,"nodeType":"FunctionDefinition","src":"16641:252:120","nodes":[],"body":{"id":69363,"nodeType":"Block","src":"16709:184:120","nodes":[],"statements":[{"assignments":[69327],"declarations":[{"constant":false,"id":69327,"mutability":"mutable","name":"slot","nameLocation":"16727:4:120","nodeType":"VariableDeclaration","scope":69363,"src":"16719:12:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69326,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16719:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":69353,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":69352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":69336,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69321,"src":"16779:9:120","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":69335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16773:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":69334,"name":"bytes","nodeType":"ElementaryTypeName","src":"16773:5:120","typeDescriptions":{}}},"id":69337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16773:16:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":69333,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16763:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:27:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":69332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16755:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":69331,"name":"uint256","nodeType":"ElementaryTypeName","src":"16755:7:120","typeDescriptions":{}}},"id":69339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16755:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":69340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16794:1:120","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16755:40:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":69329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16744:3:120","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":69330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16748:6:120","memberName":"encode","nodeType":"MemberAccess","src":"16744:10:120","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":69342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16744:52:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":69328,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16734:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16734:63:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":69351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"16800:23:120","subExpression":{"arguments":[{"arguments":[{"hexValue":"30786666","id":69348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16817:4:120","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":69347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16809:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":69346,"name":"uint256","nodeType":"ElementaryTypeName","src":"16809:7:120","typeDescriptions":{}}},"id":69349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16809:13:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":69345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16801:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":69344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16801:7:120","typeDescriptions":{}}},"id":69350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16801:22:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16734:89:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16719:104:120"},{"expression":{"id":69361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":69357,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67840,"src":"16860:12:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69354,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44431,"src":"16833:11:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44431_$","typeString":"type(library StorageSlot)"}},"id":69356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16845:14:120","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44364,"src":"16833:26:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44319_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":69358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16833:40:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44319_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":69359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16874:5:120","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44318,"src":"16833:46:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":69360,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69327,"src":"16882:4:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16833:53:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":69362,"nodeType":"ExpressionStatement","src":"16833:53:120"}]},"implemented":true,"kind":"function","modifiers":[{"id":69324,"kind":"modifierInvocation","modifierName":{"id":69323,"name":"onlyOwner","nameLocations":["16699:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":40227,"src":"16699:9:120"},"nodeType":"ModifierInvocation","src":"16699:9:120"}],"name":"_setStorageSlot","nameLocation":"16650:15:120","parameters":{"id":69322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69321,"mutability":"mutable","name":"namespace","nameLocation":"16680:9:120","nodeType":"VariableDeclaration","scope":69364,"src":"16666:23:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69320,"name":"string","nodeType":"ElementaryTypeName","src":"16666:6:120","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16665:25:120"},"returnParameters":{"id":69325,"nodeType":"ParameterList","parameters":[],"src":"16709:0:120"},"scope":69365,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":67832,"name":"IRouter","nameLocations":["709:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65486,"src":"709:7:120"},"id":67833,"nodeType":"InheritanceSpecifier","src":"709:7:120"},{"baseName":{"id":67834,"name":"OwnableUpgradeable","nameLocations":["718:18:120"],"nodeType":"IdentifierPath","referencedDeclaration":40332,"src":"718:18:120"},"id":67835,"nodeType":"InheritanceSpecifier","src":"718:18:120"},{"baseName":{"id":67836,"name":"ReentrancyGuardTransient","nameLocations":["738:24:120"],"nodeType":"IdentifierPath","referencedDeclaration":44307,"src":"738:24:120"},"id":67837,"nodeType":"InheritanceSpecifier","src":"738:24:120"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[69365,44307,40332,41480,40586,65486],"name":"Router","nameLocation":"699:6:120","scope":69366,"usedErrors":[40168,40173,40349,40352,44174,44180,44251,44961,44966,44971],"usedEvents":[40179,40357,65263,65270,65277,65282,65289,65296,65299]}],"license":"UNLICENSED"},"id":120} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"areValidators","inputs":[{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Gear.CodeState"}],"stateMutability":"view"},{"type":"function","name":"codesStates","inputs":[{"name":"_codesIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint8[]","internalType":"enum Gear.CodeState[]"}],"stateMutability":"view"},{"type":"function","name":"commitBlocks","inputs":[{"name":"_blockCommitments","type":"tuple[]","internalType":"struct Gear.BlockCommitment[]","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBlock","type":"bytes32","internalType":"bytes32"},{"name":"predecessorBlock","type":"bytes32","internalType":"bytes32"},{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.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 Gear.Message[]","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 Gear.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":"_codeCommitments","type":"tuple[]","internalType":"struct Gear.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":"commitValidators","inputs":[{"name":"commitment","type":"tuple","internalType":"struct Gear.ValidatorsCommitment","components":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeSettings","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"createProgram","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithDecoder","inputs":[{"name":"_decoderImpl","type":"address","internalType":"address"},{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"genesisTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_mirrorProxy","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isValidator","inputs":[{"name":"_validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorProxyImpl","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":"_programId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCodeIds","inputs":[{"name":"_programsIds","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":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdPercentage","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BlockCommitted","inputs":[{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"codeId","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":"ComputationSettingsChanged","inputs":[{"name":"threshold","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"NextEraValidatorsCommitted","inputs":[{"name":"startTimestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"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":"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":"0x6080806040523460aa575f516020612e715f395f51905f525460ff8160401c16609b576002600160401b03196001600160401b038216016049575b604051612dc290816100af8239f35b6001600160401b0319166001600160401b039081175f516020612e715f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80603a565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081627a32e7146121415750806301b1d15614611a035780631c149d8a146118aa57806328e24b3d146118805780633d43b4181461182e578063527de0f9146117ac57806365ecfea2146117735780636c2eb3501461148c578063715018a61461142357806382bdeaad1461130b57806384d22a4f146112a257806388f50cf0146112695780638b1edf1e146111a25780638da5cb5b1461116d5780638f381dbe146111275780639067088e146110de57806396a2ddfa146110b0578063aaf0fe6a14610d13578063b1669a3314610865578063baaf020114610768578063c13911e814610724578063c9f16a11146106f6578063ca1e781914610675578063cacf66ab1461063d578063e6fabc0914610604578063e7006a74146104e3578063e97d3eb3146102b0578063ed612f8c1461027a578063edc8722514610231578063efd81abc146101ff578063f2fde38b146101d25763facd743b1461017d575f80fd5b346101cf5760203660031901126101cf576101966121b1565b6101ad5f516020612d4d5f395f51905f52546128d5565b9060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346101cf5760203660031901126101cf576101fc6101ef6121b1565b6101f7612729565b61254b565b80f35b50346101cf57806003193601126101cf57602061ffff60075f516020612d4d5f395f51905f5254015416604051908152f35b50346101cf57806003193601126101cf5760206102725f516020612d4d5f395f51905f525461ffff60076001610266846128d5565b01549201541690612a22565b604051908152f35b50346101cf57806003193601126101cf57602060016102a65f516020612d4d5f395f51905f52546128d5565b0154604051908152f35b50346101cf5760403660031901126101cf57600435906001600160401b0382116101cf57366023830112156101cf578160040135916001600160401b0383116104df573660248460061b830101116104df576024356001600160401b0381116104db57906103238492369060040161216b565b935f516020612d4d5f395f51905f525492610340845415156121e8565b606095829360118601975b878610156104be578560061b84016024810135918287528a60205260ff60408820541660038110156104aa57600103610447576001926103fa6044610427940161039481612530565b1561042f57828a528d60205260408a20600260ff1982541617905560148c016103bd815461253d565b90555b6103c981612530565b15157f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020604051868152a2612530565b6040519060208201928352151560f81b60408201526021815261041e6041826122a4565b519020906122c5565b95019461034b565b828a528d60205260408a2060ff1981541690556103c0565b60405162461bcd60e51b815260206004820152603560248201527f636f6465206d7573742062652072657175657374656420666f722076616c6964604482015274185d1a5bdb881d1bc818994818dbdb5b5a5d1d1959605a1b6064820152608490fd5b634e487b7160e01b88526021600452602488fd5b84926101fc92886104d69360208151910120906125cf565b6122f4565b8280fd5b5080fd5b50346101cf5760603660031901126101cf576104fd6121b1565b6024359061054560443591610512838561275c565b9360405193602085019182526040850152604084526105326060856122a4565b92519092206001600160a01b0392612c47565b16803b156104db5760405163189acdbd60e31b81526001600160a01b0390921660048301819052918390818160248183875af180156105f9576105e4575b5050813b156104db576040519063485cc95560e01b82523360048301526024820152828160448183865af180156105d9576105c4575b602082604051908152f35b6105cf8380926122a4565b6104df57816105b9565b6040513d85823e3d90fd5b816105ee916122a4565b6104db57825f610583565b6040513d84823e3d90fd5b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600401546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf57602065ffffffffffff60015f516020612d4d5f395f51905f52540154821c16604051908152f35b50346101cf57806003193601126101cf576106a860016106a25f516020612d4d5f395f51905f52546128d5565b01612340565b90604051918291602083016020845282518091526020604085019301915b8181106106d4575050500390f35b82516001600160a01b03168452859450602093840193909201916001016106c6565b50346101cf57806003193601126101cf57602060025f516020612d4d5f395f51905f52540154604051908152f35b50346101cf5760203660031901126101cf5760ff604060209260115f516020612d4d5f395f51905f5254016004358252845220541661076660405180926121db565bf35b50346101cf5760203660031901126101cf576004356001600160401b0381116104df5761079990369060040161216b565b905f516020612d4d5f395f51905f5254906107b383612391565b916107c160405193846122a4565b8383526107cd84612391565b602084019490601f19013686376012869201915b81811061082c57868587604051928392602084019060208552518091526040840192915b818110610813575050500390f35b8251845285945060209384019390920191600101610805565b8061084261083d60019385886123a8565b6123f8565b828060a01b03165f528360205260405f205461085e82886123cc565b52016107e1565b50346101cf5760e03660031901126101cf5761087f6121b1565b6024356001600160a01b03811691908290036104db576044356001600160a01b0381169290839003610d0f576064356001600160a01b0381169190829003610d0b576084359160a43560c4356001600160401b038111610d07576108e790369060040161216b565b9490925f516020612d6d5f395f51905f52549660ff8860401c1615976001600160401b03811680159081610cff575b6001149081610cf5575b159081610cec575b50610cdd5767ffffffffffffffff1981166001175f516020612d6d5f395f51905f5255610967919089610cb1575b5061095f612b82565b6101f7612b82565b4215610c5b578215610c055782821115610ba457604097885161098a8a826122a4565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526109be612729565b5190205f198101908111610b905792610b3697969592600895928b610b2f966109f48251926020840192835260208452836122a4565b60ff19915190201697885f516020612d4d5f395f51905f52558c610a16612890565b80518b5560018b019169ffffffffffff0000000063ffffffff60208401511691845493015160201b169169ffffffffffffffffffff191617179055828d8051610a5e81612289565b8381526020810185905201526004890180546001600160a01b03199081166001600160a01b039384161790915560058a018054821693831693909317909255600689018054909216921691909117905560078601805461ffff1916611a0a179055610ac76123e0565b506509184e72a00060208b51610adc8161225a565b639502f90081520152600e860180546001600160c01b0319166d09184e72a000000000009502f90017905589518290602090610b178161225a565b8381520152600f8601556010850155429436916124a7565b91016128ef565b610b3e575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020612d6d5f395f51905f5254165f516020612d6d5f395f51905f52555160018152a180f35b634e487b7160e01b8b52601160045260248bfd5b60405162461bcd60e51b815260206004820152603360248201527f657261206475726174696f6e206d757374206265206772656174657220746861604482015272371032b632b1ba34b7b710323ab930ba34b7b760691b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f656c656374696f6e206475726174696f6e206d75737420626520677265617465604482015267072207468616e20360c41b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f63757272656e742074696d657374616d70206d75737420626520677265617465604482015267072207468616e20360c41b6064820152608490fd5b68ffffffffffffffffff191668010000000000000001175f516020612d6d5f395f51905f52555f610956565b63f92ee8a960e01b8b5260048bfd5b9050155f610928565b303b159150610920565b8a9150610916565b8780fd5b8480fd5b8380fd5b50346101cf5760403660031901126101cf57600435906001600160401b0382116101cf5781600401604060031984360301126104df576024356001600160401b0381116104db57610d6890369060040161216b565b91905f516020612d4d5f395f51905f52549265ffffffffffff600185015460201c1691610d958342612473565b94600f81015495861561109c5786900495602489013596600181018091116110885787036110305786610dc791612494565b840180941161101c57610dde601082015485612473565b4210610fd757610ded81612a08565b954260028801541015610f775760405198610e078a61225a565b8635906001600160401b038211610f73570136602382011215610f6f576020610e3b839236906024600482013591016124a7565b9a8b8152015260405160208101918260208c51919c01908b5b818110610f50575050506020828c610e7a93610e9f9a9b9c9d9e520380845201826122a4565b5190206040516020810191825260208152610e966040826122a4565b519020906125cf565b15610ef057610ee6817f41e7f919bf726af8aa2ef36bd31905a693013e30c45c6284060e613d4941997b94610ee0610ed9866020976124fb565b36916124a7565b906128ef565b604051908152a180f35b60405162461bcd60e51b815260206004820152603260248201527f6e657874206572612076616c696461746f7273207369676e6174757265732076604482015271195c9a599a58d85d1a5bdb8819985a5b195960721b6064820152608490fd5b82516001600160a01b03168e5260209d8e019d90920191600101610e54565b8880fd5b8980fd5b60405162461bcd60e51b815260206004820152603260248201527f6c6f6f6b73206c696b652076616c696461746f727320666f72206e65787420656044820152711c9848185c9948185b1c9958591e481cd95d60721b6064820152608490fd5b60405162461bcd60e51b815260206004820152601b60248201527f656c656374696f6e206973206e6f7420796574207374617274656400000000006044820152606490fd5b634e487b7160e01b87526011600452602487fd5b60405162461bcd60e51b815260206004820152602a60248201527f636f6d6d69746d656e742065726120696e646578206973206e6f74206e657874604482015269040cae4c240d2dcc8caf60b31b6064820152608490fd5b634e487b7160e01b89526011600452602489fd5b634e487b7160e01b88526012600452602488fd5b50346101cf57806003193601126101cf57602060135f516020612d4d5f395f51905f52540154604051908152f35b50346101cf5760203660031901126101cf576110f86121b1565b60125f516020612d4d5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b50346101cf5760203660031901126101cf57600435906001600160401b0382116101cf57602061116361115d366004860161216b565b9061240c565b6040519015158152f35b50346101cf57806003193601126101cf575f516020612d2d5f395f51905f52546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f525480546112245763ffffffff600182015416409081156111df575580f35b60405162461bcd60e51b815260206004820152601d60248201527f756e61626c6520746f206c6f6f6b75702067656e6573697320686173680000006044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f67656e65736973206861736820616c72656164792073657400000000000000006044820152606490fd5b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf576112bb6123e0565b506040600e5f516020612d4d5f395f51905f5254016001600160801b038251916112e48361225a565b548160206001600160401b038316948581520191851c168152835192835251166020820152f35b50346101cf5760203660031901126101cf576004356001600160401b0381116104df5761133c90369060040161216b565b905f516020612d4d5f395f51905f52549061135683612391565b9161136460405193846122a4565b83835261137084612391565b602084019490601f19013686376011869201915b8181106113d957868587604051928392602084019060208552518091526040840192915b8181106113b6575050500390f35b91935091602080826113cb60019488516121db565b0194019101918493926113a8565b6113e48183866123a8565b3587528260205260ff6040882054166113fd82876123cc565b600382101561140f5752600101611384565b634e487b7160e01b89526021600452602489fd5b50346101cf57806003193601126101cf5761143c612729565b5f516020612d2d5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101cf57806003193601126101cf576114a5612729565b5f516020612d6d5f395f51905f525460ff8160401c16801561175f575b61175057680100000000000000029068ffffffffffffffffff1916175f516020612d6d5f395f51905f52555f516020612d4d5f395f51905f5254604090815161150b83826122a4565b6017815260208101907f726f757465722e73746f726167652e526f757465725632000000000000000000825261153f612729565b5190205f19810190811161173c57916020917fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29382519084820190815284825261158984836122a4565b60ff19915190201690815f516020612d4d5f395f51905f52556115aa612890565b80518355600183019063ffffffff868201511669ffffffffffff00000000868454930151881b169169ffffffffffffffffffff1916171790556004810160048301908082036116ee575b505061ffff600782015416600783019061ffff19825416179055611630600161161c836128d5565b016116274291612340565b600885016128ef565b600e8101600e83019080820361169c575b5050600f8101600f830191818303611686575b5050505060ff60401b195f516020612d6d5f395f51905f5254165f516020612d6d5f395f51905f52555160028152a180f35b601092839254905501549101555f808080611654565b806001600160401b03806001600160801b03935416166001600160401b031984541617835554851c16600160401b600160c01b03825491861b1690600160401b600160c01b0319161790555f80611641565b5481546001600160a01b03199081166001600160a01b039283161790925560058381015490850180548416918316919091179055600680840154908501805490931691161790555f806115f4565b634e487b7160e01b84526011600452602484fd5b63f92ee8a960e01b8252600482fd5b5060026001600160401b03821610156114c2565b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600501546040516001600160a01b039091168152602090f35b3461182a576117cc6117bd3661219b565b6001600160a01b03929161275c565b16803b1561182a576040519063485cc95560e01b82523360048301525f60248301525f8260448183855af191821561181f5760209261180f575b50604051908152f35b5f611819916122a4565b5f611806565b6040513d5f823e3d90fd5b5f80fd5b3461182a57602036600319011261182a576118476121b1565b61184f612729565b5f516020612d4d5f395f51905f525460040180546001600160a01b0319166001600160a01b03909216919091179055005b3461182a575f36600319011261182a5760205f516020612d4d5f395f51905f525454604051908152f35b3461182a576118b83661219b565b9081158015906119f9575b156119be5760115f516020612d4d5f395f51905f52546118e5815415156121e8565b0190805f528160205260ff60405f20541660038110156119aa57611949577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603360248201527f676976656e20636f646520696420697320616c7265616479206f6e2076616c6960448201527219185d1a5bdb881bdc881d985b1a59185d1959606a1b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b60405162461bcd60e51b8152602060048201526013602482015272189b1bd88818d85b89dd08189948199bdd5b99606a1b6044820152606490fd5b505f4915156118c3565b3461182a57604036600319011261182a576004356001600160401b03811161182a57611a3390369060040161216b565b6024356001600160401b03811161182a57611a5290369060040161216b565b90927f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6121325760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020612d4d5f395f51905f525491611aba835415156121e8565b60605f915b858310156120f6578260051b840135609e198536030181121561182a5784019060028601546040830135036120a357611afb6060830135612a44565b1561204f57949396959291906020611b148183016125bc565b65ffffffffffff60405191611b288361225a565b843583521691829101528135600287015565ffffffffffff19600387015416176003860155611b5a60808201826124fb565b9690946060995f925b89841015611fac578360051b88013560be198936030181121561182a5788019b611b8c8d6123f8565b6001600160a01b03165f90815260128b01602052604090205415611f4f5760068a01548d906001600160a01b03166060611bc5836123f8565b92019182356001600160801b03811680910361182a5760405163a9059cbb60e01b81526001600160a01b039092166004830152602482015290602090829060449082905f905af1801561181f57611f19575b506001600160a01b03611c298f6123f8565b6040516309ed323560e41b8152602060048201529f9116918f919060e48301906001600160801b0390611c96906001600160a01b03611c67866121c7565b166024870152602085013560448701526001600160a01b03611c8b604087016121c7565b166064870152612a87565b16608484015236829003601e19019060808301358281121561182a57830190602082359201946001600160401b03831161182a57606083023603861361182a57826101049260c060a4840152520193905f905b808210611ecf575050509e9f939495969798999a9b9c9d9e60a08201359081121561182a570190813560208301926001600160401b03821161182a578160051b91823603851361182a578684036023190160c48801528084528694928401602090810194908101925f923682900360de19019290915b828510611dd6575050505050505091815f8160209503925af190811561181f575f91611da4575b50611d93906001926122c5565b9b9a99989796959401929190611b63565b90506020813d8211611dce575b81611dbe602093836122a4565b8101031261182a57516001611d86565b3d9150611db1565b9193959750919395601f1983820301875287358581121561182a57820160208101358252906001600160a01b03611e0f604084016121c7565b1660208201526060820135603e19368490030181121561182a5782602091010191602083359301906001600160401b03841161182a57833603821361182a578360c092836040860152818486015260e08501375f60e085850101526001600160801b03611e7e60808301612a87565b16606084015260a0810135608084015201359163ffffffff60e01b831680930361182a5760e0826020939260019560a086950152601f80199101160101990197019501929091899796959492611d5f565b90919460608060019288358152838060a01b03611eee60208b016121c7565b1660208201526001600160801b03611f0860408b01612a87565b166040820152019601920190611ce9565b6020813d8211611f47575b81611f31602093836122a4565b8101031261182a57518015158114611c17575f80fd5b3d9150611f24565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b96509697509793986001939150916120469260208151910120907fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e602060405183358152a1611ffd602082016125bc565b9160606040519260208401948135865265ffffffffffff60d01b9060d01b166040850152604081013560468501520135606683015260868201526086815261041e60a6826122a4565b91960191611abf565b60405162461bcd60e51b815260206004820152602660248201527f616c6c6f776564207072656465636573736f7220626c6f636b207761736e277460448201526508199bdd5b9960d21b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f696e76616c69642070726576696f757320636f6d6d697474656420626c6f636b604482015264040d0c2e6d60db1b6064820152608490fd5b6104d690878661210d9460208151910120906125cf565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b3461182a575f36600319011261182a5760209060145f516020612d4d5f395f51905f525401548152f35b9181601f8401121561182a578235916001600160401b03831161182a576020808501948460051b01011161182a57565b604090600319011261182a576004359060243590565b600435906001600160a01b038216820361182a57565b35906001600160a01b038216820361182a57565b9060038210156119aa5752565b156121ef57565b60405162461bcd60e51b815260206004820152603860248201527f726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f60448201527f6f6b757047656e657369734861736828296020666972737400000000000000006064820152608490fd5b604081019081106001600160401b0382111761227557604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761227557604052565b90601f801991011681019081106001600160401b0382111761227557604052565b6020806122f2928195946040519682889351918291018585015e82019083820152030180855201836122a4565b565b156122fb57565b60405162461bcd60e51b815260206004820152601e60248201527f7369676e61747572657320766572696669636174696f6e206661696c656400006044820152606490fd5b90604051918281549182825260208201905f5260205f20925f5b81811061236f5750506122f2925003836122a4565b84546001600160a01b031683526001948501948794506020909301920161235a565b6001600160401b0381116122755760051b60200190565b91908110156123b85760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156123b85760209160051b010190565b604051906123ed8261225a565b5f6020838281520152565b356001600160a01b038116810361182a5790565b6124235f516020612d4d5f395f51905f52546128d5565b905f5b8381106124365750505050600190565b61244461083d8286856123a8565b6001600160a01b03165f9081526020849052604090205460ff161561246b57600101612426565b505050505f90565b9190820391821161248057565b634e487b7160e01b5f52601160045260245ffd5b8181029291811591840414171561248057565b9291906124b381612391565b936124c160405195866122a4565b602085838152019160051b810192831161182a57905b8282106124e357505050565b602080916124f0846121c7565b8152019101906124d7565b903590601e198136030182121561182a57018035906001600160401b03821161182a57602001918160051b3603831361182a57565b35801515810361182a5790565b5f1981146124805760010190565b6001600160a01b031680156125a9575f516020612d2d5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b3565ffffffffffff8116810361182a5790565b9190916125f36125de826128d5565b9161ffff600760018501549201541690612a22565b9260405190602082019081526020825261260e6040836122a4565b61264a603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f1981018352826122a4565b5190205f925f5b8681101561271e578060051b820135601e198336030181121561182a5782018035906001600160401b03821161182a576020810190823603821361182a57604051906126a7601f8501601f1916602001836122a4565b838252602084369201011161182a575f6020846126d9956126d095838601378301015285612bad565b90929192612be7565b6001600160a01b03165f9081526020859052604090205460ff16612700575b600101612651565b9361270a9061253d565b938585036126f85750505050505050600190565b505050505050505f90565b5f516020612d2d5f395f51905f52546001600160a01b0316330361274957565b63118cdaa760e01b5f523360045260245ffd5b5f516020612d4d5f395f51905f525491612778835415156121e8565b815f526011830160205260ff60405f20541660038110156119aa57600203612834576127d660139160018060a01b036005860154169060405160208101918683526040820152604081526127cd6060826122a4565b51902090612c47565b9260018060a01b0384165f52601281016020528260405f2055016127fa815461253d565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a290565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f6040805161289e81612289565b82815282602082015201526040516128b581612289565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6128de81612a9b565b156128e957600b0190565b60080190565b905f5b6001830190815481101561292f575f91825260208083208201546001600160a01b031683528490526040909120805460ff191690556001016128f2565b50505f5b8151811015612974576001906001600160a01b0361295182856123cc565b5116828060a01b03165f528360205260405f208260ff1982541617905501612933565b50600182018151916001600160401b038311612275576801000000000000000083116122755781548383558084106129e2575b50602001905f5260205f205f5b8381106129c5575050505060020155565b82516001600160a01b0316818301556020909201916001016129b4565b825f528360205f2091820191015b8181106129fd57506129a7565b5f81556001016129f0565b612a1181612a9b565b15612a1c5760080190565b600b0190565b61ffff612a30921690612494565b61270f810180911161248057612710900490565b905f19430143811161248057805b612a5d575b505f9150565b8040838103612a6e57506001925050565b15612a82578015612480575f190180612a52565b612a57565b35906001600160801b038216820361182a57565b600d600a820154910154808214612b3e5780821091421090811590421015918190612b37575b15612ad65782612ad057505090565b14919050565b60405162461bcd60e51b815260206004820152603360248201527f636f756c64206e6f74206964656e746966792076616c696461746f727320666f6044820152720722063757272656e742074696d657374616d7606c1b6064820152608490fd5b5081612ac1565b606460405162461bcd60e51b815260206004820152602060248201527f657261732074696d657374616d70206d757374206e6f7420626520657175616c6044820152fd5b60ff5f516020612d6d5f395f51905f525460401c1615612b9e57565b631afcd79f60e31b5f5260045ffd5b8151919060418303612bdd57612bd69250602082015190606060408401519301515f1a90612caa565b9192909190565b50505f9160029190565b60048110156119aa5780612bf9575050565b60018103612c105763f645eedf60e01b5f5260045ffd5b60028103612c2b575063fce698f760e01b5f5260045260245ffd5b600314612c355750565b6335e2f38360e21b5f5260045260245ffd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b17602052603760095ff5906001600160a01b03821615612c9b57565b63b06ebf3d60e01b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612d21579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561181f575f516001600160a01b03811615612d1757905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207c164a4d4527d17d89e1ed45b36e10a35d32234888a4f4dd101d6ee94fb149e864736f6c634300081c0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"690:16205:120:-:0;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;7896:76:25;;-1:-1:-1;;;;;;;;;;;690:16205:120;;7985:34:25;7981:146;;-1:-1:-1;690:16205:120;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;690:16205:120;-1:-1:-1;;;;;690:16205:120;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;8087:29:25;;690:16205:120;;8087:29:25;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:25;;-1:-1:-1;7938:23:25;690:16205:120;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081627a32e7146121415750806301b1d15614611a035780631c149d8a146118aa57806328e24b3d146118805780633d43b4181461182e578063527de0f9146117ac57806365ecfea2146117735780636c2eb3501461148c578063715018a61461142357806382bdeaad1461130b57806384d22a4f146112a257806388f50cf0146112695780638b1edf1e146111a25780638da5cb5b1461116d5780638f381dbe146111275780639067088e146110de57806396a2ddfa146110b0578063aaf0fe6a14610d13578063b1669a3314610865578063baaf020114610768578063c13911e814610724578063c9f16a11146106f6578063ca1e781914610675578063cacf66ab1461063d578063e6fabc0914610604578063e7006a74146104e3578063e97d3eb3146102b0578063ed612f8c1461027a578063edc8722514610231578063efd81abc146101ff578063f2fde38b146101d25763facd743b1461017d575f80fd5b346101cf5760203660031901126101cf576101966121b1565b6101ad5f516020612d4d5f395f51905f52546128d5565b9060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346101cf5760203660031901126101cf576101fc6101ef6121b1565b6101f7612729565b61254b565b80f35b50346101cf57806003193601126101cf57602061ffff60075f516020612d4d5f395f51905f5254015416604051908152f35b50346101cf57806003193601126101cf5760206102725f516020612d4d5f395f51905f525461ffff60076001610266846128d5565b01549201541690612a22565b604051908152f35b50346101cf57806003193601126101cf57602060016102a65f516020612d4d5f395f51905f52546128d5565b0154604051908152f35b50346101cf5760403660031901126101cf57600435906001600160401b0382116101cf57366023830112156101cf578160040135916001600160401b0383116104df573660248460061b830101116104df576024356001600160401b0381116104db57906103238492369060040161216b565b935f516020612d4d5f395f51905f525492610340845415156121e8565b606095829360118601975b878610156104be578560061b84016024810135918287528a60205260ff60408820541660038110156104aa57600103610447576001926103fa6044610427940161039481612530565b1561042f57828a528d60205260408a20600260ff1982541617905560148c016103bd815461253d565b90555b6103c981612530565b15157f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c96020604051868152a2612530565b6040519060208201928352151560f81b60408201526021815261041e6041826122a4565b519020906122c5565b95019461034b565b828a528d60205260408a2060ff1981541690556103c0565b60405162461bcd60e51b815260206004820152603560248201527f636f6465206d7573742062652072657175657374656420666f722076616c6964604482015274185d1a5bdb881d1bc818994818dbdb5b5a5d1d1959605a1b6064820152608490fd5b634e487b7160e01b88526021600452602488fd5b84926101fc92886104d69360208151910120906125cf565b6122f4565b8280fd5b5080fd5b50346101cf5760603660031901126101cf576104fd6121b1565b6024359061054560443591610512838561275c565b9360405193602085019182526040850152604084526105326060856122a4565b92519092206001600160a01b0392612c47565b16803b156104db5760405163189acdbd60e31b81526001600160a01b0390921660048301819052918390818160248183875af180156105f9576105e4575b5050813b156104db576040519063485cc95560e01b82523360048301526024820152828160448183865af180156105d9576105c4575b602082604051908152f35b6105cf8380926122a4565b6104df57816105b9565b6040513d85823e3d90fd5b816105ee916122a4565b6104db57825f610583565b6040513d84823e3d90fd5b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600401546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf57602065ffffffffffff60015f516020612d4d5f395f51905f52540154821c16604051908152f35b50346101cf57806003193601126101cf576106a860016106a25f516020612d4d5f395f51905f52546128d5565b01612340565b90604051918291602083016020845282518091526020604085019301915b8181106106d4575050500390f35b82516001600160a01b03168452859450602093840193909201916001016106c6565b50346101cf57806003193601126101cf57602060025f516020612d4d5f395f51905f52540154604051908152f35b50346101cf5760203660031901126101cf5760ff604060209260115f516020612d4d5f395f51905f5254016004358252845220541661076660405180926121db565bf35b50346101cf5760203660031901126101cf576004356001600160401b0381116104df5761079990369060040161216b565b905f516020612d4d5f395f51905f5254906107b383612391565b916107c160405193846122a4565b8383526107cd84612391565b602084019490601f19013686376012869201915b81811061082c57868587604051928392602084019060208552518091526040840192915b818110610813575050500390f35b8251845285945060209384019390920191600101610805565b8061084261083d60019385886123a8565b6123f8565b828060a01b03165f528360205260405f205461085e82886123cc565b52016107e1565b50346101cf5760e03660031901126101cf5761087f6121b1565b6024356001600160a01b03811691908290036104db576044356001600160a01b0381169290839003610d0f576064356001600160a01b0381169190829003610d0b576084359160a43560c4356001600160401b038111610d07576108e790369060040161216b565b9490925f516020612d6d5f395f51905f52549660ff8860401c1615976001600160401b03811680159081610cff575b6001149081610cf5575b159081610cec575b50610cdd5767ffffffffffffffff1981166001175f516020612d6d5f395f51905f5255610967919089610cb1575b5061095f612b82565b6101f7612b82565b4215610c5b578215610c055782821115610ba457604097885161098a8a826122a4565b6017815260208101907f726f757465722e73746f726167652e526f75746572563100000000000000000082526109be612729565b5190205f198101908111610b905792610b3697969592600895928b610b2f966109f48251926020840192835260208452836122a4565b60ff19915190201697885f516020612d4d5f395f51905f52558c610a16612890565b80518b5560018b019169ffffffffffff0000000063ffffffff60208401511691845493015160201b169169ffffffffffffffffffff191617179055828d8051610a5e81612289565b8381526020810185905201526004890180546001600160a01b03199081166001600160a01b039384161790915560058a018054821693831693909317909255600689018054909216921691909117905560078601805461ffff1916611a0a179055610ac76123e0565b506509184e72a00060208b51610adc8161225a565b639502f90081520152600e860180546001600160c01b0319166d09184e72a000000000009502f90017905589518290602090610b178161225a565b8381520152600f8601556010850155429436916124a7565b91016128ef565b610b3e575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020612d6d5f395f51905f5254165f516020612d6d5f395f51905f52555160018152a180f35b634e487b7160e01b8b52601160045260248bfd5b60405162461bcd60e51b815260206004820152603360248201527f657261206475726174696f6e206d757374206265206772656174657220746861604482015272371032b632b1ba34b7b710323ab930ba34b7b760691b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f656c656374696f6e206475726174696f6e206d75737420626520677265617465604482015267072207468616e20360c41b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f63757272656e742074696d657374616d70206d75737420626520677265617465604482015267072207468616e20360c41b6064820152608490fd5b68ffffffffffffffffff191668010000000000000001175f516020612d6d5f395f51905f52555f610956565b63f92ee8a960e01b8b5260048bfd5b9050155f610928565b303b159150610920565b8a9150610916565b8780fd5b8480fd5b8380fd5b50346101cf5760403660031901126101cf57600435906001600160401b0382116101cf5781600401604060031984360301126104df576024356001600160401b0381116104db57610d6890369060040161216b565b91905f516020612d4d5f395f51905f52549265ffffffffffff600185015460201c1691610d958342612473565b94600f81015495861561109c5786900495602489013596600181018091116110885787036110305786610dc791612494565b840180941161101c57610dde601082015485612473565b4210610fd757610ded81612a08565b954260028801541015610f775760405198610e078a61225a565b8635906001600160401b038211610f73570136602382011215610f6f576020610e3b839236906024600482013591016124a7565b9a8b8152015260405160208101918260208c51919c01908b5b818110610f50575050506020828c610e7a93610e9f9a9b9c9d9e520380845201826122a4565b5190206040516020810191825260208152610e966040826122a4565b519020906125cf565b15610ef057610ee6817f41e7f919bf726af8aa2ef36bd31905a693013e30c45c6284060e613d4941997b94610ee0610ed9866020976124fb565b36916124a7565b906128ef565b604051908152a180f35b60405162461bcd60e51b815260206004820152603260248201527f6e657874206572612076616c696461746f7273207369676e6174757265732076604482015271195c9a599a58d85d1a5bdb8819985a5b195960721b6064820152608490fd5b82516001600160a01b03168e5260209d8e019d90920191600101610e54565b8880fd5b8980fd5b60405162461bcd60e51b815260206004820152603260248201527f6c6f6f6b73206c696b652076616c696461746f727320666f72206e65787420656044820152711c9848185c9948185b1c9958591e481cd95d60721b6064820152608490fd5b60405162461bcd60e51b815260206004820152601b60248201527f656c656374696f6e206973206e6f7420796574207374617274656400000000006044820152606490fd5b634e487b7160e01b87526011600452602487fd5b60405162461bcd60e51b815260206004820152602a60248201527f636f6d6d69746d656e742065726120696e646578206973206e6f74206e657874604482015269040cae4c240d2dcc8caf60b31b6064820152608490fd5b634e487b7160e01b89526011600452602489fd5b634e487b7160e01b88526012600452602488fd5b50346101cf57806003193601126101cf57602060135f516020612d4d5f395f51905f52540154604051908152f35b50346101cf5760203660031901126101cf576110f86121b1565b60125f516020612d4d5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b50346101cf5760203660031901126101cf57600435906001600160401b0382116101cf57602061116361115d366004860161216b565b9061240c565b6040519015158152f35b50346101cf57806003193601126101cf575f516020612d2d5f395f51905f52546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f525480546112245763ffffffff600182015416409081156111df575580f35b60405162461bcd60e51b815260206004820152601d60248201527f756e61626c6520746f206c6f6f6b75702067656e6573697320686173680000006044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f67656e65736973206861736820616c72656164792073657400000000000000006044820152606490fd5b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101cf57806003193601126101cf576112bb6123e0565b506040600e5f516020612d4d5f395f51905f5254016001600160801b038251916112e48361225a565b548160206001600160401b038316948581520191851c168152835192835251166020820152f35b50346101cf5760203660031901126101cf576004356001600160401b0381116104df5761133c90369060040161216b565b905f516020612d4d5f395f51905f52549061135683612391565b9161136460405193846122a4565b83835261137084612391565b602084019490601f19013686376011869201915b8181106113d957868587604051928392602084019060208552518091526040840192915b8181106113b6575050500390f35b91935091602080826113cb60019488516121db565b0194019101918493926113a8565b6113e48183866123a8565b3587528260205260ff6040882054166113fd82876123cc565b600382101561140f5752600101611384565b634e487b7160e01b89526021600452602489fd5b50346101cf57806003193601126101cf5761143c612729565b5f516020612d2d5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101cf57806003193601126101cf576114a5612729565b5f516020612d6d5f395f51905f525460ff8160401c16801561175f575b61175057680100000000000000029068ffffffffffffffffff1916175f516020612d6d5f395f51905f52555f516020612d4d5f395f51905f5254604090815161150b83826122a4565b6017815260208101907f726f757465722e73746f726167652e526f757465725632000000000000000000825261153f612729565b5190205f19810190811161173c57916020917fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29382519084820190815284825261158984836122a4565b60ff19915190201690815f516020612d4d5f395f51905f52556115aa612890565b80518355600183019063ffffffff868201511669ffffffffffff00000000868454930151881b169169ffffffffffffffffffff1916171790556004810160048301908082036116ee575b505061ffff600782015416600783019061ffff19825416179055611630600161161c836128d5565b016116274291612340565b600885016128ef565b600e8101600e83019080820361169c575b5050600f8101600f830191818303611686575b5050505060ff60401b195f516020612d6d5f395f51905f5254165f516020612d6d5f395f51905f52555160028152a180f35b601092839254905501549101555f808080611654565b806001600160401b03806001600160801b03935416166001600160401b031984541617835554851c16600160401b600160c01b03825491861b1690600160401b600160c01b0319161790555f80611641565b5481546001600160a01b03199081166001600160a01b039283161790925560058381015490850180548416918316919091179055600680840154908501805490931691161790555f806115f4565b634e487b7160e01b84526011600452602484fd5b63f92ee8a960e01b8252600482fd5b5060026001600160401b03821610156114c2565b50346101cf57806003193601126101cf575f516020612d4d5f395f51905f5254600501546040516001600160a01b039091168152602090f35b3461182a576117cc6117bd3661219b565b6001600160a01b03929161275c565b16803b1561182a576040519063485cc95560e01b82523360048301525f60248301525f8260448183855af191821561181f5760209261180f575b50604051908152f35b5f611819916122a4565b5f611806565b6040513d5f823e3d90fd5b5f80fd5b3461182a57602036600319011261182a576118476121b1565b61184f612729565b5f516020612d4d5f395f51905f525460040180546001600160a01b0319166001600160a01b03909216919091179055005b3461182a575f36600319011261182a5760205f516020612d4d5f395f51905f525454604051908152f35b3461182a576118b83661219b565b9081158015906119f9575b156119be5760115f516020612d4d5f395f51905f52546118e5815415156121e8565b0190805f528160205260ff60405f20541660038110156119aa57611949577f65672eaf4ff8b823ea29ae013fef437d1fa9ed431125263a7a1f0ac49eada39692604092825f52602052825f20600160ff1982541617905582519182526020820152a1005b60405162461bcd60e51b815260206004820152603360248201527f676976656e20636f646520696420697320616c7265616479206f6e2076616c6960448201527219185d1a5bdb881bdc881d985b1a59185d1959606a1b6064820152608490fd5b634e487b7160e01b5f52602160045260245ffd5b60405162461bcd60e51b8152602060048201526013602482015272189b1bd88818d85b89dd08189948199bdd5b99606a1b6044820152606490fd5b505f4915156118c3565b3461182a57604036600319011261182a576004356001600160401b03811161182a57611a3390369060040161216b565b6024356001600160401b03811161182a57611a5290369060040161216b565b90927f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6121325760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020612d4d5f395f51905f525491611aba835415156121e8565b60605f915b858310156120f6578260051b840135609e198536030181121561182a5784019060028601546040830135036120a357611afb6060830135612a44565b1561204f57949396959291906020611b148183016125bc565b65ffffffffffff60405191611b288361225a565b843583521691829101528135600287015565ffffffffffff19600387015416176003860155611b5a60808201826124fb565b9690946060995f925b89841015611fac578360051b88013560be198936030181121561182a5788019b611b8c8d6123f8565b6001600160a01b03165f90815260128b01602052604090205415611f4f5760068a01548d906001600160a01b03166060611bc5836123f8565b92019182356001600160801b03811680910361182a5760405163a9059cbb60e01b81526001600160a01b039092166004830152602482015290602090829060449082905f905af1801561181f57611f19575b506001600160a01b03611c298f6123f8565b6040516309ed323560e41b8152602060048201529f9116918f919060e48301906001600160801b0390611c96906001600160a01b03611c67866121c7565b166024870152602085013560448701526001600160a01b03611c8b604087016121c7565b166064870152612a87565b16608484015236829003601e19019060808301358281121561182a57830190602082359201946001600160401b03831161182a57606083023603861361182a57826101049260c060a4840152520193905f905b808210611ecf575050509e9f939495969798999a9b9c9d9e60a08201359081121561182a570190813560208301926001600160401b03821161182a578160051b91823603851361182a578684036023190160c48801528084528694928401602090810194908101925f923682900360de19019290915b828510611dd6575050505050505091815f8160209503925af190811561181f575f91611da4575b50611d93906001926122c5565b9b9a99989796959401929190611b63565b90506020813d8211611dce575b81611dbe602093836122a4565b8101031261182a57516001611d86565b3d9150611db1565b9193959750919395601f1983820301875287358581121561182a57820160208101358252906001600160a01b03611e0f604084016121c7565b1660208201526060820135603e19368490030181121561182a5782602091010191602083359301906001600160401b03841161182a57833603821361182a578360c092836040860152818486015260e08501375f60e085850101526001600160801b03611e7e60808301612a87565b16606084015260a0810135608084015201359163ffffffff60e01b831680930361182a5760e0826020939260019560a086950152601f80199101160101990197019501929091899796959492611d5f565b90919460608060019288358152838060a01b03611eee60208b016121c7565b1660208201526001600160801b03611f0860408b01612a87565b166040820152019601920190611ce9565b6020813d8211611f47575b81611f31602093836122a4565b8101031261182a57518015158114611c17575f80fd5b3d9150611f24565b60405162461bcd60e51b815260206004820152602f60248201527f636f756c646e277420706572666f726d207472616e736974696f6e20666f722060448201526e756e6b6e6f776e2070726f6772616d60881b6064820152608490fd5b96509697509793986001939150916120469260208151910120907fd756eca21e02cb0dbde1e44a4d9c6921b5c8aa4668cfa0752784b3dc855bce1e602060405183358152a1611ffd602082016125bc565b9160606040519260208401948135865265ffffffffffff60d01b9060d01b166040850152604081013560468501520135606683015260868201526086815261041e60a6826122a4565b91960191611abf565b60405162461bcd60e51b815260206004820152602660248201527f616c6c6f776564207072656465636573736f7220626c6f636b207761736e277460448201526508199bdd5b9960d21b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f696e76616c69642070726576696f757320636f6d6d697474656420626c6f636b604482015264040d0c2e6d60db1b6064820152608490fd5b6104d690878661210d9460208151910120906125cf565b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b633ee5aeb560e01b5f5260045ffd5b3461182a575f36600319011261182a5760209060145f516020612d4d5f395f51905f525401548152f35b9181601f8401121561182a578235916001600160401b03831161182a576020808501948460051b01011161182a57565b604090600319011261182a576004359060243590565b600435906001600160a01b038216820361182a57565b35906001600160a01b038216820361182a57565b9060038210156119aa5752565b156121ef57565b60405162461bcd60e51b815260206004820152603860248201527f726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f60448201527f6f6b757047656e657369734861736828296020666972737400000000000000006064820152608490fd5b604081019081106001600160401b0382111761227557604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761227557604052565b90601f801991011681019081106001600160401b0382111761227557604052565b6020806122f2928195946040519682889351918291018585015e82019083820152030180855201836122a4565b565b156122fb57565b60405162461bcd60e51b815260206004820152601e60248201527f7369676e61747572657320766572696669636174696f6e206661696c656400006044820152606490fd5b90604051918281549182825260208201905f5260205f20925f5b81811061236f5750506122f2925003836122a4565b84546001600160a01b031683526001948501948794506020909301920161235a565b6001600160401b0381116122755760051b60200190565b91908110156123b85760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156123b85760209160051b010190565b604051906123ed8261225a565b5f6020838281520152565b356001600160a01b038116810361182a5790565b6124235f516020612d4d5f395f51905f52546128d5565b905f5b8381106124365750505050600190565b61244461083d8286856123a8565b6001600160a01b03165f9081526020849052604090205460ff161561246b57600101612426565b505050505f90565b9190820391821161248057565b634e487b7160e01b5f52601160045260245ffd5b8181029291811591840414171561248057565b9291906124b381612391565b936124c160405195866122a4565b602085838152019160051b810192831161182a57905b8282106124e357505050565b602080916124f0846121c7565b8152019101906124d7565b903590601e198136030182121561182a57018035906001600160401b03821161182a57602001918160051b3603831361182a57565b35801515810361182a5790565b5f1981146124805760010190565b6001600160a01b031680156125a9575f516020612d2d5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b3565ffffffffffff8116810361182a5790565b9190916125f36125de826128d5565b9161ffff600760018501549201541690612a22565b9260405190602082019081526020825261260e6040836122a4565b61264a603660405180936020820195601960f81b87523060601b60228401525180918484015e81015f838201520301601f1981018352826122a4565b5190205f925f5b8681101561271e578060051b820135601e198336030181121561182a5782018035906001600160401b03821161182a576020810190823603821361182a57604051906126a7601f8501601f1916602001836122a4565b838252602084369201011161182a575f6020846126d9956126d095838601378301015285612bad565b90929192612be7565b6001600160a01b03165f9081526020859052604090205460ff16612700575b600101612651565b9361270a9061253d565b938585036126f85750505050505050600190565b505050505050505f90565b5f516020612d2d5f395f51905f52546001600160a01b0316330361274957565b63118cdaa760e01b5f523360045260245ffd5b5f516020612d4d5f395f51905f525491612778835415156121e8565b815f526011830160205260ff60405f20541660038110156119aa57600203612834576127d660139160018060a01b036005860154169060405160208101918683526040820152604081526127cd6060826122a4565b51902090612c47565b9260018060a01b0384165f52601281016020528260405f2055016127fa815461253d565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a290565b60405162461bcd60e51b815260206004820152602e60248201527f636f6465206d7573742062652076616c696461746564206265666f726520707260448201526d37b3b930b69031b932b0ba34b7b760911b6064820152608490fd5b5f6040805161289e81612289565b82815282602082015201526040516128b581612289565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6128de81612a9b565b156128e957600b0190565b60080190565b905f5b6001830190815481101561292f575f91825260208083208201546001600160a01b031683528490526040909120805460ff191690556001016128f2565b50505f5b8151811015612974576001906001600160a01b0361295182856123cc565b5116828060a01b03165f528360205260405f208260ff1982541617905501612933565b50600182018151916001600160401b038311612275576801000000000000000083116122755781548383558084106129e2575b50602001905f5260205f205f5b8381106129c5575050505060020155565b82516001600160a01b0316818301556020909201916001016129b4565b825f528360205f2091820191015b8181106129fd57506129a7565b5f81556001016129f0565b612a1181612a9b565b15612a1c5760080190565b600b0190565b61ffff612a30921690612494565b61270f810180911161248057612710900490565b905f19430143811161248057805b612a5d575b505f9150565b8040838103612a6e57506001925050565b15612a82578015612480575f190180612a52565b612a57565b35906001600160801b038216820361182a57565b600d600a820154910154808214612b3e5780821091421090811590421015918190612b37575b15612ad65782612ad057505090565b14919050565b60405162461bcd60e51b815260206004820152603360248201527f636f756c64206e6f74206964656e746966792076616c696461746f727320666f6044820152720722063757272656e742074696d657374616d7606c1b6064820152608490fd5b5081612ac1565b606460405162461bcd60e51b815260206004820152602060248201527f657261732074696d657374616d70206d757374206e6f7420626520657175616c6044820152fd5b60ff5f516020612d6d5f395f51905f525460401c1615612b9e57565b631afcd79f60e31b5f5260045ffd5b8151919060418303612bdd57612bd69250602082015190606060408401519301515f1a90612caa565b9192909190565b50505f9160029190565b60048110156119aa5780612bf9575050565b60018103612c105763f645eedf60e01b5f5260045ffd5b60028103612c2b575063fce698f760e01b5f5260045260245ffd5b600314612c355750565b6335e2f38360e21b5f5260045260245ffd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b17602052603760095ff5906001600160a01b03821615612c9b57565b63b06ebf3d60e01b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612d21579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561181f575f516001600160a01b03811615612d1757905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207c164a4d4527d17d89e1ed45b36e10a35d32234888a4f4dd101d6ee94fb149e864736f6c634300081c0033","sourceMap":"690:16205:120:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;:::i;:::-;5005:36;-1:-1:-1;;;;;;;;;;;690:16205:120;5005:36;:::i;:::-;:52;690:16205;;;;;;-1:-1:-1;690:16205:120;;;;;;-1:-1:-1;690:16205:120;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;2357:1:24;690:16205:120;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;:::-;690:16205:120;;;;;;;;;;;;;;;;;5154:28;-1:-1:-1;;;;;;;;;;;690:16205:120;5154:28;690:16205;;;;;;;;;;;;;;;;;;;;;;5619:147;-1:-1:-1;;;;;;;;;;;690:16205:120;;5704:25;5657:38;:33;;;:::i;:::-;:38;690:16205;5704:25;;690:16205;;5619:147;;:::i;:::-;690:16205;;;;;;;;;;;;;;;;;;;;5428:41;:36;-1:-1:-1;;;;;;;;;;;690:16205:120;5428:36;:::i;:::-;:41;690:16205;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;690:16205:120;;10552:107;690:16205;;10560:38;;10552:107;:::i;:::-;690:16205;10720:13;;10888:19;;;;10715:838;10764:3;10735:27;;;;;;690:16205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10888:82;690:16205;;;11076:20;3987::122;11076::120;11466:76;11076:20;;;;;:::i;:::-;;;;690:16205;;;;;;;;;11163:24;690:16205;;;;;;;;11205:39;;;:41;690:16205;;11205:41;:::i;:::-;690:16205;;11072:279;11406:20;;;:::i;:::-;690:16205;;11370:57;690:16205;;;;;;11370:57;3987:20:122;:::i;:::-;690:16205:120;;3951:57:122;690:16205:120;3951:57:122;;690:16205:120;;;;;;;;;;;;3951:57:122;;;;;;:::i;:::-;690:16205:120;3941:68:122;;11466:76:120;;:::i;:::-;10764:3;690:16205;10720:13;;;11072:279;690:16205;;;;;;;;;;;;;;;;11072:279;;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;10735:27;;;11563:155;10735:27;;11584:78;10735:27;690:16205;;;;;11616:32;11584:78;;:::i;:::-;11563:155;:::i;690:16205::-;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;:::i;:::-;;;;2908:43:37;690:16205:120;;8825:30;;;;;:::i;:::-;690:16205;;;8922:32;690:16205;8922:32;;690:16205;;;;;;;;8922:32;;;690:16205;8922:32;;:::i;:::-;690:16205;;8912:43;;;-1:-1:-1;;;;;690:16205:120;2908:43:37;:::i;:::-;690:16205:120;13659:43;;;;;690:16205;;-1:-1:-1;;;13659:43:120;;-1:-1:-1;;;;;690:16205:120;;;;13659:43;;690:16205;;;;;;;;;;;13659:43;;;;;;;;;690:16205;8975:47;;;;;;;690:16205;;;;;;8975:47;;9002:10;690:16205;8975:47;;690:16205;;;;;8975:47;;690:16205;8975:47;;;;;;;;;;;690:16205;;;;;;;;;8975:47;;;;;;:::i;:::-;690:16205;;8975:47;;;;690:16205;;;;;;;;;13659:43;;;;;:::i;:::-;690:16205;;13659:43;;;;;690:16205;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;4256:23;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;4011:32;-1:-1:-1;;;;;;;;;;;690:16205:120;4011:32;690:16205;;;;;;;;;;;;;;;;;;;;;;;;5300:41;:36;-1:-1:-1;;;;;;;;;;;690:16205:120;5300:36;:::i;:::-;:41;690:16205;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;-1:-1:-1;690:16205:120;;;;;;;;;5300:41;690:16205;;;;;;;;;;;;;;;;;4139:30;-1:-1:-1;;;;;;;;;;;690:16205:120;4139:30;690:16205;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;;6005:22;-1:-1:-1;;;;;;;;;;;690:16205:120;6005:22;690:16205;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;690:16205:120;;;;6878:28;6810:13;6878:28;;6805:129;6825:23;;;;;;690:16205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;690:16205:120;;;;;;;;;6878:28;690:16205;;;6850:3;6907:15;;;6878:28;6907:15;;;;:::i;:::-;;:::i;:::-;690:16205;;;;;;-1:-1:-1;690:16205:120;;;;;-1:-1:-1;690:16205:120;;6869:54;;;;:::i;:::-;577:4:122;690:16205:120;6810:13;;690:16205;;;;;;;-1:-1:-1;;690:16205:120;;;;;;:::i;:::-;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;;4301:16:25;690:16205:120;-1:-1:-1;;;;;690:16205:120;;4726:16:25;;:34;;;;690:16205:120;;4790:16:25;:50;;;;690:16205:120;4855:13:25;:30;;;;690:16205:120;4851:91:25;;;-1:-1:-1;;690:16205:120;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;6961:1:25;;690:16205:120;;4979:67:25;;690:16205:120;6893:76:25;;;:::i;:::-;;;:::i;6961:1::-;1512:15:120;:19;690:16205;;1594:21;;690:16205;;1678:32;;;690:16205;;;;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:24;;:::i;:::-;690:16205:120;16763:27;;-1:-1:-1;;690:16205:120;;;;;;;;2293:85;690:16205;;;;2310:37;690:16205;;;;;16744:52;690:16205;;16744:52;690:16205;16744:52;;690:16205;;;;16744:52;;;;:::i;:::-;690:16205;;;;16734:63;;:89;690:16205;;-1:-1:-1;;;;;;;;;;;690:16205:120;1896:17;;;:::i;:::-;690:16205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1946:53;;690:16205;;;1946:53;690:16205;;1923:20;;690:16205;;-1:-1:-1;;;;;;690:16205:120;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2009:25;;;690:16205;;-1:-1:-1;;690:16205:120;;;;;;;:::i;:::-;;674:18:122;690:16205:120;;;;;;:::i;:::-;447:13:122;690:16205:120;;4128:60:122;690:16205:120;2107:22;;;690:16205;;-1:-1:-1;;;;;;690:16205:120;;;;;;;;;;;;;;:::i;:::-;577:4:122;;;2194:47:120;577:4:122;2175:16:120;;;690:16205;577:4:122;;;690:16205:120;1512:15;690:16205;;;;:::i;:::-;2310:37;;2293:85;:::i;:::-;5066:101:25;;690:16205:120;;;5066:101:25;690:16205:120;5142:14:25;690:16205:120;-1:-1:-1;;;690:16205:120;-1:-1:-1;;;;;;;;;;;690:16205:120;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;5142:14:25;690:16205:120;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;4979:67:25;-1:-1:-1;;690:16205:120;;;-1:-1:-1;;;;;;;;;;;690:16205:120;4979:67:25;;;4851:91;-1:-1:-1;;;4908:23:25;;690:16205:120;6498:23:25;4908;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;;690:16205:120;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;690:16205:120;9344:29;690:16205;9344:29;;;690:16205;;;;9326:15;:47;:15;;:47;:::i;:::-;9377:16;;;;690:16205;9325:72;690:16205;;;;;;;9416:19;690:16205;9416:19;;690:16205;;9344:29;690:16205;;;;;;;9416:42;;690:16205;;9571:42;;;;:::i;:::-;690:16205;;;;;;;9650:40;9665:25;;;690:16205;9650:40;;:::i;:::-;9326:15;9631:59;690:16205;;9818:34;;;:::i;:::-;9326:15;;9870:28;;;690:16205;9870:46;690:16205;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3015:60:122;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;3015:60:122;690:16205:120;10079:88;690:16205;;;;;;3015:60:122;;;;;;;:::i;:::-;690:16205:120;3005:71:122;;690:16205:120;;;10121:32;;690:16205;;;;10121:32;;;690:16205;10121:32;;:::i;:::-;690:16205;10111:43;;10079:88;;:::i;:::-;690:16205;;;10254:66;10284:21;10336:40;10284:21;690:16205;10284:21;;690:16205;10284:21;;:::i;:::-;690:16205;;;:::i;:::-;10254:66;;:::i;:::-;690:16205;;;;;10336:40;690:16205;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;9344:29;690:16205;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;7039:36;-1:-1:-1;;;;;;;;;;;690:16205:120;7039:36;690:16205;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;:::i;:::-;6529:31;-1:-1:-1;;;;;;;;;;;690:16205:120;6529:31;:43;690:16205;;;;;;-1:-1:-1;690:16205:120;;;;;-1:-1:-1;690:16205:120;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;7590:26;;;690:16205;;7580:37;7636:25;;;690:16205;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;4491:35;;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;5877:25;-1:-1:-1;;;;;;;;;;;690:16205:120;5877:25;-1:-1:-1;;;;;690:16205:120;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;690:16205:120;;;;6356:19;6291:13;6356:19;;6286:120;6306:20;;;;;;690:16205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;6328:3;6382:12;;;;;:::i;:::-;690:16205;;;;;;;;;;;;6347:48;;;;:::i;:::-;690:16205;;;;;;;;;6291:13;;690:16205;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;690:16205:120;;-1:-1:-1;;;;;;690:16205:120;;;;;;;-1:-1:-1;;;;;690:16205:120;3975:40:24;690:16205:120;;3975:40:24;690:16205:120;;;;;;;;;;;;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;6431:44:25;;;;690:16205:120;6427:105:25;;690:16205:120;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;;;;:::i;:::-;;;;;;;;;;;2303:62:24;;:::i;:::-;690:16205:120;16763:27;;-1:-1:-1;;690:16205:120;;;;;;;;;;6656:20:25;690:16205:120;;;16744:52;;;;690:16205;;;16744:52;;;;;;;:::i;:::-;690:16205;;;;16734:63;;:89;690:16205;;-1:-1:-1;;;;;;;;;;;690:16205:120;2673:17;;:::i;:::-;690:16205;;;;6593:4:25;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;2842:23;;690:16205;2816:23;;690:16205;;;;;;;3012:28;;690:16205;3012:28;;;690:16205;;3012:28;2942;;690:16205;;;;;;;;;3350:140;6593:4:25;3422:36:120;;;:::i;:::-;:41;690:16205;3465:15;690:16205;;:::i;:::-;3380:40;;;3350:140;:::i;:::-;3587:25;;;;3559;;690:16205;;;;;;;3692:19;;;;;;3670;;690:16205;;;;;;;;;;;-1:-1:-1;;;690:16205:120;-1:-1:-1;;;;;;;;;;;690:16205:120;;-1:-1:-1;;;;;;;;;;;690:16205:120;;2446:1;690:16205;;6656:20:25;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;-1:-1:-1;;;;;690:16205:120;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;-1:-1:-1;;;;;;;690:16205:120;;;;;;;-1:-1:-1;;;;;;;690:16205:120;;;;;;;;;;;;;-1:-1:-1;;;;;;690:16205:120;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;-1:-1:-1;;;690:16205:120;;;;;;;;6427:105:25;-1:-1:-1;;;6498:23:25;;690:16205:120;6498:23:25;;6431:44;690:16205:120;2446:1;-1:-1:-1;;;;;690:16205:120;;6450:25:25;;6431:44;;690:16205:120;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;4373:35;;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;8535:30;690:16205;;;:::i;:::-;-1:-1:-1;;;;;690:16205:120;;8535:30;:::i;:::-;690:16205;8576:50;;;;;690:16205;;;;;;8576:50;;8603:10;690:16205;8576:50;;690:16205;;;;;;;8576:50;;;;;;;;;;;;690:16205;8576:50;;;690:16205;;;;;;;;8576:50;690:16205;8576:50;;;:::i;:::-;690:16205;8576:50;;;690:16205;;;;;;;;;8576:50;690:16205;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;690:16205:120;;7308:23;690:16205;;-1:-1:-1;;;;;;690:16205:120;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;;;;;;;;;;;;:::i;:::-;7879:16;;;;;:36;;;690:16205;;;;8133:19;-1:-1:-1;;;;;;;;;;;690:16205:120;7994:107;690:16205;;8002:38;;7994:107;:::i;:::-;8133:19;690:16205;;;;;;;;;;;;;;;;;;;;;8368:45;690:16205;;;;;;;;;;;8318:34;690:16205;;;;;;;;;;;;;;;;;8368:45;690:16205;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;7879:36;7899:11;690:16205;7899:11;:16;;7879:36;;690:16205;;;;;;-1:-1:-1;;690:16205:120;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;:::i;:::-;3321:69:57;;637:66:54;3321:69:57;1413:93:54;;1624:4;637:66;3550:68:57;-1:-1:-1;;;;;;;;;;;690:16205:120;;11930:107;690:16205;;11938:38;;11930:107;:::i;:::-;690:16205;;12094:262;12144:3;12114:28;;;;;;690:16205;;;;;;;;;;;;;;;;;;;13911:27;;;;690:16205;;13947:39;;690:16205;13911:75;690:16205;;14068:58;690:16205;14092:33;;690:16205;14068:58;:::i;:::-;690:16205;;;14386:26;;;;;;;690:16205;14386:26;;;;;:::i;:::-;690:16205;;;;;;;:::i;:::-;;;577:4:122;;690:16205:120;14339:74;;;;690:16205;;;13911:27;;;690:16205;;;;;;;;;;;;;14483:28;;;;;;:::i;:::-;14994:30;;;690:16205;15040:13;690:16205;15035:592;15080:3;15055:23;;;;;;690:16205;;;;;;;;;;;;;;;;;;;15226:18;;;;:::i;:::-;-1:-1:-1;;;;;690:16205:120;;;;;15197:28;;;690:16205;;;;;;15197:53;690:16205;;15343:32;;;690:16205;;;-1:-1:-1;;;;;690:16205:120;;15386:18;690:16205;15386:18;:::i;:::-;15406:25;;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;-1:-1:-1;;;15330:102:120;;-1:-1:-1;;;;;690:16205:120;;;;15330:102;;690:16205;;;;;;;;;;15330:102;;690:16205;;;;15330:102;;;;;;;;15080:3;-1:-1:-1;;;;;;15480:18:120;690:16205;15480:18;:::i;:::-;690:16205;;-1:-1:-1;;;15472:62:120;;690:16205;;15472:62;;690:16205;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;-1:-1:-1;;;;;690:16205:120;;;:::i;:::-;;;;;;;;;;15330:102;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;690:16205:120;;14483:28;690:16205;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;;;;15472:62;;;;;;;;;690:16205;15472:62;690:16205;15472:62;;;;;;;;;;690:16205;15472:62;;;690:16205;15569:47;;;1624:4:54;15569:47:120;;:::i;:::-;15080:3;15040:13;;;;;;;690:16205;;15040:13;;;;15472:62;;;690:16205;15472:62;;;;;;;;;690:16205;15472:62;;;:::i;:::-;;;690:16205;;;;;1624:4:54;15472:62:120;;;;;-1:-1:-1;15472:62:120;;690:16205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;14483:28;690:16205;;;:::i;:::-;;;;;;;;;;14483:28;690:16205;;;;;;;;;;;;;;;;;;;;;1624:4:54;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1624:4:54;690:16205:120;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;:::i;:::-;;;;;;;;;;;;;;15330:102;690:16205;15330:102;;;;;;;;;690:16205;15330:102;;;:::i;:::-;;;690:16205;;;;;;;;;;15330:102;690:16205;;;;15330:102;;;-1:-1:-1;15330:102:120;;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;15330:102;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;15055:23;;;;;;;;;1624:4:54;15055:23:120;;;;12270:75;15055:23;690:16205;;;;;15644:28;690:16205;14528:37;690:16205;;;;;;;14528:37;14656:26;690:16205;14386:26;;14656;:::i;:::-;690:16205;;;;3357:98:122;690:16205:120;3357:98:122;;690:16205:120;;;;;;;;;;;;;;;;;13947:39;;690:16205;;;;;14092:33;690:16205;;;;;;;;;;3357:98:122;;;;;;:::i;12270:75:120:-;12099:13;;690:16205;;12099:13;;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;15330:102;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;15330:102;690:16205;;;-1:-1:-1;;;690:16205:120;;;;;;;12114:28;12387:79;12114:28;;;12366:156;12114:28;690:16205;;;;;12419:33;12387:79;;:::i;12366:156::-;690:16205;637:66:54;3550:68:57;690:16205:120;1413:93:54;1465:30;;;690:16205:120;1465:30:54;690:16205:120;;1465:30:54;690:16205:120;;;;;;-1:-1:-1;;690:16205:120;;;;;;7166:42;-1:-1:-1;;;;;;;;;;;690:16205:120;7166:42;690:16205;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;690:16205:120;;;;;;:::o;:::-;;;-1:-1:-1;;;;;690:16205:120;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;:::o;:::-;;;;-1:-1:-1;690:16205:120;;;;;-1:-1:-1;690:16205:120;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;690:16205:120;;-1:-1:-1;690:16205:120;;-1:-1:-1;690:16205:120;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;-1:-1:-1;690:16205:120;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;690:16205:120;;;;;;;:::o;:::-;;-1:-1:-1;;;;;690:16205:120;;;;;;;:::o;4539:375::-;4676:36;-1:-1:-1;;;;;;;;;;;690:16205:120;4676:36;:::i;:::-;4728:13;690:16205;4743:22;;;;;;4896:11;;;;690:16205;4539:375;:::o;4767:3::-;4814:14;;;;;;:::i;:::-;-1:-1:-1;;;;;690:16205:120;-1:-1:-1;690:16205:120;;;;;;;;;;;;;4790:39;4786:90;;690:16205;;4728:13;;4786:90;4849:12;;;;690:16205;4849:12;:::o;690:16205::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;690:16205:120;;;;;;;:::o;3405:215:24:-;-1:-1:-1;;;;;690:16205:120;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;690:16205:120;;-1:-1:-1;;;;;;690:16205:120;;;;;;;-1:-1:-1;;;;;690:16205:120;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;690:16205:120;;3509:1:24;3534:31;690:16205:120;;;;;;;;;;:::o;5229:897:122:-;;;;5508:97;5437:28;;;:::i;:::-;5528:15;690:16205:120;5552:25:122;5528:15;;;690:16205:120;5552:25:122;;690:16205:120;;5508:97:122;;:::i;:::-;690:16205:120;;;5680:27:122;;;;690:16205:120;;;5680:27:122;;;;690:16205:120;5680:27:122;;:::i;:::-;2831:45:59;690:16205:120;;;2831:45:59;;5680:27:122;2831:45:59;;690:16205:120;;;;;;5642:4:122;690:16205:120;;;;;;;;;;;;;;;;;;;;2831:45:59;;690:16205:120;;2831:45:59;;;;;;:::i;:::-;690:16205:120;2821:56:59;;690:16205:120;5761:13:122;690:16205:120;5800:3:122;5776:22;;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;5680:27:122;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;690:16205:120;5680:27:122;690:16205:120;;;:::i;:::-;;;;5680:27:122;690:16205:120;;;;;;;;;5680:27:122;690:16205:120;3927:8:58;690:16205:120;3871:27:58;690:16205:120;;;;;;;;;3871:27:58;;:::i;:::-;3927:8;;;;;:::i;:::-;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;5936:151:122;;5800:3;5528:15;690:16205:120;5761:13:122;;5936:151;5989:17;;;;:::i;:::-;:30;;;;5936:151;5985:88;6043:11;;;;;;;5528:15;6043:11;:::o;5776:22::-;;;;;;;;690:16205:120;5229:897:122;:::o;2658:162:24:-;-1:-1:-1;;;;;;;;;;;690:16205:120;-1:-1:-1;;;;;690:16205:120;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;690:16205:120;;-1:-1:-1;2763:40:24;12571:887:120;-1:-1:-1;;;;;;;;;;;690:16205:120;;12707:107;690:16205;;12715:38;;12707:107;:::i;:::-;690:16205;-1:-1:-1;690:16205:120;12846:19;;;690:16205;;;;-1:-1:-1;690:16205:120;;;;;;;;;12884:24;12846:62;690:16205;;2908:43:37;13343:33:120;690:16205;;;;;;13197:32;;;690:16205;;;;;;13241:32;;690:16205;;;;;;;;;13241:32;;;;;;:::i;:::-;690:16205;13231:43;;2908::37;;:::i;:::-;13286:37:120;690:16205;;;;;;;-1:-1:-1;690:16205:120;13286:28;;;690:16205;;;;-1:-1:-1;690:16205:120;;13343:33;:35;690:16205;;13343:35;:::i;:::-;690:16205;;;;-1:-1:-1;;;;;690:16205:120;;;;13394:32;;690:16205;;13394:32;12571:887;:::o;690:16205::-;;;-1:-1:-1;;;690:16205:120;;;;;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;4584:169:122;-1:-1:-1;690:16205:120;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;577:4:122;;690:16205:120;4707:12:122;690:16205:120;;4671:75:122;;690:16205:120;;4729:15:122;690:16205:120;;4671:75:122;;690:16205:120;4584:169:122;:::o;6132:318::-;6251:47;;;:::i;:::-;;;;6321:37;;6314:44;:::o;6247:197::-;6396:37;;6389:44;:::o;15685:618:120:-;;15873:1;15905:3;690:16205;15880:16;;690:16205;;;15876:27;;;;;15873:1;690:16205;;;;;;;;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;-1:-1:-1;;690:16205:120;;;;;15861:13;;15876:27;;;15873:1;16080:3;690:16205;;16053:25;;;;;690:16205;;-1:-1:-1;;;;;16120:17:120;690:16205;16120:17;;:::i;:::-;690:16205;;;;;;;;-1:-1:-1;690:16205:120;;;;;-1:-1:-1;690:16205:120;;;;;;;;;;;16038:13;;16053:25;;690:16205;16205:16;;690:16205;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;;;;16033:163;690:16205;;;;15873:1;690:16205;;15873:1;690:16205;15873:1;690:16205;;;;;;16248:28;;;;;;690:16205;15685:618::o;690:16205::-;;;-1:-1:-1;;;;;690:16205:120;;;;;;;;;;;;;;;;15873:1;690:16205;;;15873:1;690:16205;;;;;;;;;;;;;;;;15873:1;690:16205;;;;;;6456:319:122;6576:47;;;:::i;:::-;;;;6646:37;;6639:44;:::o;6572:197::-;6721:37;;6714:44;:::o;7908:285::-;690:16205:120;8123:47:122;7908:285;690:16205:120;8123:47:122;;:::i;:::-;8173:4;690:16205:120;;;;;;;8181:5:122;690:16205:120;;7908:285:122;:::o;3478:340::-;;690:16205:120;;3576:12:122;690:16205:120;3576:12:122;690:16205:120;;;;3559:230:122;3594:5;;;3559:230;-1:-1:-1;690:16205:120;;-1:-1:-1;3478:340:122:o;3601:3::-;3634:12;;3664:11;;;;;-1:-1:-1;3591:1:122;;-1:-1:-1;;3695:11:122:o;3660:119::-;3731:8;3727:52;;690:16205:120;;;;-1:-1:-1;;690:16205:120;;3564:28:122;;3727:52;3759:5;;690:16205:120;;;-1:-1:-1;;;;;690:16205:120;;;;;;:::o;6998:904:122:-;7248:54;7170;;;690:16205:120;7248:54:122;;690:16205:120;7376:10:122;;;690:16205:120;;7452:9:122;;;7131:15;;-1:-1:-1;7484:9:122;;;7131:15;;-1:-1:-1;7516:9:122;7628:14;;;;;6998:904;690:16205:120;;;7865:30:122;;;7858:37;;6998:904;:::o;7865:30::-;7880:14;;6998:904;-1:-1:-1;6998:904:122:o;690:16205:120:-;;;-1:-1:-1;;;690:16205:120;;;7248:37:122;690:16205:120;;;;;;;;;;;;;-1:-1:-1;;;690:16205:120;;;;;;;7628:14:122;;;;;690:16205:120;;;;;;;;;;7248:37:122;690:16205:120;;;;;;;;;;;;;;7084:141:25;690:16205:120;-1:-1:-1;;;;;;;;;;;690:16205:120;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:25;;-1:-1:-1;7191:17:25;2129:778:58;690:16205:120;;;2129:778:58;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:58;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;7280:532::-;690:16205:120;;;;;;7366:29:58;;;7411:7;;:::o;7362:444::-;690:16205:120;7462:38:58;;690:16205:120;;7523:23:58;;;7375:20;7523:23;690:16205:120;7375:20:58;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;690:16205:120;;;7375:20:58;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;690:16205:120;;;7375:20:58;7763:32;3384:974:37;3673:585;3384:974;3673:585;;;;;;;-1:-1:-1;3673:585:37;;;;;;;;-1:-1:-1;3673:585:37;690:16205:120;-1:-1:-1;;;;;690:16205:120;;4271:22:37;4267:85;;3384:974::o;4267:85::-;4316:25;;;-1:-1:-1;4316:25:37;;-1:-1:-1;4316:25:37;5203:1551:58;;;6283:66;6270:79;;6266:164;;690:16205:120;;;;;;-1:-1:-1;690:16205:120;;;;;;;;;;;;;;;;;;;6541:24:58;;;;;;;;;-1:-1:-1;6541:24:58;-1:-1:-1;;;;;690:16205:120;;6579:20:58;6575:113;;6698:49;-1:-1:-1;6698:49:58;-1:-1:-1;5203:1551:58;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:58;6541:24;6615:62;-1:-1:-1;6615:62:58;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o","linkReferences":{}},"methodIdentifiers":{"areValidators(address[])":"8f381dbe","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBlocks((bytes32,uint48,bytes32,bytes32,(address,bytes32,address,uint128,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4))[])[])[],bytes[])":"01b1d156","commitCodes((bytes32,bool)[],bytes[])":"e97d3eb3","commitValidators((address[],uint256),bytes[])":"aaf0fe6a","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32)":"527de0f9","createProgramWithDecoder(address,bytes32,bytes32)":"e7006a74","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,address[])":"b1669a33","isValidator(address)":"facd743b","latestCommittedBlockHash()":"c9f16a11","lookupGenesisHash()":"8b1edf1e","mirrorImpl()":"e6fabc09","mirrorProxyImpl()":"65ecfea2","owner()":"8da5cb5b","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,bytes32)":"1c149d8a","setMirror(address)":"3d43b418","signingThresholdPercentage()":"efd81abc","transferOwnership(address)":"f2fde38b","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BlockCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"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\":\"threshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"name\":\"ComputationSettingsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTimestamp\",\"type\":\"uint256\"}],\"name\":\"NextEraValidatorsCommitted\",\"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\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"areValidators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_codesIds\",\"type\":\"bytes32[]\"}],\"name\":\"codesStates\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"previousCommittedBlock\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"predecessorBlock\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"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 Gear.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 Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BlockCommitment[]\",\"name\":\"_blockCommitments\",\"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 Gear.CodeCommitment[]\",\"name\":\"_codeCommitments\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitCodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment\",\"name\":\"commitment\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_decoderImpl\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"createProgramWithDecoder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirrorProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorProxyImpl\",\"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\":\"_programId\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_programsIds\",\"type\":\"address[]\"}],\"name\":\"programsCodeIds\",\"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\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdPercentage\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"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\":{\"BlockCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the block outcome has been committed.\",\"params\":{\"hash\":\"The block hash that was \\\"finalized\\\" in relation to the necessary transitions.\"}},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"This is an *informational* event, signaling the results of code validation.\",\"params\":{\"codeId\":\"The ID of the code that was validated.\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32,bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"blobTxHash\":\"The transaction hash that contains the WASM blob. Set to zero if applied to the current transaction.\",\"codeId\":\"The expected code ID of the applied WASM blob, represented as a Blake2 hash.\"}},\"ComputationSettingsChanged(uint64,uint128)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to change the computation settings. Users and program authors may want to adjust their practices, while validators need to apply the changes internally starting from the next block.\",\"params\":{\"threshold\":\"The amount of Gear gas initially allocated for free to allow the program to decide if it wants to process the incoming message.\",\"wvaraPerSecond\":\"The amount of WVara to be charged from the program's execution balance per second of computation.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"NextEraValidatorsCommitted(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"startTimestamp\":\"timestamp when the new era starts.\"}},\"ProgramCreated(address,bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling the creation of a new program and its Ethereum mirror. Validators need to initialize it with a zeroed hash state internally.\",\"params\":{\"actorId\":\"ID of the actor that was created. It is accessible inside the co-processor and on Ethereum by this identifier.\",\"codeId\":\"The code ID of the WASM implementation of the created program.\"}},\"StorageSlotChanged()\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to wipe the router state, rendering all previously existing codes and programs ineligible. Validators need to wipe their databases immediately.\"}},\"kind\":\"dev\",\"methods\":{\"commitValidators((address[],uint256),bytes[])\":{\"details\":\"Set validators for the next era.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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\":{\"events\":{\"BlockCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its CodeStatus changed.\"},\"CodeValidationRequested(bytes32,bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"NextEraValidatorsCommitted(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"StorageSlotChanged()\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"}},\"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/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"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\":\"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0\",\"dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0x1899463c32e174ebde503846dd1b40ddb6d6ba15e21d68b21b8151e97af35a5e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c91227968491548c006b70f1de87bb1b67a83d72d05faf19ba09ddfe27de3f6\",\"dweb:/ipfs/QmeXXQd2Wk1Jp1rvbysD1hZb3QVXR3sPxkU8UKBfwrKmkm\"]},\"src/IMirrorDecoder.sol\":{\"keccak256\":\"0xdc8493f52a809ac9470823d4c13f329845a10aa90a73bddd791137f3bd8849ac\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fb625d21f8554f1a973a4ace5b5db4cc696b71605592a22eab44576d020ff70d\",\"dweb:/ipfs/Qma98jtpbJ4zYoBHwsCCUtgkeEVZsPFYUZiGwnPSpKsdqx\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b\",\"dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f\",\"dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf\"]},\"src/Router.sol\":{\"keccak256\":\"0xeb1eb08e258df76bce34b94392f4276b38849b8c94f9627081c6ae0a17371c11\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dc92bef1184e6377a33bfba7faa9bdca8187ecfe3cbf07024f46f8a171e47739\",\"dweb:/ipfs/QmRqups2TbDu2Gm7CKyPvAAEqsgKGWPekpA4giHKaG3PXp\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831\",\"dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"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":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BlockCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","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":"threshold","type":"uint64","indexed":false},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128","indexed":false}],"type":"event","name":"ComputationSettingsChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"startTimestamp","type":"uint256","indexed":false}],"type":"event","name":"NextEraValidatorsCommitted","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":[{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"view","type":"function","name":"areValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum Gear.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32[]","name":"_codesIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"codesStates","outputs":[{"internalType":"enum Gear.CodeState[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"struct Gear.BlockCommitment[]","name":"_blockCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBlock","type":"bytes32"},{"internalType":"bytes32","name":"predecessorBlock","type":"bytes32"},{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"struct Gear.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 Gear.Message[]","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 Gear.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 Gear.CodeCommitment[]","name":"_codeCommitments","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":"struct Gear.ValidatorsCommitment","name":"commitment","type":"tuple","components":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitValidators"},{"inputs":[],"stateMutability":"view","type":"function","name":"computeSettings","outputs":[{"internalType":"struct Gear.ComputationSettings","name":"","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_decoderImpl","type":"address"},{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"}],"stateMutability":"nonpayable","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":"genesisTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_mirrorProxy","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_validator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorProxyImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_programId","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"_programsIds","type":"address[]"}],"stateMutability":"view","type":"function","name":"programsCodeIds","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":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdPercentage","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"commitValidators((address[],uint256),bytes[])":{"details":"Set validators for the next era."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"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/","symbiotic-core/=lib/symbiotic-core/"],"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":"0xf55d01dac75cffdabec6833a79bf3be0c108fc0db10e273daf7adfd3e9e59dae","urls":["bzz-raw://540002a50a2a1a2b9dafffb976178e55adbf8d3a28db462c69f996921479c6b0","dweb:/ipfs/QmQNAFyMf2FW3U1giM4Yej3zzd1pnxMtAA5GoADj4hTYYD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0x1899463c32e174ebde503846dd1b40ddb6d6ba15e21d68b21b8151e97af35a5e","urls":["bzz-raw://3c91227968491548c006b70f1de87bb1b67a83d72d05faf19ba09ddfe27de3f6","dweb:/ipfs/QmeXXQd2Wk1Jp1rvbysD1hZb3QVXR3sPxkU8UKBfwrKmkm"],"license":"UNLICENSED"},"src/IMirrorDecoder.sol":{"keccak256":"0xdc8493f52a809ac9470823d4c13f329845a10aa90a73bddd791137f3bd8849ac","urls":["bzz-raw://fb625d21f8554f1a973a4ace5b5db4cc696b71605592a22eab44576d020ff70d","dweb:/ipfs/Qma98jtpbJ4zYoBHwsCCUtgkeEVZsPFYUZiGwnPSpKsdqx"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x5f6e8be4d5738e41071deb350bd50279df85b4df544d6abe87faaf5ef6a399cf","urls":["bzz-raw://3c8df2e9d20982b1f25e3be114acc735e597ef1cecd8b9f4528080ca982e618b","dweb:/ipfs/QmRZQrTE6o5y5KWdRzE4Usyf3tdFjqs1CGu8kad2PFWEFW"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0xfc2f9955b1d8f74a98a087b490a03b86933c423eb58b840f1e3eb4cd58eac175","urls":["bzz-raw://5942f66657786636ddb832587404810bf65fc757e12ddaa07393a0b3f885840f","dweb:/ipfs/QmTEP15EF9zrA7bCj8cesNd8QyUPHM3XgtKJecCUjsA5Jf"],"license":"UNLICENSED"},"src/Router.sol":{"keccak256":"0xeb1eb08e258df76bce34b94392f4276b38849b8c94f9627081c6ae0a17371c11","urls":["bzz-raw://dc92bef1184e6377a33bfba7faa9bdca8187ecfe3cbf07024f46f8a171e47739","dweb:/ipfs/QmRqups2TbDu2Gm7CKyPvAAEqsgKGWPekpA4giHKaG3PXp"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xa95dec92e5eadb21249fdec7b3246d666e2fbaf6d994030bb75176c642fa15de","urls":["bzz-raw://c05bd2a8dacd478bea5797e034f782d8859dcf9a047d1a8250f71f587d9b7831","dweb:/ipfs/QmSTqy7XvzeDpAqtVkSXXCwtyXspe2zkFqVeuDamguoqRF"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":69434,"exportedSymbols":{"Clones":[42512],"Gear":[70148],"IMirror":[65178],"IMirrorDecoder":[65215],"IRouter":[65486],"IWrappedVara":[65497],"OwnableUpgradeable":[40332],"ReentrancyGuardTransient":[44307],"Router":[69433],"StorageSlot":[44431]},"nodeType":"SourceUnit","src":"39:16857:120","nodes":[{"id":67881,"nodeType":"PragmaDirective","src":"39:24:120","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":67883,"nodeType":"ImportDirective","src":"65:64:120","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Clones.sol","file":"@openzeppelin/contracts/proxy/Clones.sol","nameLocation":"-1:-1:-1","scope":69434,"sourceUnit":42513,"symbolAliases":[{"foreign":{"id":67882,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42512,"src":"73:6:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67885,"nodeType":"ImportDirective","src":"130:42:120","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"./libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":69434,"sourceUnit":70149,"symbolAliases":[{"foreign":{"id":67884,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"138:4:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67887,"nodeType":"ImportDirective","src":"173:38:120","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":69434,"sourceUnit":65179,"symbolAliases":[{"foreign":{"id":67886,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65178,"src":"181:7:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67889,"nodeType":"ImportDirective","src":"212:52:120","nodes":[],"absolutePath":"src/IMirrorDecoder.sol","file":"./IMirrorDecoder.sol","nameLocation":"-1:-1:-1","scope":69434,"sourceUnit":65216,"symbolAliases":[{"foreign":{"id":67888,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65215,"src":"220:14:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67891,"nodeType":"ImportDirective","src":"265:38:120","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":69434,"sourceUnit":65487,"symbolAliases":[{"foreign":{"id":67890,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65486,"src":"273:7:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67893,"nodeType":"ImportDirective","src":"304:48:120","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":69434,"sourceUnit":65498,"symbolAliases":[{"foreign":{"id":67892,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65497,"src":"312:12:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67895,"nodeType":"ImportDirective","src":"353:101:120","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":69434,"sourceUnit":40333,"symbolAliases":[{"foreign":{"id":67894,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40332,"src":"361:18:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67897,"nodeType":"ImportDirective","src":"455:100:120","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":69434,"sourceUnit":44308,"symbolAliases":[{"foreign":{"id":67896,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44307,"src":"463:24:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67899,"nodeType":"ImportDirective","src":"556:74:120","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":69434,"sourceUnit":44432,"symbolAliases":[{"foreign":{"id":67898,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44431,"src":"564:11:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69433,"nodeType":"ContractDefinition","src":"690:16205:120","nodes":[{"id":67908,"nodeType":"VariableDeclaration","src":"871:106:120","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"896:12:120","scope":69433,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"871:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":67907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"911:66:120","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":67916,"nodeType":"FunctionDefinition","src":"1037:53:120","nodes":[],"body":{"id":67915,"nodeType":"Block","src":"1051:39:120","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":67912,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40554,"src":"1061:20:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":67913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1061:22:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67914,"nodeType":"ExpressionStatement","src":"1061:22:120"}]},"documentation":{"id":67909,"nodeType":"StructuredDocumentation","src":"984:48:120","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":67910,"nodeType":"ParameterList","parameters":[],"src":"1048:2:120"},"returnParameters":{"id":67911,"nodeType":"ParameterList","parameters":[],"src":"1051:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":68028,"nodeType":"FunctionDefinition","src":"1096:1289:120","nodes":[],"body":{"id":68027,"nodeType":"Block","src":"1355:1030:120","nodes":[],"statements":[{"expression":{"arguments":[{"id":67937,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67918,"src":"1380:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67936,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40192,"src":"1365:14:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":67938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:22:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67939,"nodeType":"ExpressionStatement","src":"1365:22:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":67941,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1512:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":67942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1518:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"1512:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":67943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1530:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1512:19:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63757272656e742074696d657374616d70206d7573742062652067726561746572207468616e2030","id":67945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1533:42:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_010a1bc0b39cf96528374edb07c79052766d9dbc6322e9b022f045d426584476","typeString":"literal_string \"current timestamp must be greater than 0\""},"value":"current timestamp must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_010a1bc0b39cf96528374edb07c79052766d9dbc6322e9b022f045d426584476","typeString":"literal_string \"current timestamp must be greater than 0\""}],"id":67940,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1504:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1504:72:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67947,"nodeType":"ExpressionStatement","src":"1504:72:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67949,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67928,"src":"1594:17:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":67950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1614:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1594:21:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"656c656374696f6e206475726174696f6e206d7573742062652067726561746572207468616e2030","id":67952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1617:42:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_22f70577ade1b9c6246323ca38a4066fa51456aa417f5a924af9df8299c24ade","typeString":"literal_string \"election duration must be greater than 0\""},"value":"election duration must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_22f70577ade1b9c6246323ca38a4066fa51456aa417f5a924af9df8299c24ade","typeString":"literal_string \"election duration must be greater than 0\""}],"id":67948,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1586:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1586:74:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67954,"nodeType":"ExpressionStatement","src":"1586:74:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":67958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":67956,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67926,"src":"1678:12:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":67957,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67928,"src":"1693:17:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1678:32:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"657261206475726174696f6e206d7573742062652067726561746572207468616e20656c656374696f6e206475726174696f6e","id":67959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1712:53:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_07fe5d445d3047744132d2b933786d7532224c888580fad1eb3bf2fab68d889a","typeString":"literal_string \"era duration must be greater than election duration\""},"value":"era duration must be greater than election duration"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_07fe5d445d3047744132d2b933786d7532224c888580fad1eb3bf2fab68d889a","typeString":"literal_string \"era duration must be greater than election duration\""}],"id":67955,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1670:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1670:96:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67961,"nodeType":"ExpressionStatement","src":"1670:96:120"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":67963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1793:25:120","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":67962,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69432,"src":"1777:15:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":67964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1777:42:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67965,"nodeType":"ExpressionStatement","src":"1777:42:120"},{"assignments":[67968],"declarations":[{"constant":false,"id":67968,"mutability":"mutable","name":"router","nameLocation":"1845:6:120","nodeType":"VariableDeclaration","scope":68027,"src":"1829:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":67967,"nodeType":"UserDefinedTypeName","pathNode":{"id":67966,"name":"Storage","nameLocations":["1829:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"1829:7:120"},"referencedDeclaration":65258,"src":"1829:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":67971,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":67969,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"1854:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":67970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1854:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1829:34:120"},{"expression":{"id":67978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67972,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67968,"src":"1874:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1881:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"1874:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":67975,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"1896:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":67976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1901:10:120","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":69868,"src":"1896:15:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$69625_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":67977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1896:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"1874:39:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":67979,"nodeType":"ExpressionStatement","src":"1874:39:120"},{"expression":{"id":67989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":67980,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67968,"src":"1923:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1930:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"1923:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":67985,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67920,"src":"1963:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67986,"name":"_mirrorProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67922,"src":"1972:12:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":67987,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67924,"src":"1986:12:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":67983,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"1946:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":67984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1951:11:120","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":69580,"src":"1946:16:120","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$69580_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":67988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1946:53:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"1923:76:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":67990,"nodeType":"ExpressionStatement","src":"1923:76:120"},{"expression":{"id":67998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":67991,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67968,"src":"2009:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":67994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2016:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"2009:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69687_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":67995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2035:26:120","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":69680,"src":"2009:52:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":67996,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"2064:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":67997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2069:28:120","memberName":"SIGNING_THRESHOLD_PERCENTAGE","nodeType":"MemberAccess","referencedDeclaration":69560,"src":"2064:33:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2009:88:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":67999,"nodeType":"ExpressionStatement","src":"2009:88:120"},{"expression":{"id":68006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":68000,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67968,"src":"2107:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2114:15:120","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":65249,"src":"2107:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69618_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":68003,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"2132:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2137:26:120","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":69815,"src":"2132:31:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$69618_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":68005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:33:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69618_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"2107:58:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69618_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":68007,"nodeType":"ExpressionStatement","src":"2107:58:120"},{"expression":{"id":68016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":68008,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67968,"src":"2175:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2182:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"2175:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69678_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":68013,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67926,"src":"2209:12:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":68014,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67928,"src":"2223:17:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":68011,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"2194:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2199:9:120","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":69678,"src":"2194:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$69678_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":68015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2194:47:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69678_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"2175:66:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69678_storage","typeString":"struct Gear.Timelines storage ref"}},"id":68017,"nodeType":"ExpressionStatement","src":"2175:66:120"},{"expression":{"arguments":[{"expression":{"expression":{"id":68019,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67968,"src":"2310:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2317:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"2310:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69687_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2336:11:120","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":69683,"src":"2310:37:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage","typeString":"struct Gear.Validators storage ref"}},{"id":68022,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67931,"src":"2349:11:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":68023,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2362:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2368:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"2362:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$69573_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68018,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69362,"src":"2293:16:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$69573_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,address[] memory,uint256)"}},"id":68025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2293:85:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68026,"nodeType":"ExpressionStatement","src":"2293:85:120"}]},"functionSelector":"b1669a33","implemented":true,"kind":"function","modifiers":[{"id":67934,"kind":"modifierInvocation","modifierName":{"id":67933,"name":"initializer","nameLocations":["1343:11:120"],"nodeType":"IdentifierPath","referencedDeclaration":40440,"src":"1343:11:120"},"nodeType":"ModifierInvocation","src":"1343:11:120"}],"name":"initialize","nameLocation":"1105:10:120","parameters":{"id":67932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67918,"mutability":"mutable","name":"_owner","nameLocation":"1133:6:120","nodeType":"VariableDeclaration","scope":68028,"src":"1125:14:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67917,"name":"address","nodeType":"ElementaryTypeName","src":"1125:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67920,"mutability":"mutable","name":"_mirror","nameLocation":"1157:7:120","nodeType":"VariableDeclaration","scope":68028,"src":"1149:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67919,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67922,"mutability":"mutable","name":"_mirrorProxy","nameLocation":"1182:12:120","nodeType":"VariableDeclaration","scope":68028,"src":"1174:20:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67921,"name":"address","nodeType":"ElementaryTypeName","src":"1174:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67924,"mutability":"mutable","name":"_wrappedVara","nameLocation":"1212:12:120","nodeType":"VariableDeclaration","scope":68028,"src":"1204:20:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67923,"name":"address","nodeType":"ElementaryTypeName","src":"1204:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":67926,"mutability":"mutable","name":"_eraDuration","nameLocation":"1242:12:120","nodeType":"VariableDeclaration","scope":68028,"src":"1234:20:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67925,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67928,"mutability":"mutable","name":"_electionDuration","nameLocation":"1272:17:120","nodeType":"VariableDeclaration","scope":68028,"src":"1264:25:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67927,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67931,"mutability":"mutable","name":"_validators","nameLocation":"1318:11:120","nodeType":"VariableDeclaration","scope":68028,"src":"1299:30:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":67929,"name":"address","nodeType":"ElementaryTypeName","src":"1299:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":67930,"nodeType":"ArrayTypeName","src":"1299:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1115:220:120"},"returnParameters":{"id":67935,"nodeType":"ParameterList","parameters":[],"src":"1355:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":68105,"nodeType":"FunctionDefinition","src":"2391:1409:120","nodes":[],"body":{"id":68104,"nodeType":"Block","src":"2449:1351:120","nodes":[],"statements":[{"assignments":[68038],"declarations":[{"constant":false,"id":68038,"mutability":"mutable","name":"oldRouter","nameLocation":"2475:9:120","nodeType":"VariableDeclaration","scope":68104,"src":"2459:25:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68037,"nodeType":"UserDefinedTypeName","pathNode":{"id":68036,"name":"Storage","nameLocations":["2459:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"2459:7:120"},"referencedDeclaration":65258,"src":"2459:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68041,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68039,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"2487:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2487:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2459:37:120"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":68043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2523:25:120","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":68042,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69432,"src":"2507:15:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":68044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2507:42:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68045,"nodeType":"ExpressionStatement","src":"2507:42:120"},{"assignments":[68048],"declarations":[{"constant":false,"id":68048,"mutability":"mutable","name":"newRouter","nameLocation":"2575:9:120","nodeType":"VariableDeclaration","scope":68104,"src":"2559:25:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68047,"nodeType":"UserDefinedTypeName","pathNode":{"id":68046,"name":"Storage","nameLocations":["2559:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"2559:7:120"},"referencedDeclaration":65258,"src":"2559:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68051,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68049,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"2587:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2587:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2559:37:120"},{"expression":{"id":68058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":68052,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68048,"src":"2648:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2658:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"2648:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":68055,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"2673:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2678:10:120","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":69868,"src":"2673:15:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$69625_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":68057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"2648:42:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68059,"nodeType":"ExpressionStatement","src":"2648:42:120"},{"expression":{"id":68065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":68060,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68048,"src":"2816:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2826:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"2816:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":68063,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68038,"src":"2842:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2852:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"2842:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"src":"2816:49:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":68066,"nodeType":"ExpressionStatement","src":"2816:49:120"},{"expression":{"id":68075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":68067,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68048,"src":"2942:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2952:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"2942:28:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69687_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2971:26:120","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":69680,"src":"2942:55:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":68072,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68038,"src":"3012:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3022:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"3012:28:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69687_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3041:26:120","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":69680,"src":"3012:55:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2942:125:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":68076,"nodeType":"ExpressionStatement","src":"2942:125:120"},{"expression":{"arguments":[{"expression":{"expression":{"id":68078,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68048,"src":"3380:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3390:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"3380:28:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69687_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3409:11:120","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":69683,"src":"3380:40:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage","typeString":"struct Gear.Validators storage ref"}},{"expression":{"arguments":[{"id":68083,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68038,"src":"3448:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68081,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"3422:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3427:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":70014,"src":"3422:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69573_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3422:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3459:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69570,"src":"3422:41:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":68086,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3465:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3471:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"3465:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$69573_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68077,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69362,"src":"3350:16:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$69573_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,address[] memory,uint256)"}},"id":68088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3350:140:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68089,"nodeType":"ExpressionStatement","src":"3350:140:120"},{"expression":{"id":68095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":68090,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68048,"src":"3559:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3569:15:120","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":65249,"src":"3559:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69618_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":68093,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68038,"src":"3587:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3597:15:120","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":65249,"src":"3587:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69618_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"src":"3559:53:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69618_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":68096,"nodeType":"ExpressionStatement","src":"3559:53:120"},{"expression":{"id":68102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":68097,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68048,"src":"3670:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3680:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"3670:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69678_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":68100,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68038,"src":"3692:9:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3702:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"3692:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69678_storage","typeString":"struct Gear.Timelines storage ref"}},"src":"3670:41:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69678_storage","typeString":"struct Gear.Timelines storage ref"}},"id":68103,"nodeType":"ExpressionStatement","src":"3670:41:120"}]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":68031,"kind":"modifierInvocation","modifierName":{"id":68030,"name":"onlyOwner","nameLocations":["2422:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":40227,"src":"2422:9:120"},"nodeType":"ModifierInvocation","src":"2422:9:120"},{"arguments":[{"hexValue":"32","id":68033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2446:1:120","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":68034,"kind":"modifierInvocation","modifierName":{"id":68032,"name":"reinitializer","nameLocations":["2432:13:120"],"nodeType":"IdentifierPath","referencedDeclaration":40487,"src":"2432:13:120"},"nodeType":"ModifierInvocation","src":"2432:16:120"}],"name":"reinitialize","nameLocation":"2400:12:120","parameters":{"id":68029,"nodeType":"ParameterList","parameters":[],"src":"2412:2:120"},"returnParameters":{"id":68035,"nodeType":"ParameterList","parameters":[],"src":"2449:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":68116,"nodeType":"FunctionDefinition","src":"3822:109:120","nodes":[],"body":{"id":68115,"nodeType":"Block","src":"3880:51:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68110,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"3897:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3897:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3907:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"3897:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3920:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69620,"src":"3897:27:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":68109,"id":68114,"nodeType":"Return","src":"3890:34:120"}]},"baseFunctions":[65304],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"3831:16:120","parameters":{"id":68106,"nodeType":"ParameterList","parameters":[],"src":"3847:2:120"},"returnParameters":{"id":68109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68116,"src":"3871:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3871:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3870:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68127,"nodeType":"FunctionDefinition","src":"3937:113:120","nodes":[],"body":{"id":68126,"nodeType":"Block","src":"3994:56:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68121,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"4011:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4011:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4021:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"4011:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4034:9:120","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":69624,"src":"4011:32:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":68120,"id":68125,"nodeType":"Return","src":"4004:39:120"}]},"baseFunctions":[65309],"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"3946:16:120","parameters":{"id":68117,"nodeType":"ParameterList","parameters":[],"src":"3962:2:120"},"returnParameters":{"id":68120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68127,"src":"3986:6:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":68118,"name":"uint48","nodeType":"ElementaryTypeName","src":"3986:6:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3985:8:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68138,"nodeType":"FunctionDefinition","src":"4056:125:120","nodes":[],"body":{"id":68137,"nodeType":"Block","src":"4122:59:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68132,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"4139:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4139:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4149:20:120","memberName":"latestCommittedBlock","nodeType":"MemberAccess","referencedDeclaration":65237,"src":"4139:30:120","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBlockInfo_$69613_storage","typeString":"struct Gear.CommittedBlockInfo storage ref"}},"id":68135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4170:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69610,"src":"4139:35:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":68131,"id":68136,"nodeType":"Return","src":"4132:42:120"}]},"baseFunctions":[65314],"functionSelector":"c9f16a11","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBlockHash","nameLocation":"4065:24:120","parameters":{"id":68128,"nodeType":"ParameterList","parameters":[],"src":"4089:2:120"},"returnParameters":{"id":68131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68130,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68138,"src":"4113:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4113:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4112:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68149,"nodeType":"FunctionDefinition","src":"4187:106:120","nodes":[],"body":{"id":68148,"nodeType":"Block","src":"4239:54:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68143,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"4256:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4256:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4266:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"4256:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":68146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4280:6:120","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":69575,"src":"4256:30:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68142,"id":68147,"nodeType":"Return","src":"4249:37:120"}]},"baseFunctions":[65319],"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"4196:10:120","parameters":{"id":68139,"nodeType":"ParameterList","parameters":[],"src":"4206:2:120"},"returnParameters":{"id":68142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68149,"src":"4230:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68140,"name":"address","nodeType":"ElementaryTypeName","src":"4230:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4229:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68160,"nodeType":"FunctionDefinition","src":"4299:116:120","nodes":[],"body":{"id":68159,"nodeType":"Block","src":"4356:59:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68154,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"4373:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4373:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4383:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"4373:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":68157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4397:11:120","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":69577,"src":"4373:35:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68153,"id":68158,"nodeType":"Return","src":"4366:42:120"}]},"baseFunctions":[65324],"functionSelector":"65ecfea2","implemented":true,"kind":"function","modifiers":[],"name":"mirrorProxyImpl","nameLocation":"4308:15:120","parameters":{"id":68150,"nodeType":"ParameterList","parameters":[],"src":"4323:2:120"},"returnParameters":{"id":68153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68160,"src":"4347:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68151,"name":"address","nodeType":"ElementaryTypeName","src":"4347:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4346:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68171,"nodeType":"FunctionDefinition","src":"4421:112:120","nodes":[],"body":{"id":68170,"nodeType":"Block","src":"4474:59:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68165,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"4491:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4491:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4501:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"4491:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":68168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4515:11:120","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":69579,"src":"4491:35:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68164,"id":68169,"nodeType":"Return","src":"4484:42:120"}]},"baseFunctions":[65329],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"4430:11:120","parameters":{"id":68161,"nodeType":"ParameterList","parameters":[],"src":"4441:2:120"},"returnParameters":{"id":68164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68171,"src":"4465:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68162,"name":"address","nodeType":"ElementaryTypeName","src":"4465:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4464:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68217,"nodeType":"FunctionDefinition","src":"4539:375:120","nodes":[],"body":{"id":68216,"nodeType":"Block","src":"4621:293:120","nodes":[],"statements":[{"assignments":[68183],"declarations":[{"constant":false,"id":68183,"mutability":"mutable","name":"_currentValidators","nameLocation":"4655:18:120","nodeType":"VariableDeclaration","scope":68216,"src":"4631:42:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":68182,"nodeType":"UserDefinedTypeName","pathNode":{"id":68181,"name":"Gear.Validators","nameLocations":["4631:4:120","4636:10:120"],"nodeType":"IdentifierPath","referencedDeclaration":69573,"src":"4631:15:120"},"referencedDeclaration":69573,"src":"4631:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":68189,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":68186,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"4702:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4702:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68184,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"4676:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4681:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":70014,"src":"4676:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69573_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4676:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4631:81:120"},{"body":{"id":68212,"nodeType":"Block","src":"4772:114:120","statements":[{"condition":{"id":68207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4790:39:120","subExpression":{"baseExpression":{"expression":{"id":68201,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68183,"src":"4791:18:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4810:3:120","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":69567,"src":"4791:22:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":68206,"indexExpression":{"baseExpression":{"id":68203,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68174,"src":"4814:11:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":68205,"indexExpression":{"id":68204,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68191,"src":"4826:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4814:14:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4791:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68211,"nodeType":"IfStatement","src":"4786:90:120","trueBody":{"id":68210,"nodeType":"Block","src":"4831:45:120","statements":[{"expression":{"hexValue":"66616c7365","id":68208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4856:5:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":68178,"id":68209,"nodeType":"Return","src":"4849:12:120"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68194,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68191,"src":"4743:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68195,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68174,"src":"4747:11:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":68196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4759:6:120","memberName":"length","nodeType":"MemberAccess","src":"4747:18:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4743:22:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68213,"initializationExpression":{"assignments":[68191],"declarations":[{"constant":false,"id":68191,"mutability":"mutable","name":"i","nameLocation":"4736:1:120","nodeType":"VariableDeclaration","scope":68213,"src":"4728:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68190,"name":"uint256","nodeType":"ElementaryTypeName","src":"4728:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68193,"initialValue":{"hexValue":"30","id":68192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4740:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4728:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":68199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4767:3:120","subExpression":{"id":68198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68191,"src":"4767:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68200,"nodeType":"ExpressionStatement","src":"4767:3:120"},"nodeType":"ForStatement","src":"4723:163:120"},{"expression":{"hexValue":"74727565","id":68214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4903:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":68178,"id":68215,"nodeType":"Return","src":"4896:11:120"}]},"baseFunctions":[65337],"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"4548:13:120","parameters":{"id":68175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68174,"mutability":"mutable","name":"_validators","nameLocation":"4581:11:120","nodeType":"VariableDeclaration","scope":68217,"src":"4562:30:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":68172,"name":"address","nodeType":"ElementaryTypeName","src":"4562:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":68173,"nodeType":"ArrayTypeName","src":"4562:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4561:32:120"},"returnParameters":{"id":68178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68217,"src":"4615:4:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":68176,"name":"bool","nodeType":"ElementaryTypeName","src":"4615:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4614:6:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68234,"nodeType":"FunctionDefinition","src":"4920:144:120","nodes":[],"body":{"id":68233,"nodeType":"Block","src":"4988:76:120","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":68226,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"5031:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5031:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68224,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"5005:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5010:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":70014,"src":"5005:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69573_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5005:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5042:3:120","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":69567,"src":"5005:40:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":68231,"indexExpression":{"id":68230,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68219,"src":"5046:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5005:52:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":68223,"id":68232,"nodeType":"Return","src":"4998:59:120"}]},"baseFunctions":[65344],"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"4929:11:120","parameters":{"id":68220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68219,"mutability":"mutable","name":"_validator","nameLocation":"4949:10:120","nodeType":"VariableDeclaration","scope":68234,"src":"4941:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68218,"name":"address","nodeType":"ElementaryTypeName","src":"4941:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4940:20:120"},"returnParameters":{"id":68223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68234,"src":"4982:4:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":68221,"name":"bool","nodeType":"ElementaryTypeName","src":"4982:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4981:6:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68245,"nodeType":"FunctionDefinition","src":"5070:146:120","nodes":[],"body":{"id":68244,"nodeType":"Block","src":"5137:79:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68239,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"5154:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5154:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5164:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"5154:28:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69687_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5183:26:120","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":69680,"src":"5154:55:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":68238,"id":68243,"nodeType":"Return","src":"5147:62:120"}]},"baseFunctions":[65349],"functionSelector":"efd81abc","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdPercentage","nameLocation":"5079:26:120","parameters":{"id":68235,"nodeType":"ParameterList","parameters":[],"src":"5105:2:120"},"returnParameters":{"id":68238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68245,"src":"5129:6:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":68236,"name":"uint16","nodeType":"ElementaryTypeName","src":"5129:6:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5128:8:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68259,"nodeType":"FunctionDefinition","src":"5222:126:120","nodes":[],"body":{"id":68258,"nodeType":"Block","src":"5283:65:120","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":68253,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"5326:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5326:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68251,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"5300:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5305:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":70014,"src":"5300:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69573_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5300:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5337:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69570,"src":"5300:41:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":68250,"id":68257,"nodeType":"Return","src":"5293:48:120"}]},"baseFunctions":[65355],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"5231:10:120","parameters":{"id":68246,"nodeType":"ParameterList","parameters":[],"src":"5241:2:120"},"returnParameters":{"id":68250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68259,"src":"5265:16:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":68247,"name":"address","nodeType":"ElementaryTypeName","src":"5265:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":68248,"nodeType":"ArrayTypeName","src":"5265:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5264:18:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68273,"nodeType":"FunctionDefinition","src":"5354:129:120","nodes":[],"body":{"id":68272,"nodeType":"Block","src":"5411:72:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":68266,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"5454:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5454:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68264,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"5428:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5433:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":70014,"src":"5428:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69573_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5428:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5465:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69570,"src":"5428:41:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":68270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5470:6:120","memberName":"length","nodeType":"MemberAccess","src":"5428:48:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":68263,"id":68271,"nodeType":"Return","src":"5421:55:120"}]},"baseFunctions":[65360],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"5363:15:120","parameters":{"id":68260,"nodeType":"ParameterList","parameters":[],"src":"5378:2:120"},"returnParameters":{"id":68263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68273,"src":"5402:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68261,"name":"uint256","nodeType":"ElementaryTypeName","src":"5402:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5401:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68300,"nodeType":"FunctionDefinition","src":"5489:284:120","nodes":[],"body":{"id":68299,"nodeType":"Block","src":"5550:223:120","nodes":[],"statements":[{"assignments":[68282],"declarations":[{"constant":false,"id":68282,"mutability":"mutable","name":"router","nameLocation":"5584:6:120","nodeType":"VariableDeclaration","scope":68299,"src":"5560:30:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68281,"nodeType":"UserDefinedTypeName","pathNode":{"id":68280,"name":"IRouter.Storage","nameLocations":["5560:7:120","5568:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"5560:15:120"},"referencedDeclaration":65258,"src":"5560:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68285,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68283,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"5593:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5593:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5560:42:120"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":68290,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68282,"src":"5683:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68288,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"5657:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5662:20:120","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":70014,"src":"5657:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69573_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5657:33:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5691:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69570,"src":"5657:38:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":68293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5696:6:120","memberName":"length","nodeType":"MemberAccess","src":"5657:45:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":68294,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68282,"src":"5704:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5711:18:120","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":65245,"src":"5704:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$69687_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":68296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5730:26:120","memberName":"signingThresholdPercentage","nodeType":"MemberAccess","referencedDeclaration":69680,"src":"5704:52:120","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":68286,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"5619:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5624:19:120","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":70128,"src":"5619:24:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint256,uint16) pure returns (uint256)"}},"id":68297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5619:147:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":68277,"id":68298,"nodeType":"Return","src":"5612:154:120"}]},"baseFunctions":[65365],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"5498:19:120","parameters":{"id":68274,"nodeType":"ParameterList","parameters":[],"src":"5517:2:120"},"returnParameters":{"id":68277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68300,"src":"5541:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68275,"name":"uint256","nodeType":"ElementaryTypeName","src":"5541:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5540:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68311,"nodeType":"FunctionDefinition","src":"5779:130:120","nodes":[],"body":{"id":68310,"nodeType":"Block","src":"5860:49:120","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68306,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"5877:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5877:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5887:15:120","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":65249,"src":"5877:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69618_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":68305,"id":68309,"nodeType":"Return","src":"5870:32:120"}]},"baseFunctions":[65371],"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"5788:15:120","parameters":{"id":68301,"nodeType":"ParameterList","parameters":[],"src":"5803:2:120"},"returnParameters":{"id":68305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68311,"src":"5827:31:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69618_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":68303,"nodeType":"UserDefinedTypeName","pathNode":{"id":68302,"name":"Gear.ComputationSettings","nameLocations":["5827:4:120","5832:19:120"],"nodeType":"IdentifierPath","referencedDeclaration":69618,"src":"5827:24:120"},"referencedDeclaration":69618,"src":"5827:24:120","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$69618_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"5826:33:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68327,"nodeType":"FunctionDefinition","src":"5915:134:120","nodes":[],"body":{"id":68326,"nodeType":"Block","src":"5988:61:120","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68319,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"6005:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6005:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6015:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"6005:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6028:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69642,"src":"6005:28:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69608_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68324,"indexExpression":{"id":68323,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68313,"src":"6034:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6005:37:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"functionReturnParameters":68318,"id":68325,"nodeType":"Return","src":"5998:44:120"}]},"baseFunctions":[65379],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"5924:9:120","parameters":{"id":68314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68313,"mutability":"mutable","name":"_codeId","nameLocation":"5942:7:120","nodeType":"VariableDeclaration","scope":68327,"src":"5934:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5934:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5933:17:120"},"returnParameters":{"id":68318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68317,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68327,"src":"5972:14:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"},"typeName":{"id":68316,"nodeType":"UserDefinedTypeName","pathNode":{"id":68315,"name":"Gear.CodeState","nameLocations":["5972:4:120","5977:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":69608,"src":"5972:14:120"},"referencedDeclaration":69608,"src":"5972:14:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"5971:16:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68385,"nodeType":"FunctionDefinition","src":"6055:378:120","nodes":[],"body":{"id":68384,"nodeType":"Block","src":"6152:281:120","nodes":[],"statements":[{"assignments":[68339],"declarations":[{"constant":false,"id":68339,"mutability":"mutable","name":"router","nameLocation":"6178:6:120","nodeType":"VariableDeclaration","scope":68384,"src":"6162:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68338,"nodeType":"UserDefinedTypeName","pathNode":{"id":68337,"name":"Storage","nameLocations":["6162:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"6162:7:120"},"referencedDeclaration":65258,"src":"6162:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68340,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"6187:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6187:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6162:34:120"},{"assignments":[68348],"declarations":[{"constant":false,"id":68348,"mutability":"mutable","name":"res","nameLocation":"6231:3:120","nodeType":"VariableDeclaration","scope":68384,"src":"6207:27:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69608_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":68346,"nodeType":"UserDefinedTypeName","pathNode":{"id":68345,"name":"Gear.CodeState","nameLocations":["6207:4:120","6212:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":69608,"src":"6207:14:120"},"referencedDeclaration":69608,"src":"6207:14:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"id":68347,"nodeType":"ArrayTypeName","src":"6207:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69608_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":68356,"initialValue":{"arguments":[{"expression":{"id":68353,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68330,"src":"6258:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":68354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6268:6:120","memberName":"length","nodeType":"MemberAccess","src":"6258:16:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6237:20:120","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$69608_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":68350,"nodeType":"UserDefinedTypeName","pathNode":{"id":68349,"name":"Gear.CodeState","nameLocations":["6241:4:120","6246:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":69608,"src":"6241:14:120"},"referencedDeclaration":69608,"src":"6241:14:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"id":68351,"nodeType":"ArrayTypeName","src":"6241:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69608_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":68355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6237:38:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69608_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6207:68:120"},{"body":{"id":68380,"nodeType":"Block","src":"6333:73:120","statements":[{"expression":{"id":68378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":68368,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68348,"src":"6347:3:120","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69608_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":68370,"indexExpression":{"id":68369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68358,"src":"6351:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6347:6:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":68371,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68339,"src":"6356:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6363:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"6356:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6376:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69642,"src":"6356:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69608_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68377,"indexExpression":{"baseExpression":{"id":68374,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68330,"src":"6382:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":68376,"indexExpression":{"id":68375,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68358,"src":"6392:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6382:12:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6356:39:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"src":"6347:48:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"id":68379,"nodeType":"ExpressionStatement","src":"6347:48:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68358,"src":"6306:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68362,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68330,"src":"6310:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":68363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6320:6:120","memberName":"length","nodeType":"MemberAccess","src":"6310:16:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6306:20:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68381,"initializationExpression":{"assignments":[68358],"declarations":[{"constant":false,"id":68358,"mutability":"mutable","name":"i","nameLocation":"6299:1:120","nodeType":"VariableDeclaration","scope":68381,"src":"6291:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68357,"name":"uint256","nodeType":"ElementaryTypeName","src":"6291:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68360,"initialValue":{"hexValue":"30","id":68359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6303:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6291:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":68366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6328:3:120","subExpression":{"id":68365,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68358,"src":"6328:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68367,"nodeType":"ExpressionStatement","src":"6328:3:120"},"nodeType":"ForStatement","src":"6286:120:120"},{"expression":{"id":68382,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68348,"src":"6423:3:120","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69608_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":68336,"id":68383,"nodeType":"Return","src":"6416:10:120"}]},"baseFunctions":[65389],"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"6064:11:120","parameters":{"id":68331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68330,"mutability":"mutable","name":"_codesIds","nameLocation":"6095:9:120","nodeType":"VariableDeclaration","scope":68385,"src":"6076:28:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":68328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6076:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68329,"nodeType":"ArrayTypeName","src":"6076:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6075:30:120"},"returnParameters":{"id":68336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68385,"src":"6127:23:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69608_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":68333,"nodeType":"UserDefinedTypeName","pathNode":{"id":68332,"name":"Gear.CodeState","nameLocations":["6127:4:120","6132:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":69608,"src":"6127:14:120"},"referencedDeclaration":69608,"src":"6127:14:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"id":68334,"nodeType":"ArrayTypeName","src":"6127:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$69608_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"6126:25:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68400,"nodeType":"FunctionDefinition","src":"6439:140:120","nodes":[],"body":{"id":68399,"nodeType":"Block","src":"6512:67:120","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68392,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"6529:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6529:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6539:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"6529:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6552:8:120","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":69646,"src":"6529:31:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":68397,"indexExpression":{"id":68396,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68387,"src":"6561:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6529:43:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":68391,"id":68398,"nodeType":"Return","src":"6522:50:120"}]},"baseFunctions":[65396],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"6448:13:120","parameters":{"id":68388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68387,"mutability":"mutable","name":"_programId","nameLocation":"6470:10:120","nodeType":"VariableDeclaration","scope":68400,"src":"6462:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68386,"name":"address","nodeType":"ElementaryTypeName","src":"6462:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6461:20:120"},"returnParameters":{"id":68391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68400,"src":"6503:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6503:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6502:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68455,"nodeType":"FunctionDefinition","src":"6585:376:120","nodes":[],"body":{"id":68454,"nodeType":"Block","src":"6682:279:120","nodes":[],"statements":[{"assignments":[68411],"declarations":[{"constant":false,"id":68411,"mutability":"mutable","name":"router","nameLocation":"6708:6:120","nodeType":"VariableDeclaration","scope":68454,"src":"6692:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68410,"nodeType":"UserDefinedTypeName","pathNode":{"id":68409,"name":"Storage","nameLocations":["6692:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"6692:7:120"},"referencedDeclaration":65258,"src":"6692:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68414,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68412,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"6717:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6717:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6692:34:120"},{"assignments":[68419],"declarations":[{"constant":false,"id":68419,"mutability":"mutable","name":"res","nameLocation":"6754:3:120","nodeType":"VariableDeclaration","scope":68454,"src":"6737:20:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":68417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68418,"nodeType":"ArrayTypeName","src":"6737:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":68426,"initialValue":{"arguments":[{"expression":{"id":68423,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68403,"src":"6774:12:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":68424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6787:6:120","memberName":"length","nodeType":"MemberAccess","src":"6774:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6760:13:120","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":68420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6764:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68421,"nodeType":"ArrayTypeName","src":"6764:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":68425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6760:34:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6737:57:120"},{"body":{"id":68450,"nodeType":"Block","src":"6855:79:120","statements":[{"expression":{"id":68448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":68438,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68419,"src":"6869:3:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":68440,"indexExpression":{"id":68439,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68428,"src":"6873:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6869:6:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":68441,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68411,"src":"6878:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6885:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"6878:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6898:8:120","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":69646,"src":"6878:28:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":68447,"indexExpression":{"baseExpression":{"id":68444,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68403,"src":"6907:12:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":68446,"indexExpression":{"id":68445,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68428,"src":"6920:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6907:15:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6878:45:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6869:54:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68449,"nodeType":"ExpressionStatement","src":"6869:54:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68428,"src":"6825:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68432,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68403,"src":"6829:12:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":68433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6842:6:120","memberName":"length","nodeType":"MemberAccess","src":"6829:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6825:23:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68451,"initializationExpression":{"assignments":[68428],"declarations":[{"constant":false,"id":68428,"mutability":"mutable","name":"i","nameLocation":"6818:1:120","nodeType":"VariableDeclaration","scope":68451,"src":"6810:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68427,"name":"uint256","nodeType":"ElementaryTypeName","src":"6810:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68430,"initialValue":{"hexValue":"30","id":68429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6822:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6810:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":68436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6850:3:120","subExpression":{"id":68435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68428,"src":"6850:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68437,"nodeType":"ExpressionStatement","src":"6850:3:120"},"nodeType":"ForStatement","src":"6805:129:120"},{"expression":{"id":68452,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68419,"src":"6951:3:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":68408,"id":68453,"nodeType":"Return","src":"6944:10:120"}]},"baseFunctions":[65405],"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"6594:15:120","parameters":{"id":68404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68403,"mutability":"mutable","name":"_programsIds","nameLocation":"6629:12:120","nodeType":"VariableDeclaration","scope":68455,"src":"6610:31:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":68401,"name":"address","nodeType":"ElementaryTypeName","src":"6610:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":68402,"nodeType":"ArrayTypeName","src":"6610:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"6609:33:120"},"returnParameters":{"id":68408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68455,"src":"6664:16:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":68405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6664:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68406,"nodeType":"ArrayTypeName","src":"6664:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6663:18:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68466,"nodeType":"FunctionDefinition","src":"6967:115:120","nodes":[],"body":{"id":68465,"nodeType":"Block","src":"7022:60:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68460,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"7039:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7039:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7049:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"7039:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7062:13:120","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":69648,"src":"7039:36:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":68459,"id":68464,"nodeType":"Return","src":"7032:43:120"}]},"baseFunctions":[65410],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"6976:13:120","parameters":{"id":68456,"nodeType":"ParameterList","parameters":[],"src":"6989:2:120"},"returnParameters":{"id":68459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68466,"src":"7013:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68457,"name":"uint256","nodeType":"ElementaryTypeName","src":"7013:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7012:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68477,"nodeType":"FunctionDefinition","src":"7088:127:120","nodes":[],"body":{"id":68476,"nodeType":"Block","src":"7149:66:120","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68471,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"7166:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7166:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7176:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"7166:22:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7189:19:120","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":69650,"src":"7166:42:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":68470,"id":68475,"nodeType":"Return","src":"7159:49:120"}]},"baseFunctions":[65415],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"7097:19:120","parameters":{"id":68467,"nodeType":"ParameterList","parameters":[],"src":"7116:2:120"},"returnParameters":{"id":68470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68477,"src":"7140:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68468,"name":"uint256","nodeType":"ElementaryTypeName","src":"7140:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7139:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":68492,"nodeType":"FunctionDefinition","src":"7241:116:120","nodes":[],"body":{"id":68491,"nodeType":"Block","src":"7298:59:120","nodes":[],"statements":[{"expression":{"id":68489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":68484,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"7308:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7308:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7318:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"7308:23:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":68487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7332:6:120","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":69575,"src":"7308:30:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":68488,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68479,"src":"7341:9:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7308:42:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":68490,"nodeType":"ExpressionStatement","src":"7308:42:120"}]},"baseFunctions":[65420],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":68482,"kind":"modifierInvocation","modifierName":{"id":68481,"name":"onlyOwner","nameLocations":["7288:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":40227,"src":"7288:9:120"},"nodeType":"ModifierInvocation","src":"7288:9:120"}],"name":"setMirror","nameLocation":"7250:9:120","parameters":{"id":68480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68479,"mutability":"mutable","name":"newMirror","nameLocation":"7268:9:120","nodeType":"VariableDeclaration","scope":68492,"src":"7260:17:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68478,"name":"address","nodeType":"ElementaryTypeName","src":"7260:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7259:19:120"},"returnParameters":{"id":68483,"nodeType":"ParameterList","parameters":[],"src":"7298:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68544,"nodeType":"FunctionDefinition","src":"7379:398:120","nodes":[],"body":{"id":68543,"nodeType":"Block","src":"7417:360:120","nodes":[],"statements":[{"assignments":[68497],"declarations":[{"constant":false,"id":68497,"mutability":"mutable","name":"router","nameLocation":"7443:6:120","nodeType":"VariableDeclaration","scope":68543,"src":"7427:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68496,"nodeType":"UserDefinedTypeName","pathNode":{"id":68495,"name":"Storage","nameLocations":["7427:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"7427:7:120"},"referencedDeclaration":65258,"src":"7427:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68500,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68498,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"7452:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7452:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7427:34:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68502,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68497,"src":"7480:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7487:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"7480:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7500:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69620,"src":"7480:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":68507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7516:1:120","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":68506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7508:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7508:7:120","typeDescriptions":{}}},"id":68508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7508:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7480:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67656e65736973206861736820616c726561647920736574","id":68510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7520:26:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ec654a5a6e0b043639db348d1557e0acfcdb8bbf2c9de24c4983866c0ccfa21","typeString":"literal_string \"genesis hash already set\""},"value":"genesis hash already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ec654a5a6e0b043639db348d1557e0acfcdb8bbf2c9de24c4983866c0ccfa21","typeString":"literal_string \"genesis hash already set\""}],"id":68501,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7472:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7472:75:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68512,"nodeType":"ExpressionStatement","src":"7472:75:120"},{"assignments":[68514],"declarations":[{"constant":false,"id":68514,"mutability":"mutable","name":"genesisHash","nameLocation":"7566:11:120","nodeType":"VariableDeclaration","scope":68543,"src":"7558:19:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7558:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":68520,"initialValue":{"arguments":[{"expression":{"expression":{"id":68516,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68497,"src":"7590:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7597:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"7590:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7610:6:120","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":69622,"src":"7590:26:120","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":68515,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"7580:9:120","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":68519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7580:37:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7558:59:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68522,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68514,"src":"7636:11:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":68525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7659:1:120","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":68524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7651:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7651:7:120","typeDescriptions":{}}},"id":68526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7651:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7636:25:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e61626c6520746f206c6f6f6b75702067656e657369732068617368","id":68528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7663:31:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_983585e130902c48e8b21c3e7ab53cd0d7f3ffc3109244b201330c039df8ce4e","typeString":"literal_string \"unable to lookup genesis hash\""},"value":"unable to lookup genesis hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_983585e130902c48e8b21c3e7ab53cd0d7f3ffc3109244b201330c039df8ce4e","typeString":"literal_string \"unable to lookup genesis hash\""}],"id":68521,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7628:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7628:67:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68530,"nodeType":"ExpressionStatement","src":"7628:67:120"},{"expression":{"id":68541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":68531,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68497,"src":"7706:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7713:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"7706:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7726:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69620,"src":"7706:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":68537,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68497,"src":"7743:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7750:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"7743:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7763:6:120","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":69622,"src":"7743:26:120","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":68536,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"7733:9:120","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":68540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7733:37:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7706:64:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68542,"nodeType":"ExpressionStatement","src":"7706:64:120"}]},"baseFunctions":[65423],"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"7388:17:120","parameters":{"id":68493,"nodeType":"ParameterList","parameters":[],"src":"7405:2:120"},"returnParameters":{"id":68494,"nodeType":"ParameterList","parameters":[],"src":"7417:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68613,"nodeType":"FunctionDefinition","src":"7783:637:120","nodes":[],"body":{"id":68612,"nodeType":"Block","src":"7861:559:120","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":68560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68552,"name":"_blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68548,"src":"7879:11:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":68553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7894:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7879:16:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":68556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7908:1:120","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":68555,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"7899:8:120","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":68557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7899:11:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":68558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7914:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7899:16:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7879:36:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"626c6f622063616e277420626520666f756e64","id":68561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7917:21:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_50f679c075644435e0dfad2beb36f786441d5cb0c0dd08ea9c9aa80169c123d2","typeString":"literal_string \"blob can't be found\""},"value":"blob can't be found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_50f679c075644435e0dfad2beb36f786441d5cb0c0dd08ea9c9aa80169c123d2","typeString":"literal_string \"blob can't be found\""}],"id":68551,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7871:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7871:68:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68563,"nodeType":"ExpressionStatement","src":"7871:68:120"},{"assignments":[68566],"declarations":[{"constant":false,"id":68566,"mutability":"mutable","name":"router","nameLocation":"7966:6:120","nodeType":"VariableDeclaration","scope":68612,"src":"7950:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68565,"nodeType":"UserDefinedTypeName","pathNode":{"id":68564,"name":"Storage","nameLocations":["7950:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"7950:7:120"},"referencedDeclaration":65258,"src":"7950:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68569,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68567,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"7975:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7975:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7950:34:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68571,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68566,"src":"8002:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8009:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"8002:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8022:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69620,"src":"8002:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":68576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8038:1:120","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":68575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8030:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8030:7:120","typeDescriptions":{}}},"id":68577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8030:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8002:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f6f6b757047656e6573697348617368282960206669727374","id":68579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8042:58:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""},"value":"router genesis is zero; call `lookupGenesisHash()` first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""}],"id":68570,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7994:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7994:107:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68581,"nodeType":"ExpressionStatement","src":"7994:107:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"},"id":68591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":68583,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68566,"src":"8133:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8140:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"8133:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8153:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69642,"src":"8133:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69608_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68587,"indexExpression":{"id":68586,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68546,"src":"8159:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8133:34:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":68588,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"8171:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8176:9:120","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":69608,"src":"8171:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$69608_$","typeString":"type(enum Gear.CodeState)"}},"id":68590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8186:7:120","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":69605,"src":"8171:22:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"src":"8133:60:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"676976656e20636f646520696420697320616c7265616479206f6e2076616c69646174696f6e206f722076616c696461746564","id":68592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8207:53:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_6767c8b133cc7e7263c64dbd155947c93c4fdbe1adf907d9d3428673190ae536","typeString":"literal_string \"given code id is already on validation or validated\""},"value":"given code id is already on validation or validated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6767c8b133cc7e7263c64dbd155947c93c4fdbe1adf907d9d3428673190ae536","typeString":"literal_string \"given code id is already on validation or validated\""}],"id":68582,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8112:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8112:158:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68594,"nodeType":"ExpressionStatement","src":"8112:158:120"},{"expression":{"id":68605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":68595,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68566,"src":"8281:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8288:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"8281:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8301:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69642,"src":"8281:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69608_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68601,"indexExpression":{"id":68598,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68546,"src":"8307:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8281:34:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":68602,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"8318:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8323:9:120","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":69608,"src":"8318:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$69608_$","typeString":"type(enum Gear.CodeState)"}},"id":68604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8333:19:120","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":69606,"src":"8318:34:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"src":"8281:71:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"id":68606,"nodeType":"ExpressionStatement","src":"8281:71:120"},{"eventCall":{"arguments":[{"id":68608,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68546,"src":"8392:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68609,"name":"_blobTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68548,"src":"8401:11:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":68607,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65277,"src":"8368:23:120","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":68610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8368:45:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68611,"nodeType":"EmitStatement","src":"8363:50:120"}]},"baseFunctions":[65431],"functionSelector":"1c149d8a","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidation","nameLocation":"7792:21:120","parameters":{"id":68549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68546,"mutability":"mutable","name":"_codeId","nameLocation":"7822:7:120","nodeType":"VariableDeclaration","scope":68613,"src":"7814:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7814:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":68548,"mutability":"mutable","name":"_blobTxHash","nameLocation":"7839:11:120","nodeType":"VariableDeclaration","scope":68613,"src":"7831:19:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7831:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7813:38:120"},"returnParameters":{"id":68550,"nodeType":"ParameterList","parameters":[],"src":"7861:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68644,"nodeType":"FunctionDefinition","src":"8426:231:120","nodes":[],"body":{"id":68643,"nodeType":"Block","src":"8508:149:120","nodes":[],"statements":[{"assignments":[68623],"declarations":[{"constant":false,"id":68623,"mutability":"mutable","name":"mirror","nameLocation":"8526:6:120","nodeType":"VariableDeclaration","scope":68643,"src":"8518:14:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68622,"name":"address","nodeType":"ElementaryTypeName","src":"8518:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":68628,"initialValue":{"arguments":[{"id":68625,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68615,"src":"8550:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68626,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68617,"src":"8559:5:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":68624,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69099,"src":"8535:14:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) returns (address)"}},"id":68627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8518:47:120"},{"expression":{"arguments":[{"expression":{"id":68633,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8603:3:120","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":68634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8607:6:120","memberName":"sender","nodeType":"MemberAccess","src":"8603:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":68637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8623:1:120","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":68636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8615:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":68635,"name":"address","nodeType":"ElementaryTypeName","src":"8615:7:120","typeDescriptions":{}}},"id":68638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8615:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":68630,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68623,"src":"8584:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":68629,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65178,"src":"8576:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$65178_$","typeString":"type(contract IMirror)"}},"id":68631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8576:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$65178","typeString":"contract IMirror"}},"id":68632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8592:10:120","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":65169,"src":"8576:26:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":68639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8576:50:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68640,"nodeType":"ExpressionStatement","src":"8576:50:120"},{"expression":{"id":68641,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68623,"src":"8644:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68621,"id":68642,"nodeType":"Return","src":"8637:13:120"}]},"baseFunctions":[65441],"functionSelector":"527de0f9","implemented":true,"kind":"function","modifiers":[],"name":"createProgram","nameLocation":"8435:13:120","parameters":{"id":68618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68615,"mutability":"mutable","name":"_codeId","nameLocation":"8457:7:120","nodeType":"VariableDeclaration","scope":68644,"src":"8449:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8449:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":68617,"mutability":"mutable","name":"_salt","nameLocation":"8474:5:120","nodeType":"VariableDeclaration","scope":68644,"src":"8466:13:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8466:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8448:32:120"},"returnParameters":{"id":68621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68644,"src":"8499:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68619,"name":"address","nodeType":"ElementaryTypeName","src":"8499:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8498:9:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68688,"nodeType":"FunctionDefinition","src":"8663:390:120","nodes":[],"body":{"id":68687,"nodeType":"Block","src":"8798:255:120","nodes":[],"statements":[{"assignments":[68656],"declarations":[{"constant":false,"id":68656,"mutability":"mutable","name":"mirror","nameLocation":"8816:6:120","nodeType":"VariableDeclaration","scope":68687,"src":"8808:14:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68655,"name":"address","nodeType":"ElementaryTypeName","src":"8808:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":68661,"initialValue":{"arguments":[{"id":68658,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68648,"src":"8840:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68659,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68650,"src":"8849:5:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":68657,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69099,"src":"8825:14:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) returns (address)"}},"id":68660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8825:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8808:47:120"},{"assignments":[68663],"declarations":[{"constant":false,"id":68663,"mutability":"mutable","name":"decoder","nameLocation":"8873:7:120","nodeType":"VariableDeclaration","scope":68687,"src":"8865:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68662,"name":"address","nodeType":"ElementaryTypeName","src":"8865:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":68675,"initialValue":{"arguments":[{"id":68665,"name":"_decoderImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68646,"src":"8898:12:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":68669,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68648,"src":"8939:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68670,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68650,"src":"8948:5:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":68667,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8922:3:120","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":68668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8926:12:120","memberName":"encodePacked","nodeType":"MemberAccess","src":"8922:16:120","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":68671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8922:32:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":68666,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8912:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":68672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8912:43:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68673,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68656,"src":"8957:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":68664,"name":"_createDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69128,"src":"8883:14:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (address,bytes32,address) returns (address)"}},"id":68674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:81:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8865:99:120"},{"expression":{"arguments":[{"expression":{"id":68680,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9002:3:120","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":68681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9006:6:120","memberName":"sender","nodeType":"MemberAccess","src":"9002:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":68682,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68663,"src":"9014:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":68677,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68656,"src":"8983:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":68676,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65178,"src":"8975:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$65178_$","typeString":"type(contract IMirror)"}},"id":68678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8975:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$65178","typeString":"contract IMirror"}},"id":68679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8991:10:120","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":65169,"src":"8975:26:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":68683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8975:47:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68684,"nodeType":"ExpressionStatement","src":"8975:47:120"},{"expression":{"id":68685,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68656,"src":"9040:6:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":68654,"id":68686,"nodeType":"Return","src":"9033:13:120"}]},"baseFunctions":[65453],"functionSelector":"e7006a74","implemented":true,"kind":"function","modifiers":[],"name":"createProgramWithDecoder","nameLocation":"8672:24:120","parameters":{"id":68651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68646,"mutability":"mutable","name":"_decoderImpl","nameLocation":"8705:12:120","nodeType":"VariableDeclaration","scope":68688,"src":"8697:20:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68645,"name":"address","nodeType":"ElementaryTypeName","src":"8697:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":68648,"mutability":"mutable","name":"_codeId","nameLocation":"8727:7:120","nodeType":"VariableDeclaration","scope":68688,"src":"8719:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68647,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8719:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":68650,"mutability":"mutable","name":"_salt","nameLocation":"8744:5:120","nodeType":"VariableDeclaration","scope":68688,"src":"8736:13:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8736:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8696:54:120"},"returnParameters":{"id":68654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":68688,"src":"8785:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68652,"name":"address","nodeType":"ElementaryTypeName","src":"8785:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8784:9:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68806,"nodeType":"FunctionDefinition","src":"9133:1250:120","nodes":[],"body":{"id":68805,"nodeType":"Block","src":"9244:1139:120","nodes":[],"statements":[{"assignments":[68700],"declarations":[{"constant":false,"id":68700,"mutability":"mutable","name":"router","nameLocation":"9270:6:120","nodeType":"VariableDeclaration","scope":68805,"src":"9254:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68699,"nodeType":"UserDefinedTypeName","pathNode":{"id":68698,"name":"Storage","nameLocations":["9254:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"9254:7:120"},"referencedDeclaration":65258,"src":"9254:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68703,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68701,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"9279:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9279:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9254:34:120"},{"assignments":[68705],"declarations":[{"constant":false,"id":68705,"mutability":"mutable","name":"currentEraIndex","nameLocation":"9307:15:120","nodeType":"VariableDeclaration","scope":68805,"src":"9299:23:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68704,"name":"uint256","nodeType":"ElementaryTypeName","src":"9299:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68717,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":68706,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9326:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9332:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"9326:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":68708,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68700,"src":"9344:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9351:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"9344:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9364:9:120","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":69624,"src":"9344:29:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9326:47:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":68712,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9325:49:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":68713,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68700,"src":"9377:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9384:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"9377:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69678_storage","typeString":"struct Gear.Timelines storage ref"}},"id":68715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9394:3:120","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":69675,"src":"9377:20:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9325:72:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9299:98:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":68719,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68692,"src":"9416:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69586_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":68720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9427:8:120","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":69585,"src":"9416:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68721,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68705,"src":"9439:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":68722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9457:1:120","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9439:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9416:42:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6d6d69746d656e742065726120696e646578206973206e6f74206e6578742065726120696e646578","id":68725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9460:44:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_162890466e3da7889495cad8b992d317e467631b8d4abd8dc4464c15dd41b759","typeString":"literal_string \"commitment era index is not next era index\""},"value":"commitment era index is not next era index"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_162890466e3da7889495cad8b992d317e467631b8d4abd8dc4464c15dd41b759","typeString":"literal_string \"commitment era index is not next era index\""}],"id":68718,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9408:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9408:97:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68727,"nodeType":"ExpressionStatement","src":"9408:97:120"},{"assignments":[68729],"declarations":[{"constant":false,"id":68729,"mutability":"mutable","name":"nextEraStart","nameLocation":"9524:12:120","nodeType":"VariableDeclaration","scope":68805,"src":"9516:20:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68728,"name":"uint256","nodeType":"ElementaryTypeName","src":"9516:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68740,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68730,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68700,"src":"9539:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9546:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"9539:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9559:9:120","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":69624,"src":"9539:29:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68733,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68700,"src":"9571:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9578:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"9571:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69678_storage","typeString":"struct Gear.Timelines storage ref"}},"id":68735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9588:3:120","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":69675,"src":"9571:20:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":68736,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68692,"src":"9594:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69586_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":68737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9605:8:120","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":69585,"src":"9594:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9571:42:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9539:74:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9516:97:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":68742,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9631:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9637:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"9631:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68744,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68729,"src":"9650:12:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":68745,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68700,"src":"9665:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9672:9:120","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":65253,"src":"9665:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$69678_storage","typeString":"struct Gear.Timelines storage ref"}},"id":68747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9682:8:120","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":69677,"src":"9665:25:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9650:40:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9631:59:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"656c656374696f6e206973206e6f74207965742073746172746564","id":68750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9692:29:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3e2748c631aa0d71d8afc854c277a3e771005dd496ece9dad00c587d5c5eaa","typeString":"literal_string \"election is not yet started\""},"value":"election is not yet started"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef3e2748c631aa0d71d8afc854c277a3e771005dd496ece9dad00c587d5c5eaa","typeString":"literal_string \"election is not yet started\""}],"id":68741,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9623:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9623:99:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68752,"nodeType":"ExpressionStatement","src":"9623:99:120"},{"assignments":[68757],"declarations":[{"constant":false,"id":68757,"mutability":"mutable","name":"_validators","nameLocation":"9804:11:120","nodeType":"VariableDeclaration","scope":68805,"src":"9780:35:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":68756,"nodeType":"UserDefinedTypeName","pathNode":{"id":68755,"name":"Gear.Validators","nameLocations":["9780:4:120","9785:10:120"],"nodeType":"IdentifierPath","referencedDeclaration":69573,"src":"9780:15:120"},"referencedDeclaration":69573,"src":"9780:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":68762,"initialValue":{"arguments":[{"id":68760,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68700,"src":"9845:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":68758,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"9818:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:21:120","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":70038,"src":"9818:26:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$returns$_t_struct$_Validators_$69573_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":68761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9818:34:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9780:72:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":68764,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68757,"src":"9870:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":68765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9882:16:120","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":69572,"src":"9870:28:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68766,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9901:5:120","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":68767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9907:9:120","memberName":"timestamp","nodeType":"MemberAccess","src":"9901:15:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9870:46:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6c6f6f6b73206c696b652076616c696461746f727320666f72206e657874206572612061726520616c726561647920736574","id":68769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9918:52:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_b284ea0c51a926e5b8ea00c07f1ff766c11519c493036a65a767443fdf3f1780","typeString":"literal_string \"looks like validators for next era are already set\""},"value":"looks like validators for next era are already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b284ea0c51a926e5b8ea00c07f1ff766c11519c493036a65a767443fdf3f1780","typeString":"literal_string \"looks like validators for next era are already set\""}],"id":68763,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9862:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:109:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68771,"nodeType":"ExpressionStatement","src":"9862:109:120"},{"assignments":[68773],"declarations":[{"constant":false,"id":68773,"mutability":"mutable","name":"commitmentHash","nameLocation":"9990:14:120","nodeType":"VariableDeclaration","scope":68805,"src":"9982:22:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":68772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9982:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":68778,"initialValue":{"arguments":[{"id":68776,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68692,"src":"10037:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69586_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69586_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":68774,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"10007:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10012:24:120","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":69713,"src":"10007:29:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$69586_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":68777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10007:41:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9982:66:120"},{"expression":{"arguments":[{"arguments":[{"id":68782,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68700,"src":"10103:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"arguments":[{"arguments":[{"id":68786,"name":"commitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68773,"src":"10138:14:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":68784,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10121:3:120","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":68785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10125:12:120","memberName":"encodePacked","nodeType":"MemberAccess","src":"10121:16:120","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":68787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10121:32:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":68783,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10111:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":68788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10111:43:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68789,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68695,"src":"10156:10:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"expression":{"id":68780,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"10079:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10084:18:120","memberName":"validateSignatures","nodeType":"MemberAccess","referencedDeclaration":69990,"src":"10079:23:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes calldata[] calldata) view returns (bool)"}},"id":68790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10079:88:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e657874206572612076616c696461746f7273207369676e61747572657320766572696669636174696f6e206661696c6564","id":68791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10181:52:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_349cc9c1a1e1cddede1f7780f29c462d7f3b361b9dfecea0303aaa7d870183b1","typeString":"literal_string \"next era validators signatures verification failed\""},"value":"next era validators signatures verification failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_349cc9c1a1e1cddede1f7780f29c462d7f3b361b9dfecea0303aaa7d870183b1","typeString":"literal_string \"next era validators signatures verification failed\""}],"id":68779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10058:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10058:185:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68793,"nodeType":"ExpressionStatement","src":"10058:185:120"},{"expression":{"arguments":[{"id":68795,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68757,"src":"10271:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":68796,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68692,"src":"10284:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69586_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":68797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10295:10:120","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":69583,"src":"10284:21:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":68798,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68729,"src":"10307:12:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68794,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69362,"src":"10254:16:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$69573_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,address[] memory,uint256)"}},"id":68799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10254:66:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68800,"nodeType":"ExpressionStatement","src":"10254:66:120"},{"eventCall":{"arguments":[{"id":68802,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68729,"src":"10363:12:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":68801,"name":"NextEraValidatorsCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65282,"src":"10336:26:120","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":68803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10336:40:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68804,"nodeType":"EmitStatement","src":"10331:45:120"}]},"baseFunctions":[65485],"documentation":{"id":68689,"nodeType":"StructuredDocumentation","src":"9087:41:120","text":"@dev Set validators for the next era."},"functionSelector":"aaf0fe6a","implemented":true,"kind":"function","modifiers":[],"name":"commitValidators","nameLocation":"9142:16:120","parameters":{"id":68696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68692,"mutability":"mutable","name":"commitment","nameLocation":"9194:10:120","nodeType":"VariableDeclaration","scope":68806,"src":"9159:45:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69586_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":68691,"nodeType":"UserDefinedTypeName","pathNode":{"id":68690,"name":"Gear.ValidatorsCommitment","nameLocations":["9159:4:120","9164:20:120"],"nodeType":"IdentifierPath","referencedDeclaration":69586,"src":"9159:25:120"},"referencedDeclaration":69586,"src":"9159:25:120","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$69586_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"},{"constant":false,"id":68695,"mutability":"mutable","name":"signatures","nameLocation":"9223:10:120","nodeType":"VariableDeclaration","scope":68806,"src":"9206:27:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":68693,"name":"bytes","nodeType":"ElementaryTypeName","src":"9206:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":68694,"nodeType":"ArrayTypeName","src":"9206:7:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9158:76:120"},"returnParameters":{"id":68697,"nodeType":"ParameterList","parameters":[],"src":"9244:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":68938,"nodeType":"FunctionDefinition","src":"10389:1336:120","nodes":[],"body":{"id":68937,"nodeType":"Block","src":"10498:1227:120","nodes":[],"statements":[{"assignments":[68818],"declarations":[{"constant":false,"id":68818,"mutability":"mutable","name":"router","nameLocation":"10524:6:120","nodeType":"VariableDeclaration","scope":68937,"src":"10508:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68817,"nodeType":"UserDefinedTypeName","pathNode":{"id":68816,"name":"Storage","nameLocations":["10508:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"10508:7:120"},"referencedDeclaration":65258,"src":"10508:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68821,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68819,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"10533:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10533:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10508:34:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68823,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68818,"src":"10560:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10567:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"10560:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10580:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69620,"src":"10560:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":68828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10596:1:120","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":68827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10588:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10588:7:120","typeDescriptions":{}}},"id":68829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10588:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10560:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f6f6b757047656e6573697348617368282960206669727374","id":68831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10600:58:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""},"value":"router genesis is zero; call `lookupGenesisHash()` first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""}],"id":68822,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10552:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10552:107:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68833,"nodeType":"ExpressionStatement","src":"10552:107:120"},{"assignments":[68835],"declarations":[{"constant":false,"id":68835,"mutability":"mutable","name":"codeCommitmentsHashes","nameLocation":"10683:21:120","nodeType":"VariableDeclaration","scope":68937,"src":"10670:34:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":68834,"name":"bytes","nodeType":"ElementaryTypeName","src":"10670:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":68836,"nodeType":"VariableDeclarationStatement","src":"10670:34:120"},{"body":{"id":68923,"nodeType":"Block","src":"10769:784:120","statements":[{"assignments":[68852],"declarations":[{"constant":false,"id":68852,"mutability":"mutable","name":"codeCommitment","nameLocation":"10812:14:120","nodeType":"VariableDeclaration","scope":68923,"src":"10783:43:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":68851,"nodeType":"UserDefinedTypeName","pathNode":{"id":68850,"name":"Gear.CodeCommitment","nameLocations":["10783:4:120","10788:14:120"],"nodeType":"IdentifierPath","referencedDeclaration":69604,"src":"10783:19:120"},"referencedDeclaration":69604,"src":"10783:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":68856,"initialValue":{"baseExpression":{"id":68853,"name":"_codeCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68810,"src":"10829:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$69604_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":68855,"indexExpression":{"id":68854,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68838,"src":"10846:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10829:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"10783:65:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"},"id":68867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":68858,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68818,"src":"10888:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10895:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"10888:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10908:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69642,"src":"10888:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69608_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68863,"indexExpression":{"expression":{"id":68861,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68852,"src":"10914:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10929:2:120","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69601,"src":"10914:17:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10888:44:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":68864,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"10936:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10941:9:120","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":69608,"src":"10936:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$69608_$","typeString":"type(enum Gear.CodeState)"}},"id":68866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10951:19:120","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":69606,"src":"10936:34:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"src":"10888:82:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206d7573742062652072657175657374656420666f722076616c69646174696f6e20746f20626520636f6d6d6974746564","id":68868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10988:55:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5641fde195ef857639d9de420cb3fc56957be6957a3c8a5e78a2243186a510e8","typeString":"literal_string \"code must be requested for validation to be committed\""},"value":"code must be requested for validation to be committed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5641fde195ef857639d9de420cb3fc56957be6957a3c8a5e78a2243186a510e8","typeString":"literal_string \"code must be requested for validation to be committed\""}],"id":68857,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10863:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10863:194:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68870,"nodeType":"ExpressionStatement","src":"10863:194:120"},{"condition":{"expression":{"id":68871,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68852,"src":"11076:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11091:5:120","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":69603,"src":"11076:20:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":68902,"nodeType":"Block","src":"11267:84:120","statements":[{"expression":{"id":68900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11285:51:120","subExpression":{"baseExpression":{"expression":{"expression":{"id":68894,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68818,"src":"11292:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11299:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"11292:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11312:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69642,"src":"11292:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69608_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68899,"indexExpression":{"expression":{"id":68897,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68852,"src":"11318:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11333:2:120","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69601,"src":"11318:17:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11292:44:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68901,"nodeType":"ExpressionStatement","src":"11285:51:120"}]},"id":68903,"nodeType":"IfStatement","src":"11072:279:120","trueBody":{"id":68893,"nodeType":"Block","src":"11098:163:120","statements":[{"expression":{"id":68884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":68873,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68818,"src":"11116:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11123:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"11116:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11136:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69642,"src":"11116:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69608_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":68880,"indexExpression":{"expression":{"id":68876,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68852,"src":"11142:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11157:2:120","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69601,"src":"11142:17:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11116:44:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":68881,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"11163:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11168:9:120","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":69608,"src":"11163:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$69608_$","typeString":"type(enum Gear.CodeState)"}},"id":68883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11178:9:120","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":69607,"src":"11163:24:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"src":"11116:71:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"id":68885,"nodeType":"ExpressionStatement","src":"11116:71:120"},{"expression":{"id":68891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11205:41:120","subExpression":{"expression":{"expression":{"id":68886,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68818,"src":"11205:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11212:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"11205:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":68890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11225:19:120","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":69650,"src":"11205:39:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68892,"nodeType":"ExpressionStatement","src":"11205:41:120"}]}},{"eventCall":{"arguments":[{"expression":{"id":68905,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68852,"src":"11387:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11402:2:120","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":69601,"src":"11387:17:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":68907,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68852,"src":"11406:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":68908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11421:5:120","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":69603,"src":"11406:20:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":68904,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65270,"src":"11370:16:120","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":68909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11370:57:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68910,"nodeType":"EmitStatement","src":"11365:62:120"},{"expression":{"id":68921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":68911,"name":"codeCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68835,"src":"11442:21:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":68915,"name":"codeCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68835,"src":"11479:21:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":68918,"name":"codeCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68852,"src":"11526:14:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CodeCommitment_$69604_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}],"expression":{"id":68916,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"11502:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11507:18:120","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":69803,"src":"11502:23:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CodeCommitment_$69604_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.CodeCommitment calldata) pure returns (bytes32)"}},"id":68919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11502:39:120","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":68913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11466:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":68912,"name":"bytes","nodeType":"ElementaryTypeName","src":"11466:5:120","typeDescriptions":{}}},"id":68914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11472:6:120","memberName":"concat","nodeType":"MemberAccess","src":"11466:12:120","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":68920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11466:76:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11442:100:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":68922,"nodeType":"ExpressionStatement","src":"11442:100:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68841,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68838,"src":"10735:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68842,"name":"_codeCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68810,"src":"10739:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$69604_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":68843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10756:6:120","memberName":"length","nodeType":"MemberAccess","src":"10739:23:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10735:27:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":68924,"initializationExpression":{"assignments":[68838],"declarations":[{"constant":false,"id":68838,"mutability":"mutable","name":"i","nameLocation":"10728:1:120","nodeType":"VariableDeclaration","scope":68924,"src":"10720:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68837,"name":"uint256","nodeType":"ElementaryTypeName","src":"10720:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68840,"initialValue":{"hexValue":"30","id":68839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10732:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10720:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":68846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10764:3:120","subExpression":{"id":68845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68838,"src":"10764:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68847,"nodeType":"ExpressionStatement","src":"10764:3:120"},"nodeType":"ForStatement","src":"10715:838:120"},{"expression":{"arguments":[{"arguments":[{"id":68928,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68818,"src":"11608:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"arguments":[{"id":68930,"name":"codeCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68835,"src":"11626:21:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":68929,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11616:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":68931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11616:32:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":68932,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68813,"src":"11650:11:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"expression":{"id":68926,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"11584:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":68927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11589:18:120","memberName":"validateSignatures","nodeType":"MemberAccess","referencedDeclaration":69990,"src":"11584:23:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes calldata[] calldata) view returns (bool)"}},"id":68933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11584:78:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7369676e61747572657320766572696669636174696f6e206661696c6564","id":68934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11676:32:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_42f70f68087ddd2ea90e0adc36eeb88121bbdb06c88480a0c6a87e4a00dde3b2","typeString":"literal_string \"signatures verification failed\""},"value":"signatures verification failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_42f70f68087ddd2ea90e0adc36eeb88121bbdb06c88480a0c6a87e4a00dde3b2","typeString":"literal_string \"signatures verification failed\""}],"id":68925,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11563:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11563:155:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68936,"nodeType":"ExpressionStatement","src":"11563:155:120"}]},"baseFunctions":[65464],"functionSelector":"e97d3eb3","implemented":true,"kind":"function","modifiers":[],"name":"commitCodes","nameLocation":"10398:11:120","parameters":{"id":68814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68810,"mutability":"mutable","name":"_codeCommitments","nameLocation":"10441:16:120","nodeType":"VariableDeclaration","scope":68938,"src":"10410:47:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$69604_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":68808,"nodeType":"UserDefinedTypeName","pathNode":{"id":68807,"name":"Gear.CodeCommitment","nameLocations":["10410:4:120","10415:14:120"],"nodeType":"IdentifierPath","referencedDeclaration":69604,"src":"10410:19:120"},"referencedDeclaration":69604,"src":"10410:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$69604_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":68809,"nodeType":"ArrayTypeName","src":"10410:21:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$69604_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":68813,"mutability":"mutable","name":"_signatures","nameLocation":"10476:11:120","nodeType":"VariableDeclaration","scope":68938,"src":"10459:28:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":68811,"name":"bytes","nodeType":"ElementaryTypeName","src":"10459:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":68812,"nodeType":"ArrayTypeName","src":"10459:7:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"10409:79:120"},"returnParameters":{"id":68815,"nodeType":"ParameterList","parameters":[],"src":"10498:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":69018,"nodeType":"FunctionDefinition","src":"11731:798:120","nodes":[],"body":{"id":69017,"nodeType":"Block","src":"11876:653:120","nodes":[],"statements":[{"assignments":[68952],"declarations":[{"constant":false,"id":68952,"mutability":"mutable","name":"router","nameLocation":"11902:6:120","nodeType":"VariableDeclaration","scope":69017,"src":"11886:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":68951,"nodeType":"UserDefinedTypeName","pathNode":{"id":68950,"name":"Storage","nameLocations":["11886:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"11886:7:120"},"referencedDeclaration":65258,"src":"11886:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":68955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":68953,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"11911:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":68954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11911:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11886:34:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":68964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":68957,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68952,"src":"11938:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":68958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11945:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"11938:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":68959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11958:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69620,"src":"11938:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":68962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11974:1:120","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":68961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11966:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":68960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11966:7:120","typeDescriptions":{}}},"id":68963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11966:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11938:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f6f6b757047656e6573697348617368282960206669727374","id":68965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11978:58:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""},"value":"router genesis is zero; call `lookupGenesisHash()` first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""}],"id":68956,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11930:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":68966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11930:107:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68967,"nodeType":"ExpressionStatement","src":"11930:107:120"},{"assignments":[68969],"declarations":[{"constant":false,"id":68969,"mutability":"mutable","name":"blockCommitmentsHashes","nameLocation":"12061:22:120","nodeType":"VariableDeclaration","scope":69017,"src":"12048:35:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":68968,"name":"bytes","nodeType":"ElementaryTypeName","src":"12048:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":68970,"nodeType":"VariableDeclarationStatement","src":"12048:35:120"},{"body":{"id":69003,"nodeType":"Block","src":"12149:207:120","statements":[{"assignments":[68986],"declarations":[{"constant":false,"id":68986,"mutability":"mutable","name":"blockCommitment","nameLocation":"12193:15:120","nodeType":"VariableDeclaration","scope":69003,"src":"12163:45:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment"},"typeName":{"id":68985,"nodeType":"UserDefinedTypeName","pathNode":{"id":68984,"name":"Gear.BlockCommitment","nameLocations":["12163:4:120","12168:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":69599,"src":"12163:20:120"},"referencedDeclaration":69599,"src":"12163:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_storage_ptr","typeString":"struct Gear.BlockCommitment"}},"visibility":"internal"}],"id":68990,"initialValue":{"baseExpression":{"id":68987,"name":"_blockCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68942,"src":"12211:17:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$69599_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata[] calldata"}},"id":68989,"indexExpression":{"id":68988,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68972,"src":"12229:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12211:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"12163:68:120"},{"expression":{"id":69001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":68991,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68969,"src":"12245:22:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":68995,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68969,"src":"12283:22:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"id":68997,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68952,"src":"12320:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":68998,"name":"blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68986,"src":"12328:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}],"id":68996,"name":"_commitBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69197,"src":"12307:12:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$65258_storage_ptr_$_t_struct$_BlockCommitment_$69599_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BlockCommitment calldata) returns (bytes32)"}},"id":68999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12307:37:120","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":68993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12270:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":68992,"name":"bytes","nodeType":"ElementaryTypeName","src":"12270:5:120","typeDescriptions":{}}},"id":68994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12276:6:120","memberName":"concat","nodeType":"MemberAccess","src":"12270:12:120","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":69000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12270:75:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12245:100:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":69002,"nodeType":"ExpressionStatement","src":"12245:100:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":68978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":68975,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68972,"src":"12114:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":68976,"name":"_blockCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68942,"src":"12118:17:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$69599_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata[] calldata"}},"id":68977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12136:6:120","memberName":"length","nodeType":"MemberAccess","src":"12118:24:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12114:28:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69004,"initializationExpression":{"assignments":[68972],"declarations":[{"constant":false,"id":68972,"mutability":"mutable","name":"i","nameLocation":"12107:1:120","nodeType":"VariableDeclaration","scope":69004,"src":"12099:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":68971,"name":"uint256","nodeType":"ElementaryTypeName","src":"12099:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":68974,"initialValue":{"hexValue":"30","id":68973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12111:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12099:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":68980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12144:3:120","subExpression":{"id":68979,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68972,"src":"12144:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":68981,"nodeType":"ExpressionStatement","src":"12144:3:120"},"nodeType":"ForStatement","src":"12094:262:120"},{"expression":{"arguments":[{"arguments":[{"id":69008,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68952,"src":"12411:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"arguments":[{"id":69010,"name":"blockCommitmentsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68969,"src":"12429:22:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":69009,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12419:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12419:33:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":69012,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68945,"src":"12454:11:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"expression":{"id":69006,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"12387:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":69007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12392:18:120","memberName":"validateSignatures","nodeType":"MemberAccess","referencedDeclaration":69990,"src":"12387:23:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$65258_storage_ptr_$_t_bytes32_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes calldata[] calldata) view returns (bool)"}},"id":69013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12387:79:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7369676e61747572657320766572696669636174696f6e206661696c6564","id":69014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12480:32:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_42f70f68087ddd2ea90e0adc36eeb88121bbdb06c88480a0c6a87e4a00dde3b2","typeString":"literal_string \"signatures verification failed\""},"value":"signatures verification failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_42f70f68087ddd2ea90e0adc36eeb88121bbdb06c88480a0c6a87e4a00dde3b2","typeString":"literal_string \"signatures verification failed\""}],"id":69005,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12366:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":69015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12366:156:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69016,"nodeType":"ExpressionStatement","src":"12366:156:120"}]},"baseFunctions":[65475],"functionSelector":"01b1d156","implemented":true,"kind":"function","modifiers":[{"id":68948,"kind":"modifierInvocation","modifierName":{"id":68947,"name":"nonReentrant","nameLocations":["11859:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":44262,"src":"11859:12:120"},"nodeType":"ModifierInvocation","src":"11859:12:120"}],"name":"commitBlocks","nameLocation":"11740:12:120","parameters":{"id":68946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68942,"mutability":"mutable","name":"_blockCommitments","nameLocation":"11785:17:120","nodeType":"VariableDeclaration","scope":69018,"src":"11753:49:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$69599_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.BlockCommitment[]"},"typeName":{"baseType":{"id":68940,"nodeType":"UserDefinedTypeName","pathNode":{"id":68939,"name":"Gear.BlockCommitment","nameLocations":["11753:4:120","11758:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":69599,"src":"11753:20:120"},"referencedDeclaration":69599,"src":"11753:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_storage_ptr","typeString":"struct Gear.BlockCommitment"}},"id":68941,"nodeType":"ArrayTypeName","src":"11753:22:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BlockCommitment_$69599_storage_$dyn_storage_ptr","typeString":"struct Gear.BlockCommitment[]"}},"visibility":"internal"},{"constant":false,"id":68945,"mutability":"mutable","name":"_signatures","nameLocation":"11821:11:120","nodeType":"VariableDeclaration","scope":69018,"src":"11804:28:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":68943,"name":"bytes","nodeType":"ElementaryTypeName","src":"11804:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":68944,"nodeType":"ArrayTypeName","src":"11804:7:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11752:81:120"},"returnParameters":{"id":68949,"nodeType":"ParameterList","parameters":[],"src":"11876:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":69099,"nodeType":"FunctionDefinition","src":"12571:887:120","nodes":[],"body":{"id":69098,"nodeType":"Block","src":"12653:805:120","nodes":[],"statements":[{"assignments":[69029],"declarations":[{"constant":false,"id":69029,"mutability":"mutable","name":"router","nameLocation":"12679:6:120","nodeType":"VariableDeclaration","scope":69098,"src":"12663:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":69028,"nodeType":"UserDefinedTypeName","pathNode":{"id":69027,"name":"Storage","nameLocations":["12663:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"12663:7:120"},"referencedDeclaration":65258,"src":"12663:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":69032,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":69030,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69375,"src":"12688:7:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$65258_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":69031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12688:9:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12663:34:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":69041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":69034,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69029,"src":"12715:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12722:12:120","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":65233,"src":"12715:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$69625_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":69036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12735:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69620,"src":"12715:24:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":69039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12751:1:120","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":69038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12743:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":69037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12743:7:120","typeDescriptions":{}}},"id":69040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12743:10:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12715:38:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"726f757465722067656e65736973206973207a65726f3b2063616c6c20606c6f6f6b757047656e6573697348617368282960206669727374","id":69042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12755:58:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""},"value":"router genesis is zero; call `lookupGenesisHash()` first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fec8ede65c0caef3899b3174f258c732d5616cc4144b82fcdbac009109d42dc","typeString":"literal_string \"router genesis is zero; call `lookupGenesisHash()` first\""}],"id":69033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12707:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":69043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12707:107:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69044,"nodeType":"ExpressionStatement","src":"12707:107:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"},"id":69054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":69046,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69029,"src":"12846:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12853:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"12846:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":69048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12866:5:120","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":69642,"src":"12846:25:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$69608_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":69050,"indexExpression":{"id":69049,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69020,"src":"12872:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12846:34:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":69051,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"12884:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":69052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12889:9:120","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":69608,"src":"12884:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$69608_$","typeString":"type(enum Gear.CodeState)"}},"id":69053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12899:9:120","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":69607,"src":"12884:24:120","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$69608","typeString":"enum Gear.CodeState"}},"src":"12846:62:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206d7573742062652076616c696461746564206265666f72652070726f6772616d206372656174696f6e","id":69055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12922:48:120","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":69045,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12825:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":69056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12825:155:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69057,"nodeType":"ExpressionStatement","src":"12825:155:120"},{"assignments":[69059],"declarations":[{"constant":false,"id":69059,"mutability":"mutable","name":"actorId","nameLocation":"13149:7:120","nodeType":"VariableDeclaration","scope":69098,"src":"13141:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69058,"name":"address","nodeType":"ElementaryTypeName","src":"13141:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":69073,"initialValue":{"arguments":[{"expression":{"expression":{"id":69062,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69029,"src":"13197:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13204:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"13197:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":69064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13218:11:120","memberName":"mirrorProxy","nodeType":"MemberAccess","referencedDeclaration":69577,"src":"13197:32:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":69068,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69020,"src":"13258:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":69069,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69022,"src":"13267:5:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13241:3:120","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":69067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13245:12:120","memberName":"encodePacked","nodeType":"MemberAccess","src":"13241:16:120","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":69070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13241:32:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":69065,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13231:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13231:43:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69060,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42512,"src":"13171:6:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$42512_$","typeString":"type(library Clones)"}},"id":69061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13178:18:120","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":42430,"src":"13171:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":69072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13171:104:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13141:134:120"},{"expression":{"id":69082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":69074,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69029,"src":"13286:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13293:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"13286:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":69079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13306:8:120","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":69646,"src":"13286:28:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":69080,"indexExpression":{"id":69077,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69059,"src":"13315:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13286:37:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":69081,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69020,"src":"13326:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13286:47:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":69083,"nodeType":"ExpressionStatement","src":"13286:47:120"},{"expression":{"id":69089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13343:35:120","subExpression":{"expression":{"expression":{"id":69084,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69029,"src":"13343:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13350:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"13343:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":69088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13363:13:120","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":69648,"src":"13343:33:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69090,"nodeType":"ExpressionStatement","src":"13343:35:120"},{"eventCall":{"arguments":[{"id":69092,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69059,"src":"13409:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":69093,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69020,"src":"13418:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":69091,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65296,"src":"13394:14:120","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":69094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13394:32:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69095,"nodeType":"EmitStatement","src":"13389:37:120"},{"expression":{"id":69096,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69059,"src":"13444:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":69026,"id":69097,"nodeType":"Return","src":"13437:14:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"12580:14:120","parameters":{"id":69023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69020,"mutability":"mutable","name":"_codeId","nameLocation":"12603:7:120","nodeType":"VariableDeclaration","scope":69099,"src":"12595:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12595:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":69022,"mutability":"mutable","name":"_salt","nameLocation":"12620:5:120","nodeType":"VariableDeclaration","scope":69099,"src":"12612:13:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12612:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12594:32:120"},"returnParameters":{"id":69026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69099,"src":"12644:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69024,"name":"address","nodeType":"ElementaryTypeName","src":"12644:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12643:9:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":69128,"nodeType":"FunctionDefinition","src":"13464:270:120","nodes":[],"body":{"id":69127,"nodeType":"Block","src":"13571:163:120","nodes":[],"statements":[{"assignments":[69111],"declarations":[{"constant":false,"id":69111,"mutability":"mutable","name":"decoder","nameLocation":"13589:7:120","nodeType":"VariableDeclaration","scope":69127,"src":"13581:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69110,"name":"address","nodeType":"ElementaryTypeName","src":"13581:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":69117,"initialValue":{"arguments":[{"id":69114,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69101,"src":"13625:15:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":69115,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69103,"src":"13642:5:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69112,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42512,"src":"13599:6:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$42512_$","typeString":"type(library Clones)"}},"id":69113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13606:18:120","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":42430,"src":"13599:25:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":69116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13599:49:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13581:67:120"},{"expression":{"arguments":[{"id":69122,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69105,"src":"13694:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":69119,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69111,"src":"13674:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":69118,"name":"IMirrorDecoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65215,"src":"13659:14:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirrorDecoder_$65215_$","typeString":"type(contract IMirrorDecoder)"}},"id":69120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13659:23:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirrorDecoder_$65215","typeString":"contract IMirrorDecoder"}},"id":69121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13683:10:120","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":65185,"src":"13659:34:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":69123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13659:43:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69124,"nodeType":"ExpressionStatement","src":"13659:43:120"},{"expression":{"id":69125,"name":"decoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69111,"src":"13720:7:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":69109,"id":69126,"nodeType":"Return","src":"13713:14:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createDecoder","nameLocation":"13473:14:120","parameters":{"id":69106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69101,"mutability":"mutable","name":"_implementation","nameLocation":"13496:15:120","nodeType":"VariableDeclaration","scope":69128,"src":"13488:23:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69100,"name":"address","nodeType":"ElementaryTypeName","src":"13488:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":69103,"mutability":"mutable","name":"_salt","nameLocation":"13521:5:120","nodeType":"VariableDeclaration","scope":69128,"src":"13513:13:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13513:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":69105,"mutability":"mutable","name":"_mirror","nameLocation":"13536:7:120","nodeType":"VariableDeclaration","scope":69128,"src":"13528:15:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69104,"name":"address","nodeType":"ElementaryTypeName","src":"13528:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13487:57:120"},"returnParameters":{"id":69109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69128,"src":"13562:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69107,"name":"address","nodeType":"ElementaryTypeName","src":"13562:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13561:9:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":69197,"nodeType":"FunctionDefinition","src":"13740:1094:120","nodes":[],"body":{"id":69196,"nodeType":"Block","src":"13880:954:120","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":69145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":69140,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69131,"src":"13911:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13918:20:120","memberName":"latestCommittedBlock","nodeType":"MemberAccess","referencedDeclaration":65237,"src":"13911:27:120","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBlockInfo_$69613_storage","typeString":"struct Gear.CommittedBlockInfo storage ref"}},"id":69142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13939:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69610,"src":"13911:32:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":69143,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69134,"src":"13947:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13964:22:120","memberName":"previousCommittedBlock","nodeType":"MemberAccess","referencedDeclaration":69592,"src":"13947:39:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13911:75:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726576696f757320636f6d6d697474656420626c6f636b2068617368","id":69146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14000:39:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a13fb2485de3ac50aa69e9cf88b3994102e3ec72af73005448c8624cb4f1ed7","typeString":"literal_string \"invalid previous committed block hash\""},"value":"invalid previous committed block hash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4a13fb2485de3ac50aa69e9cf88b3994102e3ec72af73005448c8624cb4f1ed7","typeString":"literal_string \"invalid previous committed block hash\""}],"id":69139,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13890:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":69147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13890:159:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69148,"nodeType":"ExpressionStatement","src":"13890:159:120"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":69152,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69134,"src":"14092:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14109:16:120","memberName":"predecessorBlock","nodeType":"MemberAccess","referencedDeclaration":69594,"src":"14092:33:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69150,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"14068:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":69151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14073:18:120","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":69784,"src":"14068:23:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":69154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14068:58:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c6c6f776564207072656465636573736f7220626c6f636b207761736e277420666f756e64","id":69155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14128:40:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3ebb0be53d5bf46a2d46be11aa5ba444a61071a9171c96feb964b4bc5f6539a","typeString":"literal_string \"allowed predecessor block wasn't found\""},"value":"allowed predecessor block wasn't found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b3ebb0be53d5bf46a2d46be11aa5ba444a61071a9171c96feb964b4bc5f6539a","typeString":"literal_string \"allowed predecessor block wasn't found\""}],"id":69149,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14060:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":69156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14060:109:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69157,"nodeType":"ExpressionStatement","src":"14060:109:120"},{"expression":{"id":69168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":69158,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69131,"src":"14309:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14316:20:120","memberName":"latestCommittedBlock","nodeType":"MemberAccess","referencedDeclaration":65237,"src":"14309:27:120","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBlockInfo_$69613_storage","typeString":"struct Gear.CommittedBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":69163,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69134,"src":"14363:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14380:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69588,"src":"14363:21:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":69165,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69134,"src":"14386:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14403:9:120","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":69590,"src":"14386:26:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":69161,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"14339:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":69162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14344:18:120","memberName":"CommittedBlockInfo","nodeType":"MemberAccess","referencedDeclaration":69613,"src":"14339:23:120","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBlockInfo_$69613_storage_ptr_$","typeString":"type(struct Gear.CommittedBlockInfo storage pointer)"}},"id":69167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14339:74:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBlockInfo_$69613_memory_ptr","typeString":"struct Gear.CommittedBlockInfo memory"}},"src":"14309:104:120","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBlockInfo_$69613_storage","typeString":"struct Gear.CommittedBlockInfo storage ref"}},"id":69169,"nodeType":"ExpressionStatement","src":"14309:104:120"},{"assignments":[69171],"declarations":[{"constant":false,"id":69171,"mutability":"mutable","name":"transitionsHashesHash","nameLocation":"14432:21:120","nodeType":"VariableDeclaration","scope":69196,"src":"14424:29:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14424:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":69177,"initialValue":{"arguments":[{"id":69173,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69131,"src":"14475:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":69174,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69134,"src":"14483:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14500:11:120","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":69598,"src":"14483:28:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69673_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69673_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":69172,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69282,"src":"14456:18:120","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$65258_storage_ptr_$_t_array$_t_struct$_StateTransition_$69673_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":69176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14456:56:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14424:88:120"},{"eventCall":{"arguments":[{"expression":{"id":69179,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69134,"src":"14543:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14560:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69588,"src":"14543:21:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":69178,"name":"BlockCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65263,"src":"14528:14:120","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":69181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14528:37:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69182,"nodeType":"EmitStatement","src":"14523:42:120"},{"expression":{"arguments":[{"expression":{"id":69185,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69134,"src":"14621:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14638:4:120","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":69588,"src":"14621:21:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":69187,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69134,"src":"14656:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14673:9:120","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":69590,"src":"14656:26:120","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":69189,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69134,"src":"14696:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14713:22:120","memberName":"previousCommittedBlock","nodeType":"MemberAccess","referencedDeclaration":69592,"src":"14696:39:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":69191,"name":"_blockCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69134,"src":"14749:16:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment calldata"}},"id":69192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14766:16:120","memberName":"predecessorBlock","nodeType":"MemberAccess","referencedDeclaration":69594,"src":"14749:33:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":69193,"name":"transitionsHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69171,"src":"14796:21:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69183,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70148,"src":"14583:4:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$70148_$","typeString":"type(library Gear)"}},"id":69184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14588:19:120","memberName":"blockCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":69740,"src":"14583:24:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":69194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14583:244:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":69138,"id":69195,"nodeType":"Return","src":"14576:251:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitBlock","nameLocation":"13749:12:120","parameters":{"id":69135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69131,"mutability":"mutable","name":"router","nameLocation":"13778:6:120","nodeType":"VariableDeclaration","scope":69197,"src":"13762:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":69130,"nodeType":"UserDefinedTypeName","pathNode":{"id":69129,"name":"Storage","nameLocations":["13762:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"13762:7:120"},"referencedDeclaration":65258,"src":"13762:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":69134,"mutability":"mutable","name":"_blockCommitment","nameLocation":"13816:16:120","nodeType":"VariableDeclaration","scope":69197,"src":"13786:46:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_calldata_ptr","typeString":"struct Gear.BlockCommitment"},"typeName":{"id":69133,"nodeType":"UserDefinedTypeName","pathNode":{"id":69132,"name":"Gear.BlockCommitment","nameLocations":["13786:4:120","13791:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":69599,"src":"13786:20:120"},"referencedDeclaration":69599,"src":"13786:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_BlockCommitment_$69599_storage_ptr","typeString":"struct Gear.BlockCommitment"}},"visibility":"internal"}],"src":"13761:72:120"},"returnParameters":{"id":69138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69197,"src":"13867:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13867:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13866:9:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":69282,"nodeType":"FunctionDefinition","src":"14840:839:120","nodes":[],"body":{"id":69281,"nodeType":"Block","src":"14984:695:120","nodes":[],"statements":[{"assignments":[69210],"declarations":[{"constant":false,"id":69210,"mutability":"mutable","name":"transitionsHashes","nameLocation":"15007:17:120","nodeType":"VariableDeclaration","scope":69281,"src":"14994:30:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":69209,"name":"bytes","nodeType":"ElementaryTypeName","src":"14994:5:120","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":69211,"nodeType":"VariableDeclarationStatement","src":"14994:30:120"},{"body":{"id":69275,"nodeType":"Block","src":"15085:542:120","statements":[{"assignments":[69227],"declarations":[{"constant":false,"id":69227,"mutability":"mutable","name":"transition","nameLocation":"15129:10:120","nodeType":"VariableDeclaration","scope":69275,"src":"15099:40:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":69226,"nodeType":"UserDefinedTypeName","pathNode":{"id":69225,"name":"Gear.StateTransition","nameLocations":["15099:4:120","15104:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":69673,"src":"15099:20:120"},"referencedDeclaration":69673,"src":"15099:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":69231,"initialValue":{"baseExpression":{"id":69228,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69204,"src":"15142:12:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69673_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":69230,"indexExpression":{"id":69229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69213,"src":"15155:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15142:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"15099:58:120"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":69240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":69233,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69200,"src":"15197:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15204:12:120","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":65257,"src":"15197:19:120","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$69651_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":69235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15217:8:120","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":69646,"src":"15197:28:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":69238,"indexExpression":{"expression":{"id":69236,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69227,"src":"15226:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":69237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15237:7:120","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":69658,"src":"15226:18:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15197:48:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":69239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15249:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15197:53:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f756c646e277420706572666f726d207472616e736974696f6e20666f7220756e6b6e6f776e2070726f6772616d","id":69241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15252:49:120","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":69232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15172:7:120","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":69242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15172:143:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69243,"nodeType":"ExpressionStatement","src":"15172:143:120"},{"expression":{"arguments":[{"expression":{"id":69250,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69227,"src":"15386:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":69251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15397:7:120","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":69658,"src":"15386:18:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":69252,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69227,"src":"15406:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":69253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15417:14:120","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":69664,"src":"15406:25:120","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"expression":{"expression":{"id":69245,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69200,"src":"15343:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":69246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15350:13:120","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":65241,"src":"15343:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$69580_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":69247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15364:11:120","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":69579,"src":"15343:32:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":69244,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65497,"src":"15330:12:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$65497_$","typeString":"type(contract IWrappedVara)"}},"id":69248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15330:46:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$65497","typeString":"contract IWrappedVara"}},"id":69249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15377:8:120","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43780,"src":"15330:55:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":69254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15330:102:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69255,"nodeType":"ExpressionStatement","src":"15330:102:120"},{"assignments":[69257],"declarations":[{"constant":false,"id":69257,"mutability":"mutable","name":"transitionHash","nameLocation":"15455:14:120","nodeType":"VariableDeclaration","scope":69275,"src":"15447:22:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69256,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15447:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":69265,"initialValue":{"arguments":[{"id":69263,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69227,"src":"15523:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":69259,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69227,"src":"15480:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":69260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15491:7:120","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":69658,"src":"15480:18:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":69258,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65178,"src":"15472:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$65178_$","typeString":"type(contract IMirror)"}},"id":69261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15472:27:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$65178","typeString":"contract IMirror"}},"id":69262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15500:22:120","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":65177,"src":"15472:50:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StateTransition_$69673_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) external returns (bytes32)"}},"id":69264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15472:62:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15447:87:120"},{"expression":{"id":69273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":69266,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69210,"src":"15549:17:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":69270,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69210,"src":"15582:17:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":69271,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69257,"src":"15601:14:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15569:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":69267,"name":"bytes","nodeType":"ElementaryTypeName","src":"15569:5:120","typeDescriptions":{}}},"id":69269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15575:6:120","memberName":"concat","nodeType":"MemberAccess","src":"15569:12:120","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":69272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15569:47:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"15549:67:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":69274,"nodeType":"ExpressionStatement","src":"15549:67:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69216,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69213,"src":"15055:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":69217,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69204,"src":"15059:12:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69673_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":69218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15072:6:120","memberName":"length","nodeType":"MemberAccess","src":"15059:19:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15055:23:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69276,"initializationExpression":{"assignments":[69213],"declarations":[{"constant":false,"id":69213,"mutability":"mutable","name":"i","nameLocation":"15048:1:120","nodeType":"VariableDeclaration","scope":69276,"src":"15040:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69212,"name":"uint256","nodeType":"ElementaryTypeName","src":"15040:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":69215,"initialValue":{"hexValue":"30","id":69214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15052:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15040:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":69221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15080:3:120","subExpression":{"id":69220,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69213,"src":"15080:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69222,"nodeType":"ExpressionStatement","src":"15080:3:120"},"nodeType":"ForStatement","src":"15035:592:120"},{"expression":{"arguments":[{"id":69278,"name":"transitionsHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69210,"src":"15654:17:120","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":69277,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15644:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15644:28:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":69208,"id":69280,"nodeType":"Return","src":"15637:35:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"14849:18:120","parameters":{"id":69205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69200,"mutability":"mutable","name":"router","nameLocation":"14884:6:120","nodeType":"VariableDeclaration","scope":69282,"src":"14868:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":69199,"nodeType":"UserDefinedTypeName","pathNode":{"id":69198,"name":"Storage","nameLocations":["14868:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"14868:7:120"},"referencedDeclaration":65258,"src":"14868:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":69204,"mutability":"mutable","name":"_transitions","nameLocation":"14924:12:120","nodeType":"VariableDeclaration","scope":69282,"src":"14892:44:120","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69673_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":69202,"nodeType":"UserDefinedTypeName","pathNode":{"id":69201,"name":"Gear.StateTransition","nameLocations":["14892:4:120","14897:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":69673,"src":"14892:20:120"},"referencedDeclaration":69673,"src":"14892:20:120","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$69673_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":69203,"nodeType":"ArrayTypeName","src":"14892:22:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$69673_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"14867:70:120"},"returnParameters":{"id":69208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69282,"src":"14971:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14971:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14970:9:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":69362,"nodeType":"FunctionDefinition","src":"15685:618:120","nodes":[],"body":{"id":69361,"nodeType":"Block","src":"15846:457:120","nodes":[],"statements":[{"body":{"id":69320,"nodeType":"Block","src":"15910:114:120","statements":[{"assignments":[69306],"declarations":[{"constant":false,"id":69306,"mutability":"mutable","name":"_validator","nameLocation":"15932:10:120","nodeType":"VariableDeclaration","scope":69320,"src":"15924:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69305,"name":"address","nodeType":"ElementaryTypeName","src":"15924:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":69311,"initialValue":{"baseExpression":{"expression":{"id":69307,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69285,"src":"15945:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15957:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69570,"src":"15945:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":69310,"indexExpression":{"id":69309,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69294,"src":"15962:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15945:19:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15924:40:120"},{"expression":{"id":69318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":69312,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69285,"src":"15978:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15990:3:120","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":69567,"src":"15978:15:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":69316,"indexExpression":{"id":69314,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69306,"src":"15994:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15978:27:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":69317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16008:5:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"15978:35:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69319,"nodeType":"ExpressionStatement","src":"15978:35:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69294,"src":"15876:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":69298,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69285,"src":"15880:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15892:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69570,"src":"15880:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":69300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15897:6:120","memberName":"length","nodeType":"MemberAccess","src":"15880:23:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15876:27:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69321,"initializationExpression":{"assignments":[69294],"declarations":[{"constant":false,"id":69294,"mutability":"mutable","name":"i","nameLocation":"15869:1:120","nodeType":"VariableDeclaration","scope":69321,"src":"15861:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69293,"name":"uint256","nodeType":"ElementaryTypeName","src":"15861:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":69296,"initialValue":{"hexValue":"30","id":69295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15873:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15861:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":69303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15905:3:120","subExpression":{"id":69302,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69294,"src":"15905:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69304,"nodeType":"ExpressionStatement","src":"15905:3:120"},"nodeType":"ForStatement","src":"15856:168:120"},{"body":{"id":69347,"nodeType":"Block","src":"16085:111:120","statements":[{"assignments":[69334],"declarations":[{"constant":false,"id":69334,"mutability":"mutable","name":"_validator","nameLocation":"16107:10:120","nodeType":"VariableDeclaration","scope":69347,"src":"16099:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69333,"name":"address","nodeType":"ElementaryTypeName","src":"16099:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":69338,"initialValue":{"baseExpression":{"id":69335,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69288,"src":"16120:14:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":69337,"indexExpression":{"id":69336,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69323,"src":"16135:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16120:17:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16099:38:120"},{"expression":{"id":69345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":69339,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69285,"src":"16151:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16163:3:120","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":69567,"src":"16151:15:120","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":69343,"indexExpression":{"id":69341,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69334,"src":"16167:10:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16151:27:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":69344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16181:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16151:34:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69346,"nodeType":"ExpressionStatement","src":"16151:34:120"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69326,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69323,"src":"16053:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":69327,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69288,"src":"16057:14:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":69328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16072:6:120","memberName":"length","nodeType":"MemberAccess","src":"16057:21:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16053:25:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":69348,"initializationExpression":{"assignments":[69323],"declarations":[{"constant":false,"id":69323,"mutability":"mutable","name":"i","nameLocation":"16046:1:120","nodeType":"VariableDeclaration","scope":69348,"src":"16038:9:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69322,"name":"uint256","nodeType":"ElementaryTypeName","src":"16038:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":69325,"initialValue":{"hexValue":"30","id":69324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16050:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16038:13:120"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":69331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16080:3:120","subExpression":{"id":69330,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69323,"src":"16080:1:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69332,"nodeType":"ExpressionStatement","src":"16080:3:120"},"nodeType":"ForStatement","src":"16033:163:120"},{"expression":{"id":69353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":69349,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69285,"src":"16205:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16217:4:120","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":69570,"src":"16205:16:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":69352,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69288,"src":"16224:14:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"16205:33:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":69354,"nodeType":"ExpressionStatement","src":"16205:33:120"},{"expression":{"id":69359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":69355,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69285,"src":"16248:11:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":69357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16260:16:120","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":69572,"src":"16248:28:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":69358,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69290,"src":"16279:17:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16248:48:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":69360,"nodeType":"ExpressionStatement","src":"16248:48:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"15694:16:120","parameters":{"id":69291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69285,"mutability":"mutable","name":"_validators","nameLocation":"15744:11:120","nodeType":"VariableDeclaration","scope":69362,"src":"15720:35:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":69284,"nodeType":"UserDefinedTypeName","pathNode":{"id":69283,"name":"Gear.Validators","nameLocations":["15720:4:120","15725:10:120"],"nodeType":"IdentifierPath","referencedDeclaration":69573,"src":"15720:15:120"},"referencedDeclaration":69573,"src":"15720:15:120","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$69573_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":69288,"mutability":"mutable","name":"_newValidators","nameLocation":"15782:14:120","nodeType":"VariableDeclaration","scope":69362,"src":"15765:31:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":69286,"name":"address","nodeType":"ElementaryTypeName","src":"15765:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":69287,"nodeType":"ArrayTypeName","src":"15765:9:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":69290,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"15814:17:120","nodeType":"VariableDeclaration","scope":69362,"src":"15806:25:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69289,"name":"uint256","nodeType":"ElementaryTypeName","src":"15806:7:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15710:127:120"},"returnParameters":{"id":69292,"nodeType":"ParameterList","parameters":[],"src":"15846:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":69375,"nodeType":"FunctionDefinition","src":"16309:192:120","nodes":[],"body":{"id":69374,"nodeType":"Block","src":"16374:127:120","nodes":[],"statements":[{"assignments":[69369],"declarations":[{"constant":false,"id":69369,"mutability":"mutable","name":"slot","nameLocation":"16392:4:120","nodeType":"VariableDeclaration","scope":69374,"src":"16384:12:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16384:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":69372,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":69370,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69387,"src":"16399:15:120","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":69371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16399:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16384:32:120"},{"AST":{"nativeSrc":"16452:43:120","nodeType":"YulBlock","src":"16452:43:120","statements":[{"nativeSrc":"16466:19:120","nodeType":"YulAssignment","src":"16466:19:120","value":{"name":"slot","nativeSrc":"16481:4:120","nodeType":"YulIdentifier","src":"16481:4:120"},"variableNames":[{"name":"router.slot","nativeSrc":"16466:11:120","nodeType":"YulIdentifier","src":"16466:11:120"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":69366,"isOffset":false,"isSlot":true,"src":"16466:11:120","suffix":"slot","valueSize":1},{"declaration":69369,"isOffset":false,"isSlot":false,"src":"16481:4:120","valueSize":1}],"flags":["memory-safe"],"id":69373,"nodeType":"InlineAssembly","src":"16427:68:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"16318:7:120","parameters":{"id":69363,"nodeType":"ParameterList","parameters":[],"src":"16325:2:120"},"returnParameters":{"id":69367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69366,"mutability":"mutable","name":"router","nameLocation":"16366:6:120","nodeType":"VariableDeclaration","scope":69375,"src":"16350:22:120","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":69365,"nodeType":"UserDefinedTypeName","pathNode":{"id":69364,"name":"Storage","nameLocations":["16350:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65258,"src":"16350:7:120"},"referencedDeclaration":65258,"src":"16350:7:120","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$65258_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"16349:24:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":69387,"nodeType":"FunctionDefinition","src":"16507:128:120","nodes":[],"body":{"id":69386,"nodeType":"Block","src":"16565:70:120","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":69382,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67908,"src":"16609:12:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69380,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44431,"src":"16582:11:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44431_$","typeString":"type(library StorageSlot)"}},"id":69381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16594:14:120","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44364,"src":"16582:26:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44319_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":69383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16582:40:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44319_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":69384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16623:5:120","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44318,"src":"16582:46:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":69379,"id":69385,"nodeType":"Return","src":"16575:53:120"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"16516:15:120","parameters":{"id":69376,"nodeType":"ParameterList","parameters":[],"src":"16531:2:120"},"returnParameters":{"id":69379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69387,"src":"16556:7:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16556:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16555:9:120"},"scope":69433,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":69432,"nodeType":"FunctionDefinition","src":"16641:252:120","nodes":[],"body":{"id":69431,"nodeType":"Block","src":"16709:184:120","nodes":[],"statements":[{"assignments":[69395],"declarations":[{"constant":false,"id":69395,"mutability":"mutable","name":"slot","nameLocation":"16727:4:120","nodeType":"VariableDeclaration","scope":69431,"src":"16719:12:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":69394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16719:7:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":69421,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":69420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":69404,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69389,"src":"16779:9:120","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":69403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16773:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":69402,"name":"bytes","nodeType":"ElementaryTypeName","src":"16773:5:120","typeDescriptions":{}}},"id":69405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16773:16:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":69401,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16763:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:27:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":69400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16755:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":69399,"name":"uint256","nodeType":"ElementaryTypeName","src":"16755:7:120","typeDescriptions":{}}},"id":69407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16755:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":69408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16794:1:120","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16755:40:120","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":69397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16744:3:120","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":69398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16748:6:120","memberName":"encode","nodeType":"MemberAccess","src":"16744:10:120","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":69410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16744:52:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":69396,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16734:9:120","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":69411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16734:63:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":69419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"16800:23:120","subExpression":{"arguments":[{"arguments":[{"hexValue":"30786666","id":69416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16817:4:120","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":69415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16809:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":69414,"name":"uint256","nodeType":"ElementaryTypeName","src":"16809:7:120","typeDescriptions":{}}},"id":69417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16809:13:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":69413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16801:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":69412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16801:7:120","typeDescriptions":{}}},"id":69418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16801:22:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16734:89:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16719:104:120"},{"expression":{"id":69429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":69425,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67908,"src":"16860:12:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":69422,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44431,"src":"16833:11:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$44431_$","typeString":"type(library StorageSlot)"}},"id":69424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16845:14:120","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":44364,"src":"16833:26:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$44319_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":69426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16833:40:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$44319_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":69427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16874:5:120","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":44318,"src":"16833:46:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":69428,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69395,"src":"16882:4:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16833:53:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":69430,"nodeType":"ExpressionStatement","src":"16833:53:120"}]},"implemented":true,"kind":"function","modifiers":[{"id":69392,"kind":"modifierInvocation","modifierName":{"id":69391,"name":"onlyOwner","nameLocations":["16699:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":40227,"src":"16699:9:120"},"nodeType":"ModifierInvocation","src":"16699:9:120"}],"name":"_setStorageSlot","nameLocation":"16650:15:120","parameters":{"id":69390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69389,"mutability":"mutable","name":"namespace","nameLocation":"16680:9:120","nodeType":"VariableDeclaration","scope":69432,"src":"16666:23:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69388,"name":"string","nodeType":"ElementaryTypeName","src":"16666:6:120","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16665:25:120"},"returnParameters":{"id":69393,"nodeType":"ParameterList","parameters":[],"src":"16709:0:120"},"scope":69433,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":67900,"name":"IRouter","nameLocations":["709:7:120"],"nodeType":"IdentifierPath","referencedDeclaration":65486,"src":"709:7:120"},"id":67901,"nodeType":"InheritanceSpecifier","src":"709:7:120"},{"baseName":{"id":67902,"name":"OwnableUpgradeable","nameLocations":["718:18:120"],"nodeType":"IdentifierPath","referencedDeclaration":40332,"src":"718:18:120"},"id":67903,"nodeType":"InheritanceSpecifier","src":"718:18:120"},{"baseName":{"id":67904,"name":"ReentrancyGuardTransient","nameLocations":["738:24:120"],"nodeType":"IdentifierPath","referencedDeclaration":44307,"src":"738:24:120"},"id":67905,"nodeType":"InheritanceSpecifier","src":"738:24:120"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[69433,44307,40332,41480,40586,65486],"name":"Router","nameLocation":"699:6:120","scope":69434,"usedErrors":[40168,40173,40349,40352,44174,44180,44251,44961,44966,44971],"usedEvents":[40179,40357,65263,65270,65277,65282,65289,65296,65299]}],"license":"UNLICENSED"},"id":120} \ No newline at end of file diff --git a/ethexe/ethereum/TransparentUpgradeableProxy.json b/ethexe/ethereum/TransparentUpgradeableProxy.json index b9e25097781..3e7737a8c85 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":"0x60a0604052610a97803803806100148161026b565b92833981016060828203126102675761002c82610290565b61003860208401610290565b604084015190936001600160401b03821161026757019180601f8401121561026757825161006d610068826102a4565b61026b565b9381855260208501926020838301011161026757815f926020809301855e85010152813b15610246577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561022e575f809161012d945190845af43d15610226573d9161011e610068846102a4565b9283523d5f602085013e6102bf565b505b604051906104408083016001600160401b0381118482101761021257602092849261063784396001600160a01b031681520301905ff080156102075760018060a01b0316806080525f516020610a775f395f51905f52547f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6040805160018060a01b0384168152846020820152a181156101f4576001600160a01b031916175f516020610a775f395f51905f5255604051610319908161031e82396080518160070152f35b633173bdd160e11b5f525f60045260245ffd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6060916102bf565b505050341561012f5763b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761021257604052565b51906001600160a01b038216820361026757565b6001600160401b03811161021257601f01601f191660200190565b906102e357508051156102d457805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610314575b6102f4575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102ec56fe6080604052337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610066575f356001600160e01b03191663278f794360e11b1461005c576334ad5dbb60e21b5f5260045ffd5b61006461010a565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156100ab573d5ff35b3d5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100e957604052565b6100af565b67ffffffffffffffff81116100e957601f01601f191660200190565b36600411610193576040366003190112610193576004356001600160a01b03811690819003610193576024359067ffffffffffffffff8211610193573660238301121561019357816004013590610168610163836100ee565b6100c3565b918083523660248286010111610193576020815f92602461019197018387013784010152610197565b565b5f80fd5b90813b1561022b577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610213576102109161024c565b50565b50503461021c57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f8061027e93602081519101845af43d15610281573d9161026f610163846100ee565b9283523d5f602085013e610285565b90565b6060915b906102a9575080511561029a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806102da575b6102ba575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102b256fea264697066735822122021f763edfd503c6fd0b60e702d4606336df754d6e646e7f392b431d8159d1d7e64736f6c634300081c003360803460b857601f61044038819003918201601f19168301916001600160401b0383118484101760bc5780849260209460405283398101031260b857516001600160a01b0381169081900360b857801560a5575f80546001600160a01b031981168317825560405192916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a361036f90816100d18239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f5f3560e01c8063715018a6146102765780638da5cb5b1461024f5780639623609d1461012c578063ad3cb1cc146100df5763f2fde38b14610051575f80fd5b346100dc5760203660031901126100dc576004356001600160a01b038116908190036100da5761007f610313565b80156100c65781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b505b80fd5b50346100dc57806003193601126100dc57506101286040516101026040826102cd565b60058152640352e302e360dc1b60208201526040519182916020835260208301906102ef565b0390f35b506060366003190112610237576004356001600160a01b03811690819003610237576024356001600160a01b038116908190036102375760443567ffffffffffffffff8111610237573660238201121561023757806004013567ffffffffffffffff811161023b57604051916101ac601f8301601f1916602001846102cd565b818352366024838301011161023757815f9260246020930183860137830101526101d4610313565b823b156102375761020a925f9260405180958194829363278f794360e11b845260048401526040602484015260448301906102ef565b039134905af1801561022c5761021e575080f35b61022a91505f906102cd565b005b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b34610237575f366003190112610237575f546040516001600160a01b039091168152602090f35b34610237575f3660031901126102375761028e610313565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b90601f8019910116810190811067ffffffffffffffff82111761023b57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f546001600160a01b0316330361032657565b63118cdaa760e01b5f523360045260245ffdfea264697066735822122072d964e6e89c0990604c1cd0a5da2d38a6458c147c11f636005ef4deafc0d32d64736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103","sourceMap":"4314:2231:45:-:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;4314:2231:45;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;4314:2231:45;;;;;;;;;;;1748:29:39;;:34;1744:119;;811:66;4314:2231:45;;-1:-1:-1;;;;;;4314:2231:45;-1:-1:-1;;;;;4314:2231:45;;;;;;;;2407:36:39;-1:-1:-1;;2407:36:39;4314:2231:45;;2458:15:39;:11;;-1:-1:-1;4049:25:50;;4091:55;4049:25;;;;;;4314:2231:45;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;4314:2231:45;;;;4091:55:50;:::i;:::-;;2454:148:39;4314:2231:45;;;5290:28;;;;-1:-1:-1;;;;;5290:28:45;;;;;;;;4314:2231;5290:28;;;;;;-1:-1:-1;;;;;4314:2231:45;;;5290:28;;;-1:-1:-1;5290:28:45;;;;;4314:2231;;;;;;5273:46;;;-1:-1:-1;;;;;;;;;;;2868:66:39;3890:43;4314:2231:45;;;;;;;;;;;;;;;;;3890:43:39;3549:22;;3545:91;;-1:-1:-1;;;;;;4314:2231:45;;-1:-1:-1;;;;;;;;;;;4314:2231:45;;;;;;;;;5273:46;4314:2231;;;;;;3545:91:39;3594:31;;;-1:-1:-1;3594:31:39;-1:-1:-1;3594:31:39;4314:2231:45;;-1:-1:-1;3594:31:39;5290:28:45;4314:2231;;;-1:-1:-1;4314:2231:45;;;;;5290:28;4314:2231;;;-1:-1:-1;4314:2231:45;;;;;-1:-1:-1;4314:2231:45;;;;4091:55:50;:::i;2454:148:39:-;6163:9;;;;6159:70;2454:148;6159:70;6199:19;;;-1:-1:-1;6199:19:39;;-1:-1:-1;6199:19:39;1744:119;-1:-1:-1;;;;;1805:47:39;;;-1:-1:-1;;;;;4314:2231:45;;;;1805:47:39;4314:2231:45;;;1805:47:39;4314:2231:45;-1:-1:-1;4314:2231:45;;;;;;;;;-1:-1:-1;;4314:2231:45;;;-1:-1:-1;;;;;4314:2231:45;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4314:2231:45;;;;;;:::o;:::-;-1:-1:-1;;;;;4314:2231:45;;;;;;-1:-1:-1;;4314:2231:45;;;;:::o;4421:582:50:-;;4593:8;;-1:-1:-1;4314:2231:45;;5674:21:50;:17;;5799:158;;;;;;5670:354;5994:19;;;5694:1;5994:19;;5694:1;5994:19;4589:408;4314:2231:45;;4841:22:50;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:50;4917:24;;;-1:-1:-1;;;;;4314:2231:45;;;;4917:24:50;4314:2231:45;;;4917:24:50;4841:49;4867:18;;;:23;4841:49;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610066575f356001600160e01b03191663278f794360e11b1461005c576334ad5dbb60e21b5f5260045ffd5b61006461010a565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156100ab573d5ff35b3d5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100e957604052565b6100af565b67ffffffffffffffff81116100e957601f01601f191660200190565b36600411610193576040366003190112610193576004356001600160a01b03811690819003610193576024359067ffffffffffffffff8211610193573660238301121561019357816004013590610168610163836100ee565b6100c3565b918083523660248286010111610193576020815f92602461019197018387013784010152610197565b565b5f80fd5b90813b1561022b577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610213576102109161024c565b50565b50503461021c57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f8061027e93602081519101845af43d15610281573d9161026f610163846100ee565b9283523d5f602085013e610285565b90565b6060915b906102a9575080511561029a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806102da575b6102ba575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102b256fea264697066735822122021f763edfd503c6fd0b60e702d4606336df754d6e646e7f392b431d8159d1d7e64736f6c634300081c0033","sourceMap":"4314:2231:45:-:0;;;5816:10;5600:6;-1:-1:-1;;;;;4314:2231:45;5816:27;4314:2231;;5863:7;;-1:-1:-1;;;;;;5863:7:45;-1:-1:-1;;;5863:65:45;5874:54;;5955:24;;;5863:7;5955:24;;5863:7;5955:24;5859:201;;;:::i;:::-;4314:2231;5812:306;811:66:39;;-1:-1:-1;;;;;;;;;4314:2231:45;1019:819:40;-1:-1:-1;;1019:819:40;;;;;;;-1:-1:-1;1019:819:40;;;;;;-1:-1:-1;1019:819:40;;;-1:-1:-1;1019:819:40;4314:2231:45;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4314:2231:45;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;-1:-1:-1;;4314:2231:45;;;;:::o;6326:217::-;6441:8;6450:1;4314:2231;;;;6441:8;-1:-1:-1;;4314:2231:45;;;;6450:1;4314:2231;-1:-1:-1;;;;;4314:2231:45;;;;;;;;;;;;;;;;6441:8;4314:2231;;;;;;;;6450:1;4314:2231;;;;;;;:::i;:::-;;:::i;:::-;;;;;6441:8;4314:2231;;;;;;;;;;6441:8;4314:2231;;6531:4;4314:2231;;;;;;;;;;6531:4;:::i;:::-;6326:217::o;4314:2231::-;6441:8;4314:2231;;2264:344:39;;1748:29;;:34;1744:119;;811:66;4314:2231:45;;-1:-1:-1;;;;;;4314:2231:45;-1:-1:-1;;;;;4314:2231:45;;;;;;;;2407:36:39;-1:-1:-1;;2407:36:39;4314:2231:45;;2458:15:39;:11;;2489:53;;;:::i;:::-;;2264:344::o;2454:148::-;6163:9;;;6159:70;;2264:344::o;6159:70::-;6199:19;;;1781:1;6199:19;;1781:1;6199:19;1744:119;-1:-1:-1;;;;1781:1:39;1805:47;;;-1:-1:-1;;;;;4314:2231:45;;;;1805:47:39;4314:2231:45;;;1805:47:39;3900:253:50;4049:25;3900:253;4091:55;3900:253;4049:25;;;;;;;;4314:2231:45;;;;;;;;;;:::i;:::-;;;;;4049:25:50;;4314:2231:45;;;4091:55:50;:::i;:::-;3900:253;:::o;4314:2231:45:-;;;4421:582:50;;4593:8;;-1:-1:-1;4314:2231:45;;5674:21:50;:17;;5799:158;;;;;;5670:354;5994:19;;;5694:1;5994:19;;5694:1;5994:19;4589:408;4314:2231:45;;4841:22:50;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:50;4917:24;;;-1:-1:-1;;;;;4314:2231:45;;;;4917:24:50;4314:2231:45;;;4917:24:50;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"43111":[{"start":7,"length":32}]}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"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\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"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\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"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\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"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/","symbiotic-core/=lib/symbiotic-core/"],"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":"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a","urls":["bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d","dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"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":"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0","urls":["bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0","dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c","urls":["bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347","dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"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":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","id":43221,"exportedSymbols":{"ERC1967Proxy":[42550],"ERC1967Utils":[42844],"IERC1967":[42187],"ITransparentUpgradeableProxy":[43106],"ProxyAdmin":[43084],"TransparentUpgradeableProxy":[43220]},"nodeType":"SourceUnit","src":"133:6413:45","nodes":[{"id":43086,"nodeType":"PragmaDirective","src":"133:24:45","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":43088,"nodeType":"ImportDirective","src":"159:57:45","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"../ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":43221,"sourceUnit":42845,"symbolAliases":[{"foreign":{"id":43087,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42844,"src":"167:12:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43090,"nodeType":"ImportDirective","src":"217:57:45","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","nameLocation":"-1:-1:-1","scope":43221,"sourceUnit":42551,"symbolAliases":[{"foreign":{"id":43089,"name":"ERC1967Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42550,"src":"225:12:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43092,"nodeType":"ImportDirective","src":"275:55:45","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","file":"../../interfaces/IERC1967.sol","nameLocation":"-1:-1:-1","scope":43221,"sourceUnit":42188,"symbolAliases":[{"foreign":{"id":43091,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42187,"src":"283:8:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43094,"nodeType":"ImportDirective","src":"331:44:45","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol","file":"./ProxyAdmin.sol","nameLocation":"-1:-1:-1","scope":43221,"sourceUnit":43085,"symbolAliases":[{"foreign":{"id":43093,"name":"ProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43084,"src":"339:10:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43106,"nodeType":"ContractDefinition","src":"823:202:45","nodes":[{"id":43105,"nodeType":"FunctionDefinition","src":"932:91:45","nodes":[],"documentation":{"id":43098,"nodeType":"StructuredDocumentation","src":"880:47:45","text":"@dev See {UUPSUpgradeable-upgradeToAndCall}"},"functionSelector":"4f1ef286","implemented":false,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"941:16:45","parameters":{"id":43103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43100,"mutability":"mutable","name":"newImplementation","nameLocation":"966:17:45","nodeType":"VariableDeclaration","scope":43105,"src":"958:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43099,"name":"address","nodeType":"ElementaryTypeName","src":"958:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43102,"mutability":"mutable","name":"data","nameLocation":"1000:4:45","nodeType":"VariableDeclaration","scope":43105,"src":"985:19:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43101,"name":"bytes","nodeType":"ElementaryTypeName","src":"985:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"957:48:45"},"returnParameters":{"id":43104,"nodeType":"ParameterList","parameters":[],"src":"1022:0:45"},"scope":43106,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":43096,"name":"IERC1967","nameLocations":["865:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":42187,"src":"865:8:45"},"id":43097,"nodeType":"InheritanceSpecifier","src":"865:8:45"}],"canonicalName":"ITransparentUpgradeableProxy","contractDependencies":[],"contractKind":"interface","documentation":{"id":43095,"nodeType":"StructuredDocumentation","src":"377:445:45","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":[43106,42187],"name":"ITransparentUpgradeableProxy","nameLocation":"833:28:45","scope":43221,"usedErrors":[],"usedEvents":[42174,42181,42186]},{"id":43220,"nodeType":"ContractDefinition","src":"4314:2231:45","nodes":[{"id":43111,"nodeType":"VariableDeclaration","src":"4708:32:45","nodes":[],"constant":false,"mutability":"immutable","name":"_admin","nameLocation":"4734:6:45","scope":43220,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43110,"name":"address","nodeType":"ElementaryTypeName","src":"4708:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":43114,"nodeType":"ErrorDefinition","src":"4854:31:45","nodes":[],"documentation":{"id":43112,"nodeType":"StructuredDocumentation","src":"4747:102:45","text":" @dev The proxy caller is the current admin, and can't fallback to the proxy target."},"errorSelector":"d2b576ec","name":"ProxyDeniedAdminAccess","nameLocation":"4860:22:45","parameters":{"id":43113,"nodeType":"ParameterList","parameters":[],"src":"4882:2:45"}},{"id":43147,"nodeType":"FunctionDefinition","src":"5157:296:45","nodes":[],"body":{"id":43146,"nodeType":"Block","src":"5263:190:45","nodes":[],"statements":[{"expression":{"id":43137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43128,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43111,"src":"5273:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43134,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43119,"src":"5305:12:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"5290:14:45","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ProxyAdmin_$43084_$","typeString":"function (address) returns (contract ProxyAdmin)"},"typeName":{"id":43132,"nodeType":"UserDefinedTypeName","pathNode":{"id":43131,"name":"ProxyAdmin","nameLocations":["5294:10:45"],"nodeType":"IdentifierPath","referencedDeclaration":43084,"src":"5294:10:45"},"referencedDeclaration":43084,"src":"5294:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$43084","typeString":"contract ProxyAdmin"}}},"id":43135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5290:28:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$43084","typeString":"contract ProxyAdmin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyAdmin_$43084","typeString":"contract ProxyAdmin"}],"id":43130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5282:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43129,"name":"address","nodeType":"ElementaryTypeName","src":"5282:7:45","typeDescriptions":{}}},"id":43136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5282:37:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5273:46:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43138,"nodeType":"ExpressionStatement","src":"5273:46:45"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":43142,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43156,"src":"5432:11:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":43143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5432:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43139,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42844,"src":"5407:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$42844_$","typeString":"type(library ERC1967Utils)"}},"id":43141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5420:11:45","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":42726,"src":"5407:24:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":43144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5407:39:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43145,"nodeType":"ExpressionStatement","src":"5407:39:45"}]},"documentation":{"id":43115,"nodeType":"StructuredDocumentation","src":"4891:261:45","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":43124,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43117,"src":"5248:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43125,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43121,"src":"5256:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":43126,"kind":"baseConstructorSpecifier","modifierName":{"id":43123,"name":"ERC1967Proxy","nameLocations":["5235:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":42550,"src":"5235:12:45"},"nodeType":"ModifierInvocation","src":"5235:27:45"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":43122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43117,"mutability":"mutable","name":"_logic","nameLocation":"5177:6:45","nodeType":"VariableDeclaration","scope":43147,"src":"5169:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43116,"name":"address","nodeType":"ElementaryTypeName","src":"5169:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43119,"mutability":"mutable","name":"initialOwner","nameLocation":"5193:12:45","nodeType":"VariableDeclaration","scope":43147,"src":"5185:20:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43118,"name":"address","nodeType":"ElementaryTypeName","src":"5185:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43121,"mutability":"mutable","name":"_data","nameLocation":"5220:5:45","nodeType":"VariableDeclaration","scope":43147,"src":"5207:18:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43120,"name":"bytes","nodeType":"ElementaryTypeName","src":"5207:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5168:58:45"},"returnParameters":{"id":43127,"nodeType":"ParameterList","parameters":[],"src":"5263:0:45"},"scope":43220,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":43156,"nodeType":"FunctionDefinition","src":"5520:93:45","nodes":[],"body":{"id":43155,"nodeType":"Block","src":"5583:30:45","nodes":[],"statements":[{"expression":{"id":43153,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43111,"src":"5600:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":43152,"id":43154,"nodeType":"Return","src":"5593:13:45"}]},"documentation":{"id":43148,"nodeType":"StructuredDocumentation","src":"5459:56:45","text":" @dev Returns the admin of this proxy."},"implemented":true,"kind":"function","modifiers":[],"name":"_proxyAdmin","nameLocation":"5529:11:45","parameters":{"id":43149,"nodeType":"ParameterList","parameters":[],"src":"5540:2:45"},"returnParameters":{"id":43152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43156,"src":"5574:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43150,"name":"address","nodeType":"ElementaryTypeName","src":"5574:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5573:9:45"},"scope":43220,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":43190,"nodeType":"FunctionDefinition","src":"5755:369:45","nodes":[],"body":{"id":43189,"nodeType":"Block","src":"5802:322:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":43165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43161,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5816:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5820:6:45","memberName":"sender","nodeType":"MemberAccess","src":"5816:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":43163,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43156,"src":"5830:11:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":43164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5830:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5816:27:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43187,"nodeType":"Block","src":"6076:42:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":43182,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6090:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$43220_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":43184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6096:9:45","memberName":"_fallback","nodeType":"MemberAccess","referencedDeclaration":42871,"src":"6090:15:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6090:17:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43186,"nodeType":"ExpressionStatement","src":"6090:17:45"}]},"id":43188,"nodeType":"IfStatement","src":"5812:306:45","trueBody":{"id":43181,"nodeType":"Block","src":"5845:225:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":43171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43166,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5863:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5867:3:45","memberName":"sig","nodeType":"MemberAccess","src":"5863:7:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":43168,"name":"ITransparentUpgradeableProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43106,"src":"5874:28:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITransparentUpgradeableProxy_$43106_$","typeString":"type(contract ITransparentUpgradeableProxy)"}},"id":43169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5903:16:45","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":43105,"src":"5874:45:45","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes calldata) payable"}},"id":43170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5920:8:45","memberName":"selector","nodeType":"MemberAccess","src":"5874:54:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5863:65:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43179,"nodeType":"Block","src":"6000:60:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43176,"name":"_dispatchUpgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43219,"src":"6018:25:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6018:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43178,"nodeType":"ExpressionStatement","src":"6018:27:45"}]},"id":43180,"nodeType":"IfStatement","src":"5859:201:45","trueBody":{"id":43175,"nodeType":"Block","src":"5930:64:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43172,"name":"ProxyDeniedAdminAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43114,"src":"5955:22:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":43173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5955:24:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":43174,"nodeType":"RevertStatement","src":"5948:31:45"}]}}]}}]},"baseFunctions":[42871],"documentation":{"id":43157,"nodeType":"StructuredDocumentation","src":"5619:131:45","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":"5764:9:45","overrides":{"id":43159,"nodeType":"OverrideSpecifier","overrides":[],"src":"5793:8:45"},"parameters":{"id":43158,"nodeType":"ParameterList","parameters":[],"src":"5773:2:45"},"returnParameters":{"id":43160,"nodeType":"ParameterList","parameters":[],"src":"5802:0:45"},"scope":43220,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":43219,"nodeType":"FunctionDefinition","src":"6326:217:45","nodes":[],"body":{"id":43218,"nodeType":"Block","src":"6371:172:45","nodes":[],"statements":[{"assignments":[43195,43197],"declarations":[{"constant":false,"id":43195,"mutability":"mutable","name":"newImplementation","nameLocation":"6390:17:45","nodeType":"VariableDeclaration","scope":43218,"src":"6382:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43194,"name":"address","nodeType":"ElementaryTypeName","src":"6382:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43197,"mutability":"mutable","name":"data","nameLocation":"6422:4:45","nodeType":"VariableDeclaration","scope":43218,"src":"6409:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43196,"name":"bytes","nodeType":"ElementaryTypeName","src":"6409:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":43210,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":43200,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6441:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6445:4:45","memberName":"data","nodeType":"MemberAccess","src":"6441:8:45","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":43203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6441:12:45","startExpression":{"hexValue":"34","id":43202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6450:1:45","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":43205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6456:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43204,"name":"address","nodeType":"ElementaryTypeName","src":"6456:7:45","typeDescriptions":{}}},{"id":43207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6465:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":43206,"name":"bytes","nodeType":"ElementaryTypeName","src":"6465:5:45","typeDescriptions":{}}}],"id":43208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6455:16:45","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":43198,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6430:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6434:6:45","memberName":"decode","nodeType":"MemberAccess","src":"6430:10:45","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":43209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6381:91:45"},{"expression":{"arguments":[{"id":43214,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43195,"src":"6512:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43215,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43197,"src":"6531:4:45","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":43211,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42844,"src":"6482:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$42844_$","typeString":"type(library ERC1967Utils)"}},"id":43213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6495:16:45","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":42659,"src":"6482:29:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":43216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6482:54:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43217,"nodeType":"ExpressionStatement","src":"6482:54:45"}]},"documentation":{"id":43191,"nodeType":"StructuredDocumentation","src":"6130:191:45","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":"6335:25:45","parameters":{"id":43192,"nodeType":"ParameterList","parameters":[],"src":"6360:2:45"},"returnParameters":{"id":43193,"nodeType":"ParameterList","parameters":[],"src":"6371:0:45"},"scope":43220,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":43108,"name":"ERC1967Proxy","nameLocations":["4354:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":42550,"src":"4354:12:45"},"id":43109,"nodeType":"InheritanceSpecifier","src":"4354:12:45"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[43084],"contractKind":"contract","documentation":{"id":43107,"nodeType":"StructuredDocumentation","src":"1027:3286:45","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":[43220,42550,42880],"name":"TransparentUpgradeableProxy","nameLocation":"4323:27:45","scope":43221,"usedErrors":[42570,42575,42583,43114,43885,44177],"usedEvents":[42174,42181]}],"license":"MIT"},"id":45} \ 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":"0x60a0604052610a97803803806100148161026b565b92833981016060828203126102675761002c82610290565b61003860208401610290565b604084015190936001600160401b03821161026757019180601f8401121561026757825161006d610068826102a4565b61026b565b9381855260208501926020838301011161026757815f926020809301855e85010152813b15610246577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561022e575f809161012d945190845af43d15610226573d9161011e610068846102a4565b9283523d5f602085013e6102bf565b505b604051906104408083016001600160401b0381118482101761021257602092849261063784396001600160a01b031681520301905ff080156102075760018060a01b0316806080525f516020610a775f395f51905f52547f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6040805160018060a01b0384168152846020820152a181156101f4576001600160a01b031916175f516020610a775f395f51905f5255604051610319908161031e82396080518160070152f35b633173bdd160e11b5f525f60045260245ffd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6060916102bf565b505050341561012f5763b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761021257604052565b51906001600160a01b038216820361026757565b6001600160401b03811161021257601f01601f191660200190565b906102e357508051156102d457805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610314575b6102f4575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102ec56fe6080604052337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610066575f356001600160e01b03191663278f794360e11b1461005c576334ad5dbb60e21b5f5260045ffd5b61006461010a565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156100ab573d5ff35b3d5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100e957604052565b6100af565b67ffffffffffffffff81116100e957601f01601f191660200190565b36600411610193576040366003190112610193576004356001600160a01b03811690819003610193576024359067ffffffffffffffff8211610193573660238301121561019357816004013590610168610163836100ee565b6100c3565b918083523660248286010111610193576020815f92602461019197018387013784010152610197565b565b5f80fd5b90813b1561022b577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610213576102109161024c565b50565b50503461021c57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f8061027e93602081519101845af43d15610281573d9161026f610163846100ee565b9283523d5f602085013e610285565b90565b6060915b906102a9575080511561029a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806102da575b6102ba575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102b256fea264697066735822122013c3cca7769b458895214125c81403dc8dc970b0bef62d68d55262fd0864c69764736f6c634300081c003360803460b857601f61044038819003918201601f19168301916001600160401b0383118484101760bc5780849260209460405283398101031260b857516001600160a01b0381169081900360b857801560a5575f80546001600160a01b031981168317825560405192916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a361036f90816100d18239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f5f3560e01c8063715018a6146102765780638da5cb5b1461024f5780639623609d1461012c578063ad3cb1cc146100df5763f2fde38b14610051575f80fd5b346100dc5760203660031901126100dc576004356001600160a01b038116908190036100da5761007f610313565b80156100c65781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b505b80fd5b50346100dc57806003193601126100dc57506101286040516101026040826102cd565b60058152640352e302e360dc1b60208201526040519182916020835260208301906102ef565b0390f35b506060366003190112610237576004356001600160a01b03811690819003610237576024356001600160a01b038116908190036102375760443567ffffffffffffffff8111610237573660238201121561023757806004013567ffffffffffffffff811161023b57604051916101ac601f8301601f1916602001846102cd565b818352366024838301011161023757815f9260246020930183860137830101526101d4610313565b823b156102375761020a925f9260405180958194829363278f794360e11b845260048401526040602484015260448301906102ef565b039134905af1801561022c5761021e575080f35b61022a91505f906102cd565b005b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b34610237575f366003190112610237575f546040516001600160a01b039091168152602090f35b34610237575f3660031901126102375761028e610313565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b90601f8019910116810190811067ffffffffffffffff82111761023b57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f546001600160a01b0316330361032657565b63118cdaa760e01b5f523360045260245ffdfea26469706673582212207a37d1b21921132d6e876ea3444333c3b17a03ec38cb48ea40b19cf30ac4fc1464736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103","sourceMap":"4314:2231:45:-:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;4314:2231:45;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;4314:2231:45;;;;;;;;;;;1748:29:39;;:34;1744:119;;811:66;4314:2231:45;;-1:-1:-1;;;;;;4314:2231:45;-1:-1:-1;;;;;4314:2231:45;;;;;;;;2407:36:39;-1:-1:-1;;2407:36:39;4314:2231:45;;2458:15:39;:11;;-1:-1:-1;4049:25:50;;4091:55;4049:25;;;;;;4314:2231:45;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;4314:2231:45;;;;4091:55:50;:::i;:::-;;2454:148:39;4314:2231:45;;;5290:28;;;;-1:-1:-1;;;;;5290:28:45;;;;;;;;4314:2231;5290:28;;;;;;-1:-1:-1;;;;;4314:2231:45;;;5290:28;;;-1:-1:-1;5290:28:45;;;;;4314:2231;;;;;;5273:46;;;-1:-1:-1;;;;;;;;;;;2868:66:39;3890:43;4314:2231:45;;;;;;;;;;;;;;;;;3890:43:39;3549:22;;3545:91;;-1:-1:-1;;;;;;4314:2231:45;;-1:-1:-1;;;;;;;;;;;4314:2231:45;;;;;;;;;5273:46;4314:2231;;;;;;3545:91:39;3594:31;;;-1:-1:-1;3594:31:39;-1:-1:-1;3594:31:39;4314:2231:45;;-1:-1:-1;3594:31:39;5290:28:45;4314:2231;;;-1:-1:-1;4314:2231:45;;;;;5290:28;4314:2231;;;-1:-1:-1;4314:2231:45;;;;;-1:-1:-1;4314:2231:45;;;;4091:55:50;:::i;2454:148:39:-;6163:9;;;;6159:70;2454:148;6159:70;6199:19;;;-1:-1:-1;6199:19:39;;-1:-1:-1;6199:19:39;1744:119;-1:-1:-1;;;;;1805:47:39;;;-1:-1:-1;;;;;4314:2231:45;;;;1805:47:39;4314:2231:45;;;1805:47:39;4314:2231:45;-1:-1:-1;4314:2231:45;;;;;;;;;-1:-1:-1;;4314:2231:45;;;-1:-1:-1;;;;;4314:2231:45;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4314:2231:45;;;;;;:::o;:::-;-1:-1:-1;;;;;4314:2231:45;;;;;;-1:-1:-1;;4314:2231:45;;;;:::o;4421:582:50:-;;4593:8;;-1:-1:-1;4314:2231:45;;5674:21:50;:17;;5799:158;;;;;;5670:354;5994:19;;;5694:1;5994:19;;5694:1;5994:19;4589:408;4314:2231:45;;4841:22:50;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:50;4917:24;;;-1:-1:-1;;;;;4314:2231:45;;;;4917:24:50;4314:2231:45;;;4917:24:50;4841:49;4867:18;;;:23;4841:49;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610066575f356001600160e01b03191663278f794360e11b1461005c576334ad5dbb60e21b5f5260045ffd5b61006461010a565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156100ab573d5ff35b3d5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100e957604052565b6100af565b67ffffffffffffffff81116100e957601f01601f191660200190565b36600411610193576040366003190112610193576004356001600160a01b03811690819003610193576024359067ffffffffffffffff8211610193573660238301121561019357816004013590610168610163836100ee565b6100c3565b918083523660248286010111610193576020815f92602461019197018387013784010152610197565b565b5f80fd5b90813b1561022b577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610213576102109161024c565b50565b50503461021c57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b5f8061027e93602081519101845af43d15610281573d9161026f610163846100ee565b9283523d5f602085013e610285565b90565b6060915b906102a9575080511561029a57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806102da575b6102ba575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156102b256fea264697066735822122013c3cca7769b458895214125c81403dc8dc970b0bef62d68d55262fd0864c69764736f6c634300081c0033","sourceMap":"4314:2231:45:-:0;;;5816:10;5600:6;-1:-1:-1;;;;;4314:2231:45;5816:27;4314:2231;;5863:7;;-1:-1:-1;;;;;;5863:7:45;-1:-1:-1;;;5863:65:45;5874:54;;5955:24;;;5863:7;5955:24;;5863:7;5955:24;5859:201;;;:::i;:::-;4314:2231;5812:306;811:66:39;;-1:-1:-1;;;;;;;;;4314:2231:45;1019:819:40;-1:-1:-1;;1019:819:40;;;;;;;-1:-1:-1;1019:819:40;;;;;;-1:-1:-1;1019:819:40;;;-1:-1:-1;1019:819:40;4314:2231:45;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4314:2231:45;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;-1:-1:-1;;4314:2231:45;;;;:::o;6326:217::-;6441:8;6450:1;4314:2231;;;;6441:8;-1:-1:-1;;4314:2231:45;;;;6450:1;4314:2231;-1:-1:-1;;;;;4314:2231:45;;;;;;;;;;;;;;;;6441:8;4314:2231;;;;;;;;6450:1;4314:2231;;;;;;;:::i;:::-;;:::i;:::-;;;;;6441:8;4314:2231;;;;;;;;;;6441:8;4314:2231;;6531:4;4314:2231;;;;;;;;;;6531:4;:::i;:::-;6326:217::o;4314:2231::-;6441:8;4314:2231;;2264:344:39;;1748:29;;:34;1744:119;;811:66;4314:2231:45;;-1:-1:-1;;;;;;4314:2231:45;-1:-1:-1;;;;;4314:2231:45;;;;;;;;2407:36:39;-1:-1:-1;;2407:36:39;4314:2231:45;;2458:15:39;:11;;2489:53;;;:::i;:::-;;2264:344::o;2454:148::-;6163:9;;;6159:70;;2264:344::o;6159:70::-;6199:19;;;1781:1;6199:19;;1781:1;6199:19;1744:119;-1:-1:-1;;;;1781:1:39;1805:47;;;-1:-1:-1;;;;;4314:2231:45;;;;1805:47:39;4314:2231:45;;;1805:47:39;3900:253:50;4049:25;3900:253;4091:55;3900:253;4049:25;;;;;;;;4314:2231:45;;;;;;;;;;:::i;:::-;;;;;4049:25:50;;4314:2231:45;;;4091:55:50;:::i;:::-;3900:253;:::o;4314:2231:45:-;;;4421:582:50;;4593:8;;-1:-1:-1;4314:2231:45;;5674:21:50;:17;;5799:158;;;;;;5670:354;5994:19;;;5694:1;5994:19;;5694:1;5994:19;4589:408;4314:2231:45;;4841:22:50;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:50;4917:24;;;-1:-1:-1;;;;;4314:2231:45;;;;4917:24:50;4314:2231:45;;;4917:24:50;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"43111":[{"start":7,"length":32}]}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"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\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"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\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"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\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"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/","symbiotic-core/=lib/symbiotic-core/"],"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":"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a","urls":["bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d","dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"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":"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0","urls":["bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0","dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c","urls":["bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347","dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"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":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","id":43221,"exportedSymbols":{"ERC1967Proxy":[42550],"ERC1967Utils":[42844],"IERC1967":[42187],"ITransparentUpgradeableProxy":[43106],"ProxyAdmin":[43084],"TransparentUpgradeableProxy":[43220]},"nodeType":"SourceUnit","src":"133:6413:45","nodes":[{"id":43086,"nodeType":"PragmaDirective","src":"133:24:45","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":43088,"nodeType":"ImportDirective","src":"159:57:45","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"../ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":43221,"sourceUnit":42845,"symbolAliases":[{"foreign":{"id":43087,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42844,"src":"167:12:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43090,"nodeType":"ImportDirective","src":"217:57:45","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","nameLocation":"-1:-1:-1","scope":43221,"sourceUnit":42551,"symbolAliases":[{"foreign":{"id":43089,"name":"ERC1967Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42550,"src":"225:12:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43092,"nodeType":"ImportDirective","src":"275:55:45","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","file":"../../interfaces/IERC1967.sol","nameLocation":"-1:-1:-1","scope":43221,"sourceUnit":42188,"symbolAliases":[{"foreign":{"id":43091,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42187,"src":"283:8:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43094,"nodeType":"ImportDirective","src":"331:44:45","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol","file":"./ProxyAdmin.sol","nameLocation":"-1:-1:-1","scope":43221,"sourceUnit":43085,"symbolAliases":[{"foreign":{"id":43093,"name":"ProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43084,"src":"339:10:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43106,"nodeType":"ContractDefinition","src":"823:202:45","nodes":[{"id":43105,"nodeType":"FunctionDefinition","src":"932:91:45","nodes":[],"documentation":{"id":43098,"nodeType":"StructuredDocumentation","src":"880:47:45","text":"@dev See {UUPSUpgradeable-upgradeToAndCall}"},"functionSelector":"4f1ef286","implemented":false,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"941:16:45","parameters":{"id":43103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43100,"mutability":"mutable","name":"newImplementation","nameLocation":"966:17:45","nodeType":"VariableDeclaration","scope":43105,"src":"958:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43099,"name":"address","nodeType":"ElementaryTypeName","src":"958:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43102,"mutability":"mutable","name":"data","nameLocation":"1000:4:45","nodeType":"VariableDeclaration","scope":43105,"src":"985:19:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43101,"name":"bytes","nodeType":"ElementaryTypeName","src":"985:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"957:48:45"},"returnParameters":{"id":43104,"nodeType":"ParameterList","parameters":[],"src":"1022:0:45"},"scope":43106,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":43096,"name":"IERC1967","nameLocations":["865:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":42187,"src":"865:8:45"},"id":43097,"nodeType":"InheritanceSpecifier","src":"865:8:45"}],"canonicalName":"ITransparentUpgradeableProxy","contractDependencies":[],"contractKind":"interface","documentation":{"id":43095,"nodeType":"StructuredDocumentation","src":"377:445:45","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":[43106,42187],"name":"ITransparentUpgradeableProxy","nameLocation":"833:28:45","scope":43221,"usedErrors":[],"usedEvents":[42174,42181,42186]},{"id":43220,"nodeType":"ContractDefinition","src":"4314:2231:45","nodes":[{"id":43111,"nodeType":"VariableDeclaration","src":"4708:32:45","nodes":[],"constant":false,"mutability":"immutable","name":"_admin","nameLocation":"4734:6:45","scope":43220,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43110,"name":"address","nodeType":"ElementaryTypeName","src":"4708:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":43114,"nodeType":"ErrorDefinition","src":"4854:31:45","nodes":[],"documentation":{"id":43112,"nodeType":"StructuredDocumentation","src":"4747:102:45","text":" @dev The proxy caller is the current admin, and can't fallback to the proxy target."},"errorSelector":"d2b576ec","name":"ProxyDeniedAdminAccess","nameLocation":"4860:22:45","parameters":{"id":43113,"nodeType":"ParameterList","parameters":[],"src":"4882:2:45"}},{"id":43147,"nodeType":"FunctionDefinition","src":"5157:296:45","nodes":[],"body":{"id":43146,"nodeType":"Block","src":"5263:190:45","nodes":[],"statements":[{"expression":{"id":43137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43128,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43111,"src":"5273:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43134,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43119,"src":"5305:12:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"5290:14:45","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ProxyAdmin_$43084_$","typeString":"function (address) returns (contract ProxyAdmin)"},"typeName":{"id":43132,"nodeType":"UserDefinedTypeName","pathNode":{"id":43131,"name":"ProxyAdmin","nameLocations":["5294:10:45"],"nodeType":"IdentifierPath","referencedDeclaration":43084,"src":"5294:10:45"},"referencedDeclaration":43084,"src":"5294:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$43084","typeString":"contract ProxyAdmin"}}},"id":43135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5290:28:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$43084","typeString":"contract ProxyAdmin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyAdmin_$43084","typeString":"contract ProxyAdmin"}],"id":43130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5282:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43129,"name":"address","nodeType":"ElementaryTypeName","src":"5282:7:45","typeDescriptions":{}}},"id":43136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5282:37:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5273:46:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43138,"nodeType":"ExpressionStatement","src":"5273:46:45"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":43142,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43156,"src":"5432:11:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":43143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5432:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43139,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42844,"src":"5407:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$42844_$","typeString":"type(library ERC1967Utils)"}},"id":43141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5420:11:45","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":42726,"src":"5407:24:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":43144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5407:39:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43145,"nodeType":"ExpressionStatement","src":"5407:39:45"}]},"documentation":{"id":43115,"nodeType":"StructuredDocumentation","src":"4891:261:45","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":43124,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43117,"src":"5248:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43125,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43121,"src":"5256:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":43126,"kind":"baseConstructorSpecifier","modifierName":{"id":43123,"name":"ERC1967Proxy","nameLocations":["5235:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":42550,"src":"5235:12:45"},"nodeType":"ModifierInvocation","src":"5235:27:45"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":43122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43117,"mutability":"mutable","name":"_logic","nameLocation":"5177:6:45","nodeType":"VariableDeclaration","scope":43147,"src":"5169:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43116,"name":"address","nodeType":"ElementaryTypeName","src":"5169:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43119,"mutability":"mutable","name":"initialOwner","nameLocation":"5193:12:45","nodeType":"VariableDeclaration","scope":43147,"src":"5185:20:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43118,"name":"address","nodeType":"ElementaryTypeName","src":"5185:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43121,"mutability":"mutable","name":"_data","nameLocation":"5220:5:45","nodeType":"VariableDeclaration","scope":43147,"src":"5207:18:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43120,"name":"bytes","nodeType":"ElementaryTypeName","src":"5207:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5168:58:45"},"returnParameters":{"id":43127,"nodeType":"ParameterList","parameters":[],"src":"5263:0:45"},"scope":43220,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":43156,"nodeType":"FunctionDefinition","src":"5520:93:45","nodes":[],"body":{"id":43155,"nodeType":"Block","src":"5583:30:45","nodes":[],"statements":[{"expression":{"id":43153,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43111,"src":"5600:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":43152,"id":43154,"nodeType":"Return","src":"5593:13:45"}]},"documentation":{"id":43148,"nodeType":"StructuredDocumentation","src":"5459:56:45","text":" @dev Returns the admin of this proxy."},"implemented":true,"kind":"function","modifiers":[],"name":"_proxyAdmin","nameLocation":"5529:11:45","parameters":{"id":43149,"nodeType":"ParameterList","parameters":[],"src":"5540:2:45"},"returnParameters":{"id":43152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43156,"src":"5574:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43150,"name":"address","nodeType":"ElementaryTypeName","src":"5574:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5573:9:45"},"scope":43220,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":43190,"nodeType":"FunctionDefinition","src":"5755:369:45","nodes":[],"body":{"id":43189,"nodeType":"Block","src":"5802:322:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":43165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43161,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5816:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5820:6:45","memberName":"sender","nodeType":"MemberAccess","src":"5816:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":43163,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43156,"src":"5830:11:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":43164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5830:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5816:27:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43187,"nodeType":"Block","src":"6076:42:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":43182,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6090:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$43220_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":43184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6096:9:45","memberName":"_fallback","nodeType":"MemberAccess","referencedDeclaration":42871,"src":"6090:15:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6090:17:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43186,"nodeType":"ExpressionStatement","src":"6090:17:45"}]},"id":43188,"nodeType":"IfStatement","src":"5812:306:45","trueBody":{"id":43181,"nodeType":"Block","src":"5845:225:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":43171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43166,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5863:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5867:3:45","memberName":"sig","nodeType":"MemberAccess","src":"5863:7:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":43168,"name":"ITransparentUpgradeableProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43106,"src":"5874:28:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITransparentUpgradeableProxy_$43106_$","typeString":"type(contract ITransparentUpgradeableProxy)"}},"id":43169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5903:16:45","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":43105,"src":"5874:45:45","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes calldata) payable"}},"id":43170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5920:8:45","memberName":"selector","nodeType":"MemberAccess","src":"5874:54:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5863:65:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43179,"nodeType":"Block","src":"6000:60:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43176,"name":"_dispatchUpgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43219,"src":"6018:25:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6018:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43178,"nodeType":"ExpressionStatement","src":"6018:27:45"}]},"id":43180,"nodeType":"IfStatement","src":"5859:201:45","trueBody":{"id":43175,"nodeType":"Block","src":"5930:64:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43172,"name":"ProxyDeniedAdminAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43114,"src":"5955:22:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":43173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5955:24:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":43174,"nodeType":"RevertStatement","src":"5948:31:45"}]}}]}}]},"baseFunctions":[42871],"documentation":{"id":43157,"nodeType":"StructuredDocumentation","src":"5619:131:45","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":"5764:9:45","overrides":{"id":43159,"nodeType":"OverrideSpecifier","overrides":[],"src":"5793:8:45"},"parameters":{"id":43158,"nodeType":"ParameterList","parameters":[],"src":"5773:2:45"},"returnParameters":{"id":43160,"nodeType":"ParameterList","parameters":[],"src":"5802:0:45"},"scope":43220,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":43219,"nodeType":"FunctionDefinition","src":"6326:217:45","nodes":[],"body":{"id":43218,"nodeType":"Block","src":"6371:172:45","nodes":[],"statements":[{"assignments":[43195,43197],"declarations":[{"constant":false,"id":43195,"mutability":"mutable","name":"newImplementation","nameLocation":"6390:17:45","nodeType":"VariableDeclaration","scope":43218,"src":"6382:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43194,"name":"address","nodeType":"ElementaryTypeName","src":"6382:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43197,"mutability":"mutable","name":"data","nameLocation":"6422:4:45","nodeType":"VariableDeclaration","scope":43218,"src":"6409:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43196,"name":"bytes","nodeType":"ElementaryTypeName","src":"6409:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":43210,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":43200,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6441:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6445:4:45","memberName":"data","nodeType":"MemberAccess","src":"6441:8:45","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":43203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6441:12:45","startExpression":{"hexValue":"34","id":43202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6450:1:45","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":43205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6456:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43204,"name":"address","nodeType":"ElementaryTypeName","src":"6456:7:45","typeDescriptions":{}}},{"id":43207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6465:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":43206,"name":"bytes","nodeType":"ElementaryTypeName","src":"6465:5:45","typeDescriptions":{}}}],"id":43208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6455:16:45","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":43198,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6430:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6434:6:45","memberName":"decode","nodeType":"MemberAccess","src":"6430:10:45","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":43209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6381:91:45"},{"expression":{"arguments":[{"id":43214,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43195,"src":"6512:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43215,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43197,"src":"6531:4:45","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":43211,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42844,"src":"6482:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$42844_$","typeString":"type(library ERC1967Utils)"}},"id":43213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6495:16:45","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":42659,"src":"6482:29:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":43216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6482:54:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43217,"nodeType":"ExpressionStatement","src":"6482:54:45"}]},"documentation":{"id":43191,"nodeType":"StructuredDocumentation","src":"6130:191:45","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":"6335:25:45","parameters":{"id":43192,"nodeType":"ParameterList","parameters":[],"src":"6360:2:45"},"returnParameters":{"id":43193,"nodeType":"ParameterList","parameters":[],"src":"6371:0:45"},"scope":43220,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":43108,"name":"ERC1967Proxy","nameLocations":["4354:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":42550,"src":"4354:12:45"},"id":43109,"nodeType":"InheritanceSpecifier","src":"4354:12:45"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[43084],"contractKind":"contract","documentation":{"id":43107,"nodeType":"StructuredDocumentation","src":"1027:3286:45","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":[43220,42550,42880],"name":"TransparentUpgradeableProxy","nameLocation":"4323:27:45","scope":43221,"usedErrors":[42570,42575,42583,43114,43885,44177],"usedEvents":[42174,42181]}],"license":"MIT"},"id":45} \ No newline at end of file diff --git a/ethexe/ethereum/WrappedVara.json b/ethexe/ethereum/WrappedVara.json index 3596c6ec57b..7dcfaecdd6e 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":"pure"},{"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":"0x6080806040523460aa575f516020611d6d5f395f51905f525460ff8160401c16609b576002600160401b03196001600160401b038216016049575b604051611cbe90816100af8239f35b6001600160401b0319166001600160401b039081175f516020611d6d5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80603a565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120d578063095ea7b3146111e757806318160ddd146111be57806323b872dd14611186578063313ce5671461116b5780633644e5151461114957806340c10f191461110c57806342966c68146110ef5780636c2eb3501461105557806370a0823114611011578063715018a614610faa57806379cc679014610f7a5780637ecebe0014610f2457806384b0196e14610c505780638da5cb5b14610c1c57806395d89b4114610b22578063a9059cbb14610af1578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112ee565b6101246115b2565b6113ac565b005b5f80fd5b3461012b57604036600319011261012b576101486112ee565b610159610153611304565b91611374565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112ee565b610197611304565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611352565b5190206102636117c0565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611852565b909291926118df565b6001600160a01b03168481036102ae5750610129935061169b565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112ee565b5f516020611c695f395f51905f52549060ff8260401c16159167ffffffffffffffff811680159081610ae9575b6001149081610adf575b159081610ad6575b50610ac75767ffffffffffffffff1981166001175f516020611c695f395f51905f525582610a9b575b5060405191610369604084611352565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611352565b6005835264575641524160d81b60208401526103ab611827565b6103b3611827565b835167ffffffffffffffff81116107a8576103db5f516020611b895f395f51905f525461131a565b601f8111610a2c575b50602094601f82116001146109b1579481929394955f926109a6575b50508160011b915f199060031b1c1916175f516020611b895f395f51905f52555b825167ffffffffffffffff81116107a8576104495f516020611be95f395f51905f525461131a565b601f8111610937575b506020601f82116001146108bc57819293945f926108b1575b50508160011b915f199060031b1c1916175f516020611be95f395f51905f52555b610494611827565b61049c611827565b6104a4611827565b6104ad816113ac565b604051916104bc604084611352565b600c83526b57726170706564205661726160a01b60208401526104dd611827565b604051916104ec604084611352565b60018352603160f81b6020840152610502611827565b835167ffffffffffffffff81116107a85761052a5f516020611bc95f395f51905f525461131a565b601f8111610842575b50602094601f82116001146107c7579481929394955f926107bc575b50508160011b915f199060031b1c1916175f516020611bc95f395f51905f52555b825167ffffffffffffffff81116107a8576105985f516020611c495f395f51905f525461131a565b601f8111610739575b506020601f82116001146106be57819293945f926106b3575b50508160011b915f199060031b1c1916175f516020611c495f395f51905f52555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a057670de0b6b3a7640000610643916116fe565b61064957005b68ff0000000000000000195f516020611c695f395f51905f5254165f516020611c695f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f516020611c495f395f51905f525f52805f20915f5b81811061072157509583600195969710610709575b505050811b015f516020611c495f395f51905f52556105db565b01515f1960f88460031b161c191690558480806106ef565b9192602060018192868b0151815501940192016106da565b5f516020611c495f395f51905f525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c8101916020841061079e575b601f0160051c01905b81811061079357506105a1565b5f8155600101610786565b909150819061077d565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f516020611bc95f395f51905f525f52805f20915f5b88811061082a57508360019596979810610812575b505050811b015f516020611bc95f395f51905f5255610570565b01515f1960f88460031b161c191690558580806107f8565b919260206001819286850151815501940192016107e3565b5f516020611bc95f395f51905f525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a7575b601f0160051c01905b81811061089c5750610533565b5f815560010161088f565b9091508190610886565b01519050848061046b565b601f198216905f516020611be95f395f51905f525f52805f20915f5b81811061091f57509583600195969710610907575b505050811b015f516020611be95f395f51905f525561048c565b01515f1960f88460031b161c191690558480806108ed565b9192602060018192868b0151815501940192016108d8565b5f516020611be95f395f51905f525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099c575b601f0160051c01905b8181106109915750610452565b5f8155600101610984565b909150819061097b565b015190508580610400565b601f198216955f516020611b895f395f51905f525f52805f20915f5b888110610a14575083600195969798106109fc575b505050811b015f516020611b895f395f51905f5255610421565b01515f1960f88460031b161c191690558580806109e2565b919260206001819286850151815501940192016109cd565b5f516020611b895f395f51905f525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a91575b601f0160051c01905b818110610a8657506103e4565b5f8155600101610a79565b9091508190610a70565b68ffffffffffffffffff191668010000000000000001175f516020611c695f395f51905f525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b17610b0d6112ee565b60243590336114e1565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f516020611be95f395f51905f5254610b4e8161131a565b8084529060018116908115610bf85750600114610b8e575b610b8a83610b7681850382611352565b6040519182916020835260208301906112ca565b0390f35b5f516020611be95f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bde57509091508101602001610b76610b66565b919260018160209254838588010152019101909291610bc6565b60ff191660208086019190915291151560051b84019091019150610b769050610b66565b3461012b575f36600319011261012b575f516020611c095f395f51905f52546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efb575b15610ebe576040515f516020611bc95f395f51905f5254815f610cab8361131a565b8083529260018116908115610e9f5750600114610e34575b610ccf92500382611352565b6040515f516020611c495f395f51905f5254815f610cec8361131a565b8083529260018116908115610e155750600114610daa575b610d1791925092610d4e94930382611352565b6020610d5c60405192610d2a8385611352565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112ca565b9085820360408701526112ca565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9357505050500390f35b835185528695509381019392810192600101610d84565b505f516020611c495f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610df9575050906020610d1792820101610d04565b6020919350806001915483858801015201910190918392610de1565b60209250610d1794915060ff191682840152151560051b820101610d04565b505f516020611bc95f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e83575050906020610ccf92820101610cc3565b6020919350806001915483858801015201910190918392610e6b565b60209250610ccf94915060ff191682840152151560051b820101610cc3565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c89565b3461012b57602036600319011261012b57610f3d6112ee565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f966112ee565b60243590610fa582338361141d565b6115e5565b3461012b575f36600319011261012b57610fc26115b2565b5f516020611c095f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110326112ee565b165f525f516020611ba95f395f51905f52602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106d6115b2565b5f516020611c695f395f51905f525460ff8160401c1680156110da575b610ac75760029068ffffffffffffffffff1916175f516020611c695f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108a565b3461012b57602036600319011261012b57610129600435336115e5565b3461012b57604036600319011261012b576111256112ee565b61112d6115b2565b6001600160a01b038116156106a05761012990602435906116fe565b3461012b575f36600319011261012b5760206111636117c0565b604051908152f35b3461012b575f36600319011261012b576020604051600c8152f35b3461012b57606036600319011261012b57610b176111a26112ee565b6111aa611304565b604435916111b983338361141d565b6114e1565b3461012b575f36600319011261012b5760205f516020611c295f395f51905f5254604051908152f35b3461012b57604036600319011261012b57610b176112036112ee565b602435903361169b565b3461012b575f36600319011261012b576040515f5f516020611b895f395f51905f52546112398161131a565b8084529060018116908115610bf8575060011461126057610b8a83610b7681850382611352565b5f516020611b895f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b057509091508101602001610b76610b66565b919260018160209254838588010152019101909291611298565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c92168015611348575b602083101461133457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611329565b90601f8019910116810190811067ffffffffffffffff8211176107a857604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140a575f516020611c095f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142883611374565b60018060a01b0382165f5260205260405f2054925f19840361144b575b50505050565b8284106114be576001600160a01b038116156114ab576001600160a01b038216156114985761147990611374565b9060018060a01b03165f5260205260405f20910390555f808080611445565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b031690811561159f576001600160a01b03169182156106a057815f525f516020611ba95f395f51905f5260205260405f205481811061158657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f516020611ba95f395f51905f5284520360405f2055845f525f516020611ba95f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f516020611c095f395f51905f52546001600160a01b031633036115d257565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b0316801561159f57805f525f516020611ba95f395f51905f5260205260405f2054838110611681576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f516020611ba95f395f51905f528452036040862055805f516020611c295f395f51905f5254035f516020611c295f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ab576001600160a01b0316928315611498577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ea602092611374565b855f5282528060405f2055604051908152a3565b5f516020611c295f395f51905f5254908282018092116117ac575f516020611c295f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178a57805f516020611c295f395f51905f5254035f516020611c295f395f51905f52555b604051908152a3565b8484525f516020611ba95f395f51905f52825260408420818154019055611781565b634e487b7160e01b5f52601160045260245ffd5b6117c8611953565b6117d0611a80565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182160c082611352565b51902090565b60ff5f516020611c695f395f51905f525460401c161561184357565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118c9575f516001600160a01b038116156118bf57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561193f57806118f1575050565b600181036119085763f645eedf60e01b5f5260045ffd5b60028103611923575063fce698f760e01b5f5260045260245ffd5b60031461192d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f516020611bc95f395f51905f5254905f816119718461131a565b9182825260208201946001811690815f14611a6457506001146119f9575b61199b92500382611352565b519081156119a7572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f516020611bc95f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4857505090602061199b9282010161198f565b6020919350806001915483858801015201910190918392611a30565b60ff191686525061199b92151560051b8201602001905061198f565b6040515f516020611c495f395f51905f5254905f81611a9e8461131a565b9182825260208201946001811690815f14611b6c5750600114611b01575b611ac892500382611352565b51908115611ad4572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d45790565b505f516020611c495f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b50575050906020611ac892820101611abc565b6020919350806001915483858801015201910190918392611b38565b60ff1916865250611ac892151560051b82016020019050611abc56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220d08a572a49deef0fe43c12723c823f7d35f0880c0978a58045ae35f94b3d290a64736f6c634300081c0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"632:990:121:-:0;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;7896:76:25;;-1:-1:-1;;;;;;;;;;;632:990:121;;7985:34:25;7981:146;;-1:-1:-1;632:990:121;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;632:990:121;-1:-1:-1;;;;;632:990:121;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;8087:29:25;;632:990:121;;8087:29:25;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:25;;-1:-1:-1;7938:23:25;632:990:121;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120d578063095ea7b3146111e757806318160ddd146111be57806323b872dd14611186578063313ce5671461116b5780633644e5151461114957806340c10f191461110c57806342966c68146110ef5780636c2eb3501461105557806370a0823114611011578063715018a614610faa57806379cc679014610f7a5780637ecebe0014610f2457806384b0196e14610c505780638da5cb5b14610c1c57806395d89b4114610b22578063a9059cbb14610af1578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112ee565b6101246115b2565b6113ac565b005b5f80fd5b3461012b57604036600319011261012b576101486112ee565b610159610153611304565b91611374565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112ee565b610197611304565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611352565b5190206102636117c0565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611852565b909291926118df565b6001600160a01b03168481036102ae5750610129935061169b565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112ee565b5f516020611c695f395f51905f52549060ff8260401c16159167ffffffffffffffff811680159081610ae9575b6001149081610adf575b159081610ad6575b50610ac75767ffffffffffffffff1981166001175f516020611c695f395f51905f525582610a9b575b5060405191610369604084611352565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611352565b6005835264575641524160d81b60208401526103ab611827565b6103b3611827565b835167ffffffffffffffff81116107a8576103db5f516020611b895f395f51905f525461131a565b601f8111610a2c575b50602094601f82116001146109b1579481929394955f926109a6575b50508160011b915f199060031b1c1916175f516020611b895f395f51905f52555b825167ffffffffffffffff81116107a8576104495f516020611be95f395f51905f525461131a565b601f8111610937575b506020601f82116001146108bc57819293945f926108b1575b50508160011b915f199060031b1c1916175f516020611be95f395f51905f52555b610494611827565b61049c611827565b6104a4611827565b6104ad816113ac565b604051916104bc604084611352565b600c83526b57726170706564205661726160a01b60208401526104dd611827565b604051916104ec604084611352565b60018352603160f81b6020840152610502611827565b835167ffffffffffffffff81116107a85761052a5f516020611bc95f395f51905f525461131a565b601f8111610842575b50602094601f82116001146107c7579481929394955f926107bc575b50508160011b915f199060031b1c1916175f516020611bc95f395f51905f52555b825167ffffffffffffffff81116107a8576105985f516020611c495f395f51905f525461131a565b601f8111610739575b506020601f82116001146106be57819293945f926106b3575b50508160011b915f199060031b1c1916175f516020611c495f395f51905f52555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a057670de0b6b3a7640000610643916116fe565b61064957005b68ff0000000000000000195f516020611c695f395f51905f5254165f516020611c695f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f516020611c495f395f51905f525f52805f20915f5b81811061072157509583600195969710610709575b505050811b015f516020611c495f395f51905f52556105db565b01515f1960f88460031b161c191690558480806106ef565b9192602060018192868b0151815501940192016106da565b5f516020611c495f395f51905f525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c8101916020841061079e575b601f0160051c01905b81811061079357506105a1565b5f8155600101610786565b909150819061077d565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f516020611bc95f395f51905f525f52805f20915f5b88811061082a57508360019596979810610812575b505050811b015f516020611bc95f395f51905f5255610570565b01515f1960f88460031b161c191690558580806107f8565b919260206001819286850151815501940192016107e3565b5f516020611bc95f395f51905f525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a7575b601f0160051c01905b81811061089c5750610533565b5f815560010161088f565b9091508190610886565b01519050848061046b565b601f198216905f516020611be95f395f51905f525f52805f20915f5b81811061091f57509583600195969710610907575b505050811b015f516020611be95f395f51905f525561048c565b01515f1960f88460031b161c191690558480806108ed565b9192602060018192868b0151815501940192016108d8565b5f516020611be95f395f51905f525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099c575b601f0160051c01905b8181106109915750610452565b5f8155600101610984565b909150819061097b565b015190508580610400565b601f198216955f516020611b895f395f51905f525f52805f20915f5b888110610a14575083600195969798106109fc575b505050811b015f516020611b895f395f51905f5255610421565b01515f1960f88460031b161c191690558580806109e2565b919260206001819286850151815501940192016109cd565b5f516020611b895f395f51905f525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a91575b601f0160051c01905b818110610a8657506103e4565b5f8155600101610a79565b9091508190610a70565b68ffffffffffffffffff191668010000000000000001175f516020611c695f395f51905f525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b17610b0d6112ee565b60243590336114e1565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f516020611be95f395f51905f5254610b4e8161131a565b8084529060018116908115610bf85750600114610b8e575b610b8a83610b7681850382611352565b6040519182916020835260208301906112ca565b0390f35b5f516020611be95f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bde57509091508101602001610b76610b66565b919260018160209254838588010152019101909291610bc6565b60ff191660208086019190915291151560051b84019091019150610b769050610b66565b3461012b575f36600319011261012b575f516020611c095f395f51905f52546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efb575b15610ebe576040515f516020611bc95f395f51905f5254815f610cab8361131a565b8083529260018116908115610e9f5750600114610e34575b610ccf92500382611352565b6040515f516020611c495f395f51905f5254815f610cec8361131a565b8083529260018116908115610e155750600114610daa575b610d1791925092610d4e94930382611352565b6020610d5c60405192610d2a8385611352565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112ca565b9085820360408701526112ca565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9357505050500390f35b835185528695509381019392810192600101610d84565b505f516020611c495f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610df9575050906020610d1792820101610d04565b6020919350806001915483858801015201910190918392610de1565b60209250610d1794915060ff191682840152151560051b820101610d04565b505f516020611bc95f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e83575050906020610ccf92820101610cc3565b6020919350806001915483858801015201910190918392610e6b565b60209250610ccf94915060ff191682840152151560051b820101610cc3565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c89565b3461012b57602036600319011261012b57610f3d6112ee565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f966112ee565b60243590610fa582338361141d565b6115e5565b3461012b575f36600319011261012b57610fc26115b2565b5f516020611c095f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110326112ee565b165f525f516020611ba95f395f51905f52602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106d6115b2565b5f516020611c695f395f51905f525460ff8160401c1680156110da575b610ac75760029068ffffffffffffffffff1916175f516020611c695f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108a565b3461012b57602036600319011261012b57610129600435336115e5565b3461012b57604036600319011261012b576111256112ee565b61112d6115b2565b6001600160a01b038116156106a05761012990602435906116fe565b3461012b575f36600319011261012b5760206111636117c0565b604051908152f35b3461012b575f36600319011261012b576020604051600c8152f35b3461012b57606036600319011261012b57610b176111a26112ee565b6111aa611304565b604435916111b983338361141d565b6114e1565b3461012b575f36600319011261012b5760205f516020611c295f395f51905f5254604051908152f35b3461012b57604036600319011261012b57610b176112036112ee565b602435903361169b565b3461012b575f36600319011261012b576040515f5f516020611b895f395f51905f52546112398161131a565b8084529060018116908115610bf8575060011461126057610b8a83610b7681850382611352565b5f516020611b895f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b057509091508101602001610b76610b66565b919260018160209254838588010152019101909291611298565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c92168015611348575b602083101461133457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611329565b90601f8019910116810190811067ffffffffffffffff8211176107a857604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140a575f516020611c095f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142883611374565b60018060a01b0382165f5260205260405f2054925f19840361144b575b50505050565b8284106114be576001600160a01b038116156114ab576001600160a01b038216156114985761147990611374565b9060018060a01b03165f5260205260405f20910390555f808080611445565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b031690811561159f576001600160a01b03169182156106a057815f525f516020611ba95f395f51905f5260205260405f205481811061158657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f516020611ba95f395f51905f5284520360405f2055845f525f516020611ba95f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f516020611c095f395f51905f52546001600160a01b031633036115d257565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b0316801561159f57805f525f516020611ba95f395f51905f5260205260405f2054838110611681576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f516020611ba95f395f51905f528452036040862055805f516020611c295f395f51905f5254035f516020611c295f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ab576001600160a01b0316928315611498577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ea602092611374565b855f5282528060405f2055604051908152a3565b5f516020611c295f395f51905f5254908282018092116117ac575f516020611c295f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178a57805f516020611c295f395f51905f5254035f516020611c295f395f51905f52555b604051908152a3565b8484525f516020611ba95f395f51905f52825260408420818154019055611781565b634e487b7160e01b5f52601160045260245ffd5b6117c8611953565b6117d0611a80565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182160c082611352565b51902090565b60ff5f516020611c695f395f51905f525460401c161561184357565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118c9575f516001600160a01b038116156118bf57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561193f57806118f1575050565b600181036119085763f645eedf60e01b5f5260045ffd5b60028103611923575063fce698f760e01b5f5260045260245ffd5b60031461192d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f516020611bc95f395f51905f5254905f816119718461131a565b9182825260208201946001811690815f14611a6457506001146119f9575b61199b92500382611352565b519081156119a7572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f516020611bc95f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4857505090602061199b9282010161198f565b6020919350806001915483858801015201910190918392611a30565b60ff191686525061199b92151560051b8201602001905061198f565b6040515f516020611c495f395f51905f5254905f81611a9e8461131a565b9182825260208201946001811690815f14611b6c5750600114611b01575b611ac892500382611352565b51908115611ad4572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d45790565b505f516020611c495f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b50575050906020611ac892820101611abc565b6020919350806001915483858801015201910190918392611b38565b60ff1916865250611ac892151560051b82016020019050611abc56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220d08a572a49deef0fe43c12723c823f7d35f0880c0978a58045ae35f94b3d290a64736f6c634300081c0033","sourceMap":"632:990:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;2357:1:24;632:990:121;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;:::-;632:990:121;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;;;:::i;:::-;4867:20:26;632:990:121;;:::i;:::-;4867:20:26;;:::i;:::-;:29;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;;-1:-1:-1;632:990:121;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:28;;:26;2297:97;;7051:25:58;7105:8;632:990:121;;;;;;;;;;;;972:64:30;632:990:121;;;;;;;;;;;;;;;;2435:78:28;632:990:121;2435:78:28;;632:990:121;1279:95:28;632:990:121;;1279:95:28;632:990:121;1279:95:28;;632:990:121;;;;;;;;;1279:95:28;;632:990:121;1279:95:28;632:990:121;1279:95:28;;632:990:121;;1279:95:28;;632:990:121;;1279:95:28;;632:990:121;;2435:78:28;;;632:990:121;2435:78:28;;:::i;:::-;632:990:121;2425:89:28;;4094:23:31;;:::i;:::-;3445:249:59;632:990:121;3445:249:59;;-1:-1:-1;;;3445:249:59;;;;;;;;;;632:990:121;;;3445:249:59;632:990:121;;3445:249:59;;7051:25:58;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;632:990:121;2638:15:28;;;2634:88;;10117:4:26;;;;;:::i;2634:88:28:-;2676:35;;;;;632:990:121;2676:35:28;632:990:121;;;;;;2676:35:28;2297:97;2350:33;;;;632:990:121;2350:33:28;632:990:121;;;;2350:33:28;632:990:121;;;;;;-1:-1:-1;;632:990:121;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;4301:16:25;632:990:121;;;;4726:16:25;;:34;;;;632:990:121;4805:1:25;4790:16;:50;;;;632:990:121;4855:13:25;:30;;;;632:990:121;4851:91:25;;;-1:-1:-1;;632:990:121;;4805:1:25;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;4979:67:25;;632:990:121;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:990:121;;;;;;;;;;;:::i;:::-;821:14;632:990;;-1:-1:-1;;;632:990:121;821:14;;;6893:76:25;;:::i;:::-;;;:::i;:::-;632:990:121;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;2600:7:26;632:990:121;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;2600:7:26;632:990:121;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;6893:76:25;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6961:1;;;:::i;:::-;632:990:121;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:990:121;;;;6893:76:25;;:::i;:::-;632:990:121;;;;;;;:::i;:::-;4805:1:25;632:990:121;;-1:-1:-1;;;632:990:121;;;;6893:76:25;;:::i;:::-;632:990:121;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;2600:7:26;632:990:121;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;2600:7:26;632:990:121;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;2806:64:31;632:990:121;;;3902:16:31;632:990:121;-1:-1:-1;;;;;632:990:121;;8803:21:26;8799:91;;941:9:121;8928:5:26;;;:::i;:::-;5066:101:25;;632:990:121;5066:101:25;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;5142:14:25;632:990:121;;;4805:1:25;632:990:121;;5142:14:25;632:990:121;8799:91:26;8847:32;;;632:990:121;8847:32:26;632:990:121;;;;;8847:32:26;632:990:121;;;;-1:-1:-1;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;2600:7:26;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;2600:7:26;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;2600:7:26;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;2600:7:26;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;4979:67:25;-1:-1:-1;;632:990:121;;;-1:-1:-1;;;;;;;;;;;632:990:121;4979:67:25;;;4851:91;6498:23;;;632:990:121;4908:23:25;632:990:121;;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:990:121;;;;;;-1:-1:-1;;632:990:121;;;;4616:5:26;632:990:121;;:::i;:::-;;;966:10:29;;4616:5:26;:::i;:::-;632:990:121;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;-1:-1:-1;632:990:121;;;;;;;-1:-1:-1;632:990:121;;-1:-1:-1;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:121;;-1:-1:-1;632:990:121;;;;;;;;-1:-1:-1;;632:990:121;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;-1:-1:-1;;;;;632:990:121;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;2806:64:31;632:990:121;5777:18:31;:43;;;632:990:121;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5965:13:31;632:990:121;;;;6000:4:31;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;632:990:121;;;;;;;;;;;;-1:-1:-1;;;632:990:121;;;;;;;5777:43:31;632:990:121;5799:16:31;632:990:121;5799:21:31;5777:43;;632:990:121;;;;;;-1:-1:-1;;632:990:121;;;;;;:::i;:::-;;;;;;;;;972:64:30;632:990:121;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;1479:5:27;632:990:121;;:::i;:::-;;;966:10:29;1448:5:27;966:10:29;;1448:5:27;;:::i;:::-;1479;:::i;632:990:121:-;;;;;;-1:-1:-1;;632:990:121;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:121;;-1:-1:-1;;;;;;632:990:121;;;;;;;-1:-1:-1;;;;;632:990:121;3975:40:24;632:990:121;;3975:40:24;632:990:121;;;;;;;-1:-1:-1;;632:990:121;;;;-1:-1:-1;;;;;632:990:121;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;6431:44:25;;;;632:990:121;6427:105:25;;1427:1:121;632:990;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;6656:20:25;632:990:121;;;1427:1;632:990;;6656:20:25;632:990:121;6431:44:25;632:990:121;1427:1;632:990;;;6450:25:25;;6431:44;;632:990:121;;;;;;-1:-1:-1;;632:990:121;;;;1005:5:27;632:990:121;;966:10:29;1005:5:27;:::i;632:990:121:-;;;;;;-1:-1:-1;;632:990:121;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;632:990:121;;8803:21:26;8799:91;;8928:5;632:990:121;;;8928:5:26;;:::i;632:990:121:-;;;;;;-1:-1:-1;;632:990:121;;;;;4094:23:31;;:::i;:::-;632:990:121;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;;;;1512:2;632:990;;;;;;;;;-1:-1:-1;;632:990:121;;;;6198:5:26;632:990:121;;:::i;:::-;;;:::i;:::-;;;966:10:29;6162:5:26;966:10:29;;6162:5:26;;:::i;:::-;6198;:::i;632:990:121:-;;;;;;-1:-1:-1;;632:990:121;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;10117:4:26;632:990:121;;:::i;:::-;;;966:10:29;;10117:4:26;:::i;632:990:121:-;;;;;;-1:-1:-1;;632:990:121;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;-1:-1:-1;632:990:121;;;;;;;-1:-1:-1;632:990:121;;-1:-1:-1;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:121;;;;;;;;-1:-1:-1;;632:990:121;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:990:121;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:990:121;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:990:121;;;;;4867:13:26;632:990:121;;;;;;:::o;3405:215:24:-;-1:-1:-1;;;;;632:990:121;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;632:990:121;;-1:-1:-1;;;;;;632:990:121;;;;;;;-1:-1:-1;;;;;632:990:121;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:990:121;;3509:1:24;3534:31;11745:477:26;;;4867:20;;;:::i;:::-;632:990:121;;;;;;;-1:-1:-1;632:990:121;;;;-1:-1:-1;632:990:121;;;;;11910:37:26;;11906:310;;11745:477;;;;;:::o;11906:310::-;11967:24;;;11963:130;;-1:-1:-1;;;;;632:990:121;;11141:19:26;11137:89;;-1:-1:-1;;;;;632:990:121;;11239:21:26;11235:90;;11334:20;;;:::i;:::-;:29;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;-1:-1:-1;632:990:121;;;;;11906:310:26;;;;;;11235:90;11283:31;;;-1:-1:-1;11283:31:26;-1:-1:-1;11283:31:26;632:990:121;;-1:-1:-1;11283:31:26;11137:89;11183:32;;;-1:-1:-1;11183:32:26;-1:-1:-1;11183:32:26;632:990:121;;-1:-1:-1;11183:32:26;11963:130;12018:60;;;;;;-1:-1:-1;12018:60:26;632:990:121;;;;;;12018:60:26;632:990:121;;;;;;-1:-1:-1;12018:60:26;6605:300;-1:-1:-1;;;;;632:990:121;;6688:18:26;;6684:86;;-1:-1:-1;;;;;632:990:121;;6783:16:26;;6779:86;;632:990:121;6704:1:26;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;;6704:1:26;632:990:121;;7609:19:26;;;7605:115;;632:990:121;8358:25:26;632:990:121;;;;6704:1:26;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;;;6704:1:26;632:990:121;;;6704:1:26;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;;6704:1:26;632:990:121;;;;;;;;;;;;8358:25:26;6605:300::o;7605:115::-;7655:50;;;;6704:1;7655:50;;632:990:121;;;;;;6704:1:26;7655:50;6684:86;6729:30;;;6704:1;6729:30;6704:1;6729:30;632:990:121;;6704:1:26;6729:30;2658:162:24;-1:-1:-1;;;;;;;;;;;632:990:121;-1:-1:-1;;;;;632:990:121;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:990:121;;-1:-1:-1;2763:40:24;9259:206:26;;;;-1:-1:-1;;;;;632:990:121;9329:21:26;;9325:89;;632:990:121;9348:1:26;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;;9348:1:26;632:990:121;;7609:19:26;;;7605:115;;632:990:121;;9348:1:26;632:990:121;;8358:25:26;632:990:121;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;8358:25:26;9259:206::o;7605:115::-;7655:50;;;;;9348:1;7655:50;;632:990:121;;;;;;9348:1:26;7655:50;10976:487;;-1:-1:-1;;;;;632:990:121;;;11141:19:26;;11137:89;;-1:-1:-1;;;;;632:990:121;;11239:21:26;;11235:90;;11415:31;11334:20;;632:990:121;11334:20:26;;:::i;:::-;632:990:121;-1:-1:-1;632:990:121;;;;;-1:-1:-1;632:990:121;;;;;;;11415:31:26;10976:487::o;7220:1170::-;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;-1:-1:-1;;;;;632:990:121;;;;8358:25:26;;632:990:121;;7918:16:26;632:990:121;;;-1:-1:-1;;;;;;;;;;;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;7914:429:26;632:990:121;;;;;8358:25:26;7220:1170::o;7914:429::-;632:990:121;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;7914:429:26;;632:990:121;;;;;941:9;;;;;632:990;941:9;4130:191:31;4243:17;;:::i;:::-;4262:20;;:::i;:::-;632:990:121;;4221:92:31;;;;632:990:121;2073:95:31;632:990:121;;;2073:95:31;;632:990:121;2073:95:31;;;632:990:121;4284:13:31;2073:95;;;632:990:121;4307:4:31;2073:95;;;632:990:121;2073:95:31;4221:92;;;;;;:::i;:::-;632:990:121;4211:103:31;;4130:191;:::o;7084:141:25:-;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:25;;-1:-1:-1;7191:17:25;5203:1551:58;;;6283:66;6270:79;;6266:164;;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;;;;;;;;;;6541:24:58;;;;;;;;;-1:-1:-1;6541:24:58;-1:-1:-1;;;;;632:990:121;;6579:20:58;6575:113;;6698:49;-1:-1:-1;6698:49:58;-1:-1:-1;5203:1551:58;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:58;6541:24;6615:62;-1:-1:-1;6615:62:58;:::o;6541:24::-;632:990:121;;;-1:-1:-1;632:990:121;;;;;6266:164:58;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;632:990:121;;;;;;7366:29:58;;;7411:7;;:::o;7362:444::-;632:990:121;7462:38:58;;632:990:121;;7523:23:58;;;7375:20;7523:23;632:990:121;7375:20:58;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;632:990:121;;;7375:20:58;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;632:990:121;;;7375:20:58;7763:32;632:990:121;;;;7375:20:58;632:990:121;;;;;7375:20:58;632:990:121;7058:687:31;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7230:22:31;;;;7275;7268:29;:::o;7226:513::-;-1:-1:-1;;2806:64:31;632:990:121;7603:15:31;;;;7638:17;:::o;7599:130::-;7694:20;7701:13;7694:20;:::o;632:990:121:-;-1:-1:-1;;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;-1:-1:-1;632:990:121;;;;;;;;;;;-1:-1:-1;632:990:121;;7966:723:31;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8147:25:31;;;;8195;8188:32;:::o;8143:540::-;-1:-1:-1;;8507:16:31;632:990:121;8541:18:31;;;;8579:20;:::o;632:990:121:-;-1:-1:-1;;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;-1:-1:-1;632:990:121;;;;;;;;;;;-1:-1:-1;632:990:121;","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.28+commit.7893614a\"},\"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\":\"pure\",\"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/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"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\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"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\":\"0x4c6100a8ab53ef249c937067f7d9779ee0966fb55b39903628c169428fdeee76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b96738706660e46a7d77d13e14191d658b87720e2000a52c02890505183c118\",\"dweb:/ipfs/QmRUjhpmBAEmVEqD4L5LznnDR9gQdgXg17kZExC9N55Q63\"]},\"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\":\"0x7a618cd9a1eea21201ec2ed8484080ca6225215e8883723bef34b9dcf22aa3b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a73451277e35206f1f8b9f20b2cd41732081bd23523f5a2c64e1e67694c33\",\"dweb:/ipfs/QmdPVK7KACRpoavNUoixGsi8jBWeZUJfNYCzZbHGSGz5yu\"]},\"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\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x27dbc90e5136ffe46c04f7596fc2dbcc3acebd8d504da3d93fdb8496e6de04f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea8b92e4245d75a5579c10f22f118f7b4ba07c57341f181f0b2a85ff8663de3\",\"dweb:/ipfs/Qme3Ss5ByjmkxxkMdLpyu7fQ1PCtjNFH1wEFszt2BZePiG\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x3e0983635bf88ee5284c4385c01431135b7eec294e2f1c0d22bc2dddc16790dd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0302725cd5b1bd6afacebd0d30d445bb1c86152745b6de42dc1a66a570b42718\",\"dweb:/ipfs/QmVCurygXE5PV65uvC12ybtXYpL292PMmEUPnbRtGbAY1V\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"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":"pure","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/","symbiotic-core/=lib/symbiotic-core/"],"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":"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139","urls":["bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2","dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx"],"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":"0x4c6100a8ab53ef249c937067f7d9779ee0966fb55b39903628c169428fdeee76","urls":["bzz-raw://2b96738706660e46a7d77d13e14191d658b87720e2000a52c02890505183c118","dweb:/ipfs/QmRUjhpmBAEmVEqD4L5LznnDR9gQdgXg17kZExC9N55Q63"],"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":"0x7a618cd9a1eea21201ec2ed8484080ca6225215e8883723bef34b9dcf22aa3b5","urls":["bzz-raw://287a73451277e35206f1f8b9f20b2cd41732081bd23523f5a2c64e1e67694c33","dweb:/ipfs/QmdPVK7KACRpoavNUoixGsi8jBWeZUJfNYCzZbHGSGz5yu"],"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":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x27dbc90e5136ffe46c04f7596fc2dbcc3acebd8d504da3d93fdb8496e6de04f6","urls":["bzz-raw://0ea8b92e4245d75a5579c10f22f118f7b4ba07c57341f181f0b2a85ff8663de3","dweb:/ipfs/Qme3Ss5ByjmkxxkMdLpyu7fQ1PCtjNFH1wEFszt2BZePiG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x3e0983635bf88ee5284c4385c01431135b7eec294e2f1c0d22bc2dddc16790dd","urls":["bzz-raw://0302725cd5b1bd6afacebd0d30d445bb1c86152745b6de42dc1a66a570b42718","dweb:/ipfs/QmVCurygXE5PV65uvC12ybtXYpL292PMmEUPnbRtGbAY1V"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":69473,"exportedSymbols":{"ERC20BurnableUpgradeable":[41265],"ERC20PermitUpgradeable":[41434],"ERC20Upgradeable":[41203],"Initializable":[40586],"OwnableUpgradeable":[40332],"WrappedVara":[69472]},"nodeType":"SourceUnit","src":"39:1584:121","nodes":[{"id":69367,"nodeType":"PragmaDirective","src":"39:24:121","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":69369,"nodeType":"ImportDirective","src":"65:96:121","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":69473,"sourceUnit":40587,"symbolAliases":[{"foreign":{"id":69368,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40586,"src":"73:13:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69371,"nodeType":"ImportDirective","src":"162:102:121","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":69473,"sourceUnit":41204,"symbolAliases":[{"foreign":{"id":69370,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41203,"src":"170:16:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69373,"nodeType":"ImportDirective","src":"265:133:121","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":69473,"sourceUnit":41266,"symbolAliases":[{"foreign":{"id":69372,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41265,"src":"273:24:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69375,"nodeType":"ImportDirective","src":"399:101:121","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":69473,"sourceUnit":40333,"symbolAliases":[{"foreign":{"id":69374,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40332,"src":"407:18:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69377,"nodeType":"ImportDirective","src":"501:129:121","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":69473,"sourceUnit":41435,"symbolAliases":[{"foreign":{"id":69376,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41434,"src":"509:22:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69472,"nodeType":"ContractDefinition","src":"632:990:121","nodes":[{"id":69390,"nodeType":"VariableDeclaration","src":"784:51:121","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"808:10:121","scope":69472,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69388,"name":"string","nodeType":"ElementaryTypeName","src":"784:6:121","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":69389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"821:14:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":69393,"nodeType":"VariableDeclaration","src":"841:46:121","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"865:12:121","scope":69472,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69391,"name":"string","nodeType":"ElementaryTypeName","src":"841:6:121","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":69392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"880:7:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":69396,"nodeType":"VariableDeclaration","src":"893:57:121","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"918:20:121","scope":69472,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69394,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":69395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:9:121","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":69404,"nodeType":"FunctionDefinition","src":"1010:53:121","nodes":[],"body":{"id":69403,"nodeType":"Block","src":"1024:39:121","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":69400,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40554,"src":"1034:20:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":69401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1034:22:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69402,"nodeType":"ExpressionStatement","src":"1034:22:121"}]},"documentation":{"id":69397,"nodeType":"StructuredDocumentation","src":"957:48:121","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":69398,"nodeType":"ParameterList","parameters":[],"src":"1021:2:121"},"returnParameters":{"id":69399,"nodeType":"ParameterList","parameters":[],"src":"1024:0:121"},"scope":69472,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":69438,"nodeType":"FunctionDefinition","src":"1069:297:121","nodes":[],"body":{"id":69437,"nodeType":"Block","src":"1130:236:121","nodes":[],"statements":[{"expression":{"arguments":[{"id":69412,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69390,"src":"1153:10:121","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":69413,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69393,"src":"1165:12:121","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":69411,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40654,"src":"1140:12:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":69414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:38:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69415,"nodeType":"ExpressionStatement","src":"1140:38:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":69416,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41224,"src":"1188:20:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":69417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:22:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69418,"nodeType":"ExpressionStatement","src":"1188:22:121"},{"expression":{"arguments":[{"id":69420,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69406,"src":"1235:12:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":69419,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40192,"src":"1220:14:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":69421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:28:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69422,"nodeType":"ExpressionStatement","src":"1220:28:121"},{"expression":{"arguments":[{"id":69424,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69390,"src":"1277:10:121","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":69423,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41321,"src":"1258:18:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":69425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:30:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69426,"nodeType":"ExpressionStatement","src":"1258:30:121"},{"expression":{"arguments":[{"id":69428,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69406,"src":"1305:12:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69429,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69396,"src":"1319:20:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":69430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:2:121","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":69431,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[69456],"referencedDeclaration":69456,"src":"1348:8:121","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":69432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1348:10:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1342:16:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:39:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":69427,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41035,"src":"1299:5:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":69435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1299:60:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69436,"nodeType":"ExpressionStatement","src":"1299:60:121"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":69409,"kind":"modifierInvocation","modifierName":{"id":69408,"name":"initializer","nameLocations":["1118:11:121"],"nodeType":"IdentifierPath","referencedDeclaration":40440,"src":"1118:11:121"},"nodeType":"ModifierInvocation","src":"1118:11:121"}],"name":"initialize","nameLocation":"1078:10:121","parameters":{"id":69407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69406,"mutability":"mutable","name":"initialOwner","nameLocation":"1097:12:121","nodeType":"VariableDeclaration","scope":69438,"src":"1089:20:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69405,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:121","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1088:22:121"},"returnParameters":{"id":69410,"nodeType":"ParameterList","parameters":[],"src":"1130:0:121"},"scope":69472,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":69447,"nodeType":"FunctionDefinition","src":"1372:60:121","nodes":[],"body":{"id":69446,"nodeType":"Block","src":"1430:2:121","nodes":[],"statements":[]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":69441,"kind":"modifierInvocation","modifierName":{"id":69440,"name":"onlyOwner","nameLocations":["1403:9:121"],"nodeType":"IdentifierPath","referencedDeclaration":40227,"src":"1403:9:121"},"nodeType":"ModifierInvocation","src":"1403:9:121"},{"arguments":[{"hexValue":"32","id":69443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1427:1:121","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":69444,"kind":"modifierInvocation","modifierName":{"id":69442,"name":"reinitializer","nameLocations":["1413:13:121"],"nodeType":"IdentifierPath","referencedDeclaration":40487,"src":"1413:13:121"},"nodeType":"ModifierInvocation","src":"1413:16:121"}],"name":"reinitialize","nameLocation":"1381:12:121","parameters":{"id":69439,"nodeType":"ParameterList","parameters":[],"src":"1393:2:121"},"returnParameters":{"id":69445,"nodeType":"ParameterList","parameters":[],"src":"1430:0:121"},"scope":69472,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":69456,"nodeType":"FunctionDefinition","src":"1438:83:121","nodes":[],"body":{"id":69455,"nodeType":"Block","src":"1495:26:121","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":69453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1512:2:121","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":69452,"id":69454,"nodeType":"Return","src":"1505:9:121"}]},"baseFunctions":[40723],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"1447:8:121","overrides":{"id":69449,"nodeType":"OverrideSpecifier","overrides":[],"src":"1470:8:121"},"parameters":{"id":69448,"nodeType":"ParameterList","parameters":[],"src":"1455:2:121"},"returnParameters":{"id":69452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69451,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69456,"src":"1488:5:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":69450,"name":"uint8","nodeType":"ElementaryTypeName","src":"1488:5:121","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1487:7:121"},"scope":69472,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":69471,"nodeType":"FunctionDefinition","src":"1527:93:121","nodes":[],"body":{"id":69470,"nodeType":"Block","src":"1586:34:121","nodes":[],"statements":[{"expression":{"arguments":[{"id":69466,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69458,"src":"1602:2:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":69467,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69460,"src":"1606:6:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":69465,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41035,"src":"1596:5:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":69468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1596:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69469,"nodeType":"ExpressionStatement","src":"1596:17:121"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":69463,"kind":"modifierInvocation","modifierName":{"id":69462,"name":"onlyOwner","nameLocations":["1576:9:121"],"nodeType":"IdentifierPath","referencedDeclaration":40227,"src":"1576:9:121"},"nodeType":"ModifierInvocation","src":"1576:9:121"}],"name":"mint","nameLocation":"1536:4:121","parameters":{"id":69461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69458,"mutability":"mutable","name":"to","nameLocation":"1549:2:121","nodeType":"VariableDeclaration","scope":69471,"src":"1541:10:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69457,"name":"address","nodeType":"ElementaryTypeName","src":"1541:7:121","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":69460,"mutability":"mutable","name":"amount","nameLocation":"1561:6:121","nodeType":"VariableDeclaration","scope":69471,"src":"1553:14:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69459,"name":"uint256","nodeType":"ElementaryTypeName","src":"1553:7:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1540:28:121"},"returnParameters":{"id":69464,"nodeType":"ParameterList","parameters":[],"src":"1586:0:121"},"scope":69472,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":69378,"name":"Initializable","nameLocations":["660:13:121"],"nodeType":"IdentifierPath","referencedDeclaration":40586,"src":"660:13:121"},"id":69379,"nodeType":"InheritanceSpecifier","src":"660:13:121"},{"baseName":{"id":69380,"name":"ERC20Upgradeable","nameLocations":["679:16:121"],"nodeType":"IdentifierPath","referencedDeclaration":41203,"src":"679:16:121"},"id":69381,"nodeType":"InheritanceSpecifier","src":"679:16:121"},{"baseName":{"id":69382,"name":"ERC20BurnableUpgradeable","nameLocations":["701:24:121"],"nodeType":"IdentifierPath","referencedDeclaration":41265,"src":"701:24:121"},"id":69383,"nodeType":"InheritanceSpecifier","src":"701:24:121"},{"baseName":{"id":69384,"name":"OwnableUpgradeable","nameLocations":["731:18:121"],"nodeType":"IdentifierPath","referencedDeclaration":40332,"src":"731:18:121"},"id":69385,"nodeType":"InheritanceSpecifier","src":"731:18:121"},{"baseName":{"id":69386,"name":"ERC20PermitUpgradeable","nameLocations":["755:22:121"],"nodeType":"IdentifierPath","referencedDeclaration":41434,"src":"755:22:121"},"id":69387,"nodeType":"InheritanceSpecifier","src":"755:22:121"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[69472,41434,41591,41935,42212,43875,40332,41265,41203,42254,43839,43813,41480,40586],"name":"WrappedVara","nameLocation":"641:11:121","scope":69473,"usedErrors":[40168,40173,40349,40352,41300,41307,41494,42224,42229,42234,42243,42248,42253,44961,44966,44971],"usedEvents":[40179,40357,42192,43747,43756]}],"license":"UNLICENSED"},"id":121} \ 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":"pure"},{"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":"0x6080806040523460aa575f516020611d6d5f395f51905f525460ff8160401c16609b576002600160401b03196001600160401b038216016049575b604051611cbe90816100af8239f35b6001600160401b0319166001600160401b039081175f516020611d6d5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80603a565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120d578063095ea7b3146111e757806318160ddd146111be57806323b872dd14611186578063313ce5671461116b5780633644e5151461114957806340c10f191461110c57806342966c68146110ef5780636c2eb3501461105557806370a0823114611011578063715018a614610faa57806379cc679014610f7a5780637ecebe0014610f2457806384b0196e14610c505780638da5cb5b14610c1c57806395d89b4114610b22578063a9059cbb14610af1578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112ee565b6101246115b2565b6113ac565b005b5f80fd5b3461012b57604036600319011261012b576101486112ee565b610159610153611304565b91611374565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112ee565b610197611304565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611352565b5190206102636117c0565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611852565b909291926118df565b6001600160a01b03168481036102ae5750610129935061169b565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112ee565b5f516020611c695f395f51905f52549060ff8260401c16159167ffffffffffffffff811680159081610ae9575b6001149081610adf575b159081610ad6575b50610ac75767ffffffffffffffff1981166001175f516020611c695f395f51905f525582610a9b575b5060405191610369604084611352565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611352565b6005835264575641524160d81b60208401526103ab611827565b6103b3611827565b835167ffffffffffffffff81116107a8576103db5f516020611b895f395f51905f525461131a565b601f8111610a2c575b50602094601f82116001146109b1579481929394955f926109a6575b50508160011b915f199060031b1c1916175f516020611b895f395f51905f52555b825167ffffffffffffffff81116107a8576104495f516020611be95f395f51905f525461131a565b601f8111610937575b506020601f82116001146108bc57819293945f926108b1575b50508160011b915f199060031b1c1916175f516020611be95f395f51905f52555b610494611827565b61049c611827565b6104a4611827565b6104ad816113ac565b604051916104bc604084611352565b600c83526b57726170706564205661726160a01b60208401526104dd611827565b604051916104ec604084611352565b60018352603160f81b6020840152610502611827565b835167ffffffffffffffff81116107a85761052a5f516020611bc95f395f51905f525461131a565b601f8111610842575b50602094601f82116001146107c7579481929394955f926107bc575b50508160011b915f199060031b1c1916175f516020611bc95f395f51905f52555b825167ffffffffffffffff81116107a8576105985f516020611c495f395f51905f525461131a565b601f8111610739575b506020601f82116001146106be57819293945f926106b3575b50508160011b915f199060031b1c1916175f516020611c495f395f51905f52555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a057670de0b6b3a7640000610643916116fe565b61064957005b68ff0000000000000000195f516020611c695f395f51905f5254165f516020611c695f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f516020611c495f395f51905f525f52805f20915f5b81811061072157509583600195969710610709575b505050811b015f516020611c495f395f51905f52556105db565b01515f1960f88460031b161c191690558480806106ef565b9192602060018192868b0151815501940192016106da565b5f516020611c495f395f51905f525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c8101916020841061079e575b601f0160051c01905b81811061079357506105a1565b5f8155600101610786565b909150819061077d565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f516020611bc95f395f51905f525f52805f20915f5b88811061082a57508360019596979810610812575b505050811b015f516020611bc95f395f51905f5255610570565b01515f1960f88460031b161c191690558580806107f8565b919260206001819286850151815501940192016107e3565b5f516020611bc95f395f51905f525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a7575b601f0160051c01905b81811061089c5750610533565b5f815560010161088f565b9091508190610886565b01519050848061046b565b601f198216905f516020611be95f395f51905f525f52805f20915f5b81811061091f57509583600195969710610907575b505050811b015f516020611be95f395f51905f525561048c565b01515f1960f88460031b161c191690558480806108ed565b9192602060018192868b0151815501940192016108d8565b5f516020611be95f395f51905f525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099c575b601f0160051c01905b8181106109915750610452565b5f8155600101610984565b909150819061097b565b015190508580610400565b601f198216955f516020611b895f395f51905f525f52805f20915f5b888110610a14575083600195969798106109fc575b505050811b015f516020611b895f395f51905f5255610421565b01515f1960f88460031b161c191690558580806109e2565b919260206001819286850151815501940192016109cd565b5f516020611b895f395f51905f525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a91575b601f0160051c01905b818110610a8657506103e4565b5f8155600101610a79565b9091508190610a70565b68ffffffffffffffffff191668010000000000000001175f516020611c695f395f51905f525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b17610b0d6112ee565b60243590336114e1565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f516020611be95f395f51905f5254610b4e8161131a565b8084529060018116908115610bf85750600114610b8e575b610b8a83610b7681850382611352565b6040519182916020835260208301906112ca565b0390f35b5f516020611be95f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bde57509091508101602001610b76610b66565b919260018160209254838588010152019101909291610bc6565b60ff191660208086019190915291151560051b84019091019150610b769050610b66565b3461012b575f36600319011261012b575f516020611c095f395f51905f52546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efb575b15610ebe576040515f516020611bc95f395f51905f5254815f610cab8361131a565b8083529260018116908115610e9f5750600114610e34575b610ccf92500382611352565b6040515f516020611c495f395f51905f5254815f610cec8361131a565b8083529260018116908115610e155750600114610daa575b610d1791925092610d4e94930382611352565b6020610d5c60405192610d2a8385611352565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112ca565b9085820360408701526112ca565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9357505050500390f35b835185528695509381019392810192600101610d84565b505f516020611c495f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610df9575050906020610d1792820101610d04565b6020919350806001915483858801015201910190918392610de1565b60209250610d1794915060ff191682840152151560051b820101610d04565b505f516020611bc95f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e83575050906020610ccf92820101610cc3565b6020919350806001915483858801015201910190918392610e6b565b60209250610ccf94915060ff191682840152151560051b820101610cc3565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c89565b3461012b57602036600319011261012b57610f3d6112ee565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f966112ee565b60243590610fa582338361141d565b6115e5565b3461012b575f36600319011261012b57610fc26115b2565b5f516020611c095f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110326112ee565b165f525f516020611ba95f395f51905f52602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106d6115b2565b5f516020611c695f395f51905f525460ff8160401c1680156110da575b610ac75760029068ffffffffffffffffff1916175f516020611c695f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108a565b3461012b57602036600319011261012b57610129600435336115e5565b3461012b57604036600319011261012b576111256112ee565b61112d6115b2565b6001600160a01b038116156106a05761012990602435906116fe565b3461012b575f36600319011261012b5760206111636117c0565b604051908152f35b3461012b575f36600319011261012b576020604051600c8152f35b3461012b57606036600319011261012b57610b176111a26112ee565b6111aa611304565b604435916111b983338361141d565b6114e1565b3461012b575f36600319011261012b5760205f516020611c295f395f51905f5254604051908152f35b3461012b57604036600319011261012b57610b176112036112ee565b602435903361169b565b3461012b575f36600319011261012b576040515f5f516020611b895f395f51905f52546112398161131a565b8084529060018116908115610bf8575060011461126057610b8a83610b7681850382611352565b5f516020611b895f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b057509091508101602001610b76610b66565b919260018160209254838588010152019101909291611298565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c92168015611348575b602083101461133457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611329565b90601f8019910116810190811067ffffffffffffffff8211176107a857604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140a575f516020611c095f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142883611374565b60018060a01b0382165f5260205260405f2054925f19840361144b575b50505050565b8284106114be576001600160a01b038116156114ab576001600160a01b038216156114985761147990611374565b9060018060a01b03165f5260205260405f20910390555f808080611445565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b031690811561159f576001600160a01b03169182156106a057815f525f516020611ba95f395f51905f5260205260405f205481811061158657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f516020611ba95f395f51905f5284520360405f2055845f525f516020611ba95f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f516020611c095f395f51905f52546001600160a01b031633036115d257565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b0316801561159f57805f525f516020611ba95f395f51905f5260205260405f2054838110611681576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f516020611ba95f395f51905f528452036040862055805f516020611c295f395f51905f5254035f516020611c295f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ab576001600160a01b0316928315611498577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ea602092611374565b855f5282528060405f2055604051908152a3565b5f516020611c295f395f51905f5254908282018092116117ac575f516020611c295f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178a57805f516020611c295f395f51905f5254035f516020611c295f395f51905f52555b604051908152a3565b8484525f516020611ba95f395f51905f52825260408420818154019055611781565b634e487b7160e01b5f52601160045260245ffd5b6117c8611953565b6117d0611a80565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182160c082611352565b51902090565b60ff5f516020611c695f395f51905f525460401c161561184357565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118c9575f516001600160a01b038116156118bf57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561193f57806118f1575050565b600181036119085763f645eedf60e01b5f5260045ffd5b60028103611923575063fce698f760e01b5f5260045260245ffd5b60031461192d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f516020611bc95f395f51905f5254905f816119718461131a565b9182825260208201946001811690815f14611a6457506001146119f9575b61199b92500382611352565b519081156119a7572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f516020611bc95f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4857505090602061199b9282010161198f565b6020919350806001915483858801015201910190918392611a30565b60ff191686525061199b92151560051b8201602001905061198f565b6040515f516020611c495f395f51905f5254905f81611a9e8461131a565b9182825260208201946001811690815f14611b6c5750600114611b01575b611ac892500382611352565b51908115611ad4572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d45790565b505f516020611c495f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b50575050906020611ac892820101611abc565b6020919350806001915483858801015201910190918392611b38565b60ff1916865250611ac892151560051b82016020019050611abc56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220800c6c4bade350076d89da19220c56c5d90cd834f3641a80dabd17ba9b7a3d0664736f6c634300081c0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"632:990:121:-:0;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;7896:76:25;;-1:-1:-1;;;;;;;;;;;632:990:121;;7985:34:25;7981:146;;-1:-1:-1;632:990:121;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;632:990:121;-1:-1:-1;;;;;632:990:121;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;8087:29:25;;632:990:121;;8087:29:25;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:25;;-1:-1:-1;7938:23:25;632:990:121;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461120d578063095ea7b3146111e757806318160ddd146111be57806323b872dd14611186578063313ce5671461116b5780633644e5151461114957806340c10f191461110c57806342966c68146110ef5780636c2eb3501461105557806370a0823114611011578063715018a614610faa57806379cc679014610f7a5780637ecebe0014610f2457806384b0196e14610c505780638da5cb5b14610c1c57806395d89b4114610b22578063a9059cbb14610af1578063c4d66de8146102d8578063d505accf14610176578063dd62ed3e1461012f5763f2fde38b14610100575f80fd5b3461012b57602036600319011261012b5761012961011c6112ee565b6101246115b2565b6113ac565b005b5f80fd5b3461012b57604036600319011261012b576101486112ee565b610159610153611304565b91611374565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461012b5760e036600319011261012b5761018f6112ee565b610197611304565b604435906064359260843560ff8116810361012b578442116102c55761028a6102939160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261025860e082611352565b5190206102636117c0565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611852565b909291926118df565b6001600160a01b03168481036102ae5750610129935061169b565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461012b57602036600319011261012b576102f16112ee565b5f516020611c695f395f51905f52549060ff8260401c16159167ffffffffffffffff811680159081610ae9575b6001149081610adf575b159081610ad6575b50610ac75767ffffffffffffffff1981166001175f516020611c695f395f51905f525582610a9b575b5060405191610369604084611352565b600c83526b57726170706564205661726160a01b602084015260405191610391604084611352565b6005835264575641524160d81b60208401526103ab611827565b6103b3611827565b835167ffffffffffffffff81116107a8576103db5f516020611b895f395f51905f525461131a565b601f8111610a2c575b50602094601f82116001146109b1579481929394955f926109a6575b50508160011b915f199060031b1c1916175f516020611b895f395f51905f52555b825167ffffffffffffffff81116107a8576104495f516020611be95f395f51905f525461131a565b601f8111610937575b506020601f82116001146108bc57819293945f926108b1575b50508160011b915f199060031b1c1916175f516020611be95f395f51905f52555b610494611827565b61049c611827565b6104a4611827565b6104ad816113ac565b604051916104bc604084611352565b600c83526b57726170706564205661726160a01b60208401526104dd611827565b604051916104ec604084611352565b60018352603160f81b6020840152610502611827565b835167ffffffffffffffff81116107a85761052a5f516020611bc95f395f51905f525461131a565b601f8111610842575b50602094601f82116001146107c7579481929394955f926107bc575b50508160011b915f199060031b1c1916175f516020611bc95f395f51905f52555b825167ffffffffffffffff81116107a8576105985f516020611c495f395f51905f525461131a565b601f8111610739575b506020601f82116001146106be57819293945f926106b3575b50508160011b915f199060031b1c1916175f516020611c495f395f51905f52555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008190557fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101556001600160a01b038116156106a057670de0b6b3a7640000610643916116fe565b61064957005b68ff0000000000000000195f516020611c695f395f51905f5254165f516020611c695f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b0151905084806105ba565b601f198216905f516020611c495f395f51905f525f52805f20915f5b81811061072157509583600195969710610709575b505050811b015f516020611c495f395f51905f52556105db565b01515f1960f88460031b161c191690558480806106ef565b9192602060018192868b0151815501940192016106da565b5f516020611c495f395f51905f525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c8101916020841061079e575b601f0160051c01905b81811061079357506105a1565b5f8155600101610786565b909150819061077d565b634e487b7160e01b5f52604160045260245ffd5b01519050858061054f565b601f198216955f516020611bc95f395f51905f525f52805f20915f5b88811061082a57508360019596979810610812575b505050811b015f516020611bc95f395f51905f5255610570565b01515f1960f88460031b161c191690558580806107f8565b919260206001819286850151815501940192016107e3565b5f516020611bc95f395f51905f525f527f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f830160051c810191602084106108a7575b601f0160051c01905b81811061089c5750610533565b5f815560010161088f565b9091508190610886565b01519050848061046b565b601f198216905f516020611be95f395f51905f525f52805f20915f5b81811061091f57509583600195969710610907575b505050811b015f516020611be95f395f51905f525561048c565b01515f1960f88460031b161c191690558480806108ed565b9192602060018192868b0151815501940192016108d8565b5f516020611be95f395f51905f525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f830160051c8101916020841061099c575b601f0160051c01905b8181106109915750610452565b5f8155600101610984565b909150819061097b565b015190508580610400565b601f198216955f516020611b895f395f51905f525f52805f20915f5b888110610a14575083600195969798106109fc575b505050811b015f516020611b895f395f51905f5255610421565b01515f1960f88460031b161c191690558580806109e2565b919260206001819286850151815501940192016109cd565b5f516020611b895f395f51905f525f527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c81019160208410610a91575b601f0160051c01905b818110610a8657506103e4565b5f8155600101610a79565b9091508190610a70565b68ffffffffffffffffff191668010000000000000001175f516020611c695f395f51905f525582610359565b63f92ee8a960e01b5f5260045ffd5b90501584610330565b303b159150610328565b84915061031e565b3461012b57604036600319011261012b57610b17610b0d6112ee565b60243590336114e1565b602060405160018152f35b3461012b575f36600319011261012b576040515f5f516020611be95f395f51905f5254610b4e8161131a565b8084529060018116908115610bf85750600114610b8e575b610b8a83610b7681850382611352565b6040519182916020835260208301906112ca565b0390f35b5f516020611be95f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bde57509091508101602001610b76610b66565b919260018160209254838588010152019101909291610bc6565b60ff191660208086019190915291151560051b84019091019150610b769050610b66565b3461012b575f36600319011261012b575f516020611c095f395f51905f52546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610efb575b15610ebe576040515f516020611bc95f395f51905f5254815f610cab8361131a565b8083529260018116908115610e9f5750600114610e34575b610ccf92500382611352565b6040515f516020611c495f395f51905f5254815f610cec8361131a565b8083529260018116908115610e155750600114610daa575b610d1791925092610d4e94930382611352565b6020610d5c60405192610d2a8385611352565b5f84525f368137604051958695600f60f81b875260e08588015260e08701906112ca565b9085820360408701526112ca565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d9357505050500390f35b835185528695509381019392810192600101610d84565b505f516020611c495f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310610df9575050906020610d1792820101610d04565b6020919350806001915483858801015201910190918392610de1565b60209250610d1794915060ff191682840152151560051b820101610d04565b505f516020611bc95f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310610e83575050906020610ccf92820101610cc3565b6020919350806001915483858801015201910190918392610e6b565b60209250610ccf94915060ff191682840152151560051b820101610cc3565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610c89565b3461012b57602036600319011261012b57610f3d6112ee565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461012b57604036600319011261012b57610129610f966112ee565b60243590610fa582338361141d565b6115e5565b3461012b575f36600319011261012b57610fc26115b2565b5f516020611c095f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461012b57602036600319011261012b576001600160a01b036110326112ee565b165f525f516020611ba95f395f51905f52602052602060405f2054604051908152f35b3461012b575f36600319011261012b5761106d6115b2565b5f516020611c695f395f51905f525460ff8160401c1680156110da575b610ac75760029068ffffffffffffffffff1916175f516020611c695f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b50600267ffffffffffffffff8216101561108a565b3461012b57602036600319011261012b57610129600435336115e5565b3461012b57604036600319011261012b576111256112ee565b61112d6115b2565b6001600160a01b038116156106a05761012990602435906116fe565b3461012b575f36600319011261012b5760206111636117c0565b604051908152f35b3461012b575f36600319011261012b576020604051600c8152f35b3461012b57606036600319011261012b57610b176111a26112ee565b6111aa611304565b604435916111b983338361141d565b6114e1565b3461012b575f36600319011261012b5760205f516020611c295f395f51905f5254604051908152f35b3461012b57604036600319011261012b57610b176112036112ee565b602435903361169b565b3461012b575f36600319011261012b576040515f5f516020611b895f395f51905f52546112398161131a565b8084529060018116908115610bf8575060011461126057610b8a83610b7681850382611352565b5f516020611b895f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106112b057509091508101602001610b76610b66565b919260018160209254838588010152019101909291611298565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361012b57565b602435906001600160a01b038216820361012b57565b90600182811c92168015611348575b602083101461133457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611329565b90601f8019910116810190811067ffffffffffffffff8211176107a857604052565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0316801561140a575f516020611c095f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b919061142883611374565b60018060a01b0382165f5260205260405f2054925f19840361144b575b50505050565b8284106114be576001600160a01b038116156114ab576001600160a01b038216156114985761147990611374565b9060018060a01b03165f5260205260405f20910390555f808080611445565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b031690811561159f576001600160a01b03169182156106a057815f525f516020611ba95f395f51905f5260205260405f205481811061158657817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f516020611ba95f395f51905f5284520360405f2055845f525f516020611ba95f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f516020611c095f395f51905f52546001600160a01b031633036115d257565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b0316801561159f57805f525f516020611ba95f395f51905f5260205260405f2054838110611681576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f516020611ba95f395f51905f528452036040862055805f516020611c295f395f51905f5254035f516020611c295f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b0383169182156114ab576001600160a01b0316928315611498577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916116ea602092611374565b855f5282528060405f2055604051908152a3565b5f516020611c295f395f51905f5254908282018092116117ac575f516020611c295f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020908461178a57805f516020611c295f395f51905f5254035f516020611c295f395f51905f52555b604051908152a3565b8484525f516020611ba95f395f51905f52825260408420818154019055611781565b634e487b7160e01b5f52601160045260245ffd5b6117c8611953565b6117d0611a80565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261182160c082611352565b51902090565b60ff5f516020611c695f395f51905f525460401c161561184357565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116118d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156118c9575f516001600160a01b038116156118bf57905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600481101561193f57806118f1575050565b600181036119085763f645eedf60e01b5f5260045ffd5b60028103611923575063fce698f760e01b5f5260045260245ffd5b60031461192d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6040515f516020611bc95f395f51905f5254905f816119718461131a565b9182825260208201946001811690815f14611a6457506001146119f9575b61199b92500382611352565b519081156119a7572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156119d45790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b505f516020611bc95f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611a4857505090602061199b9282010161198f565b6020919350806001915483858801015201910190918392611a30565b60ff191686525061199b92151560051b8201602001905061198f565b6040515f516020611c495f395f51905f5254905f81611a9e8461131a565b9182825260208201946001811690815f14611b6c5750600114611b01575b611ac892500382611352565b51908115611ad4572090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156119d45790565b505f516020611c495f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b50575050906020611ac892820101611abc565b6020919350806001915483858801015201910190918392611b38565b60ff1916865250611ac892151560051b82016020019050611abc56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220800c6c4bade350076d89da19220c56c5d90cd834f3641a80dabd17ba9b7a3d0664736f6c634300081c0033","sourceMap":"632:990:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;2357:1:24;632:990:121;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;:::-;632:990:121;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;;;:::i;:::-;4867:20:26;632:990:121;;:::i;:::-;4867:20:26;;:::i;:::-;:29;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;;-1:-1:-1;632:990:121;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:28;;:26;2297:97;;7051:25:58;7105:8;632:990:121;;;;;;;;;;;;972:64:30;632:990:121;;;;;;;;;;;;;;;;2435:78:28;632:990:121;2435:78:28;;632:990:121;1279:95:28;632:990:121;;1279:95:28;632:990:121;1279:95:28;;632:990:121;;;;;;;;;1279:95:28;;632:990:121;1279:95:28;632:990:121;1279:95:28;;632:990:121;;1279:95:28;;632:990:121;;1279:95:28;;632:990:121;;2435:78:28;;;632:990:121;2435:78:28;;:::i;:::-;632:990:121;2425:89:28;;4094:23:31;;:::i;:::-;3445:249:59;632:990:121;3445:249:59;;-1:-1:-1;;;3445:249:59;;;;;;;;;;632:990:121;;;3445:249:59;632:990:121;;3445:249:59;;7051:25:58;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;632:990:121;2638:15:28;;;2634:88;;10117:4:26;;;;;:::i;2634:88:28:-;2676:35;;;;;632:990:121;2676:35:28;632:990:121;;;;;;2676:35:28;2297:97;2350:33;;;;632:990:121;2350:33:28;632:990:121;;;;2350:33:28;632:990:121;;;;;;-1:-1:-1;;632:990:121;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;4301:16:25;632:990:121;;;;4726:16:25;;:34;;;;632:990:121;4805:1:25;4790:16;:50;;;;632:990:121;4855:13:25;:30;;;;632:990:121;4851:91:25;;;-1:-1:-1;;632:990:121;;4805:1:25;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;4979:67:25;;632:990:121;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:990:121;;;;;;;;;;;:::i;:::-;821:14;632:990;;-1:-1:-1;;;632:990:121;821:14;;;6893:76:25;;:::i;:::-;;;:::i;:::-;632:990:121;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;2600:7:26;632:990:121;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;2600:7:26;632:990:121;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;6893:76:25;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6961:1;;;:::i;:::-;632:990:121;;;;;;;:::i;:::-;;;;-1:-1:-1;;;632:990:121;;;;6893:76:25;;:::i;:::-;632:990:121;;;;;;;:::i;:::-;4805:1:25;632:990:121;;-1:-1:-1;;;632:990:121;;;;6893:76:25;;:::i;:::-;632:990:121;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;2600:7:26;632:990:121;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;2600:7:26;632:990:121;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;2806:64:31;632:990:121;;;3902:16:31;632:990:121;-1:-1:-1;;;;;632:990:121;;8803:21:26;8799:91;;941:9:121;8928:5:26;;;:::i;:::-;5066:101:25;;632:990:121;5066:101:25;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;5142:14:25;632:990:121;;;4805:1:25;632:990:121;;5142:14:25;632:990:121;8799:91:26;8847:32;;;632:990:121;8847:32:26;632:990:121;;;;;8847:32:26;632:990:121;;;;-1:-1:-1;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;2600:7:26;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;2600:7:26;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;2600:7:26;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;2600:7:26;632:990:121;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;821:14;632:990;;;;;;;;;;;;821:14;632:990;;;;;;;;;;;;;;;;4805:1:25;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;4979:67:25;-1:-1:-1;;632:990:121;;;-1:-1:-1;;;;;;;;;;;632:990:121;4979:67:25;;;4851:91;6498:23;;;632:990:121;4908:23:25;632:990:121;;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:990:121;;;;;;-1:-1:-1;;632:990:121;;;;4616:5:26;632:990:121;;:::i;:::-;;;966:10:29;;4616:5:26;:::i;:::-;632:990:121;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;-1:-1:-1;632:990:121;;;;;;;-1:-1:-1;632:990:121;;-1:-1:-1;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:121;;-1:-1:-1;632:990:121;;;;;;;;-1:-1:-1;;632:990:121;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;-1:-1:-1;;;;;632:990:121;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;2806:64:31;632:990:121;5777:18:31;:43;;;632:990:121;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5965:13:31;632:990:121;;;;6000:4:31;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;632:990:121;;;;;;;;;;;;-1:-1:-1;;;632:990:121;;;;;;;5777:43:31;632:990:121;5799:16:31;632:990:121;5799:21:31;5777:43;;632:990:121;;;;;;-1:-1:-1;;632:990:121;;;;;;:::i;:::-;;;;;;;;;972:64:30;632:990:121;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;1479:5:27;632:990:121;;:::i;:::-;;;966:10:29;1448:5:27;966:10:29;;1448:5:27;;:::i;:::-;1479;:::i;632:990:121:-;;;;;;-1:-1:-1;;632:990:121;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:121;;-1:-1:-1;;;;;;632:990:121;;;;;;;-1:-1:-1;;;;;632:990:121;3975:40:24;632:990:121;;3975:40:24;632:990:121;;;;;;;-1:-1:-1;;632:990:121;;;;-1:-1:-1;;;;;632:990:121;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;6431:44:25;;;;632:990:121;6427:105:25;;1427:1:121;632:990;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;6656:20:25;632:990:121;;;1427:1;632:990;;6656:20:25;632:990:121;6431:44:25;632:990:121;1427:1;632:990;;;6450:25:25;;6431:44;;632:990:121;;;;;;-1:-1:-1;;632:990:121;;;;1005:5:27;632:990:121;;966:10:29;1005:5:27;:::i;632:990:121:-;;;;;;-1:-1:-1;;632:990:121;;;;;;:::i;:::-;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;632:990:121;;8803:21:26;8799:91;;8928:5;632:990:121;;;8928:5:26;;:::i;632:990:121:-;;;;;;-1:-1:-1;;632:990:121;;;;;4094:23:31;;:::i;:::-;632:990:121;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;;;;1512:2;632:990;;;;;;;;;-1:-1:-1;;632:990:121;;;;6198:5:26;632:990:121;;:::i;:::-;;;:::i;:::-;;;966:10:29;6162:5:26;966:10:29;;6162:5:26;;:::i;:::-;6198;:::i;632:990:121:-;;;;;;-1:-1:-1;;632:990:121;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;;10117:4:26;632:990:121;;:::i;:::-;;;966:10:29;;10117:4:26;:::i;632:990:121:-;;;;;;-1:-1:-1;;632:990:121;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;-1:-1:-1;632:990:121;;;;;;;-1:-1:-1;632:990:121;;-1:-1:-1;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:990:121;;;;;;;;-1:-1:-1;;632:990:121;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:990:121;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:990:121;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;632:990:121;;;;;4867:13:26;632:990:121;;;;;;:::o;3405:215:24:-;-1:-1:-1;;;;;632:990:121;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;632:990:121;;-1:-1:-1;;;;;;632:990:121;;;;;;;-1:-1:-1;;;;;632:990:121;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:990:121;;3509:1:24;3534:31;11745:477:26;;;4867:20;;;:::i;:::-;632:990:121;;;;;;;-1:-1:-1;632:990:121;;;;-1:-1:-1;632:990:121;;;;;11910:37:26;;11906:310;;11745:477;;;;;:::o;11906:310::-;11967:24;;;11963:130;;-1:-1:-1;;;;;632:990:121;;11141:19:26;11137:89;;-1:-1:-1;;;;;632:990:121;;11239:21:26;11235:90;;11334:20;;;:::i;:::-;:29;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;-1:-1:-1;632:990:121;;;;;11906:310:26;;;;;;11235:90;11283:31;;;-1:-1:-1;11283:31:26;-1:-1:-1;11283:31:26;632:990:121;;-1:-1:-1;11283:31:26;11137:89;11183:32;;;-1:-1:-1;11183:32:26;-1:-1:-1;11183:32:26;632:990:121;;-1:-1:-1;11183:32:26;11963:130;12018:60;;;;;;-1:-1:-1;12018:60:26;632:990:121;;;;;;12018:60:26;632:990:121;;;;;;-1:-1:-1;12018:60:26;6605:300;-1:-1:-1;;;;;632:990:121;;6688:18:26;;6684:86;;-1:-1:-1;;;;;632:990:121;;6783:16:26;;6779:86;;632:990:121;6704:1:26;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;;6704:1:26;632:990:121;;7609:19:26;;;7605:115;;632:990:121;8358:25:26;632:990:121;;;;6704:1:26;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;;;6704:1:26;632:990:121;;;6704:1:26;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;;6704:1:26;632:990:121;;;;;;;;;;;;8358:25:26;6605:300::o;7605:115::-;7655:50;;;;6704:1;7655:50;;632:990:121;;;;;;6704:1:26;7655:50;6684:86;6729:30;;;6704:1;6729:30;6704:1;6729:30;632:990:121;;6704:1:26;6729:30;2658:162:24;-1:-1:-1;;;;;;;;;;;632:990:121;-1:-1:-1;;;;;632:990:121;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:990:121;;-1:-1:-1;2763:40:24;9259:206:26;;;;-1:-1:-1;;;;;632:990:121;9329:21:26;;9325:89;;632:990:121;9348:1:26;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;;9348:1:26;632:990:121;;7609:19:26;;;7605:115;;632:990:121;;9348:1:26;632:990:121;;8358:25:26;632:990:121;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;8358:25:26;9259:206::o;7605:115::-;7655:50;;;;;9348:1;7655:50;;632:990:121;;;;;;9348:1:26;7655:50;10976:487;;-1:-1:-1;;;;;632:990:121;;;11141:19:26;;11137:89;;-1:-1:-1;;;;;632:990:121;;11239:21:26;;11235:90;;11415:31;11334:20;;632:990:121;11334:20:26;;:::i;:::-;632:990:121;-1:-1:-1;632:990:121;;;;;-1:-1:-1;632:990:121;;;;;;;11415:31:26;10976:487::o;7220:1170::-;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;-1:-1:-1;;;;;632:990:121;;;;8358:25:26;;632:990:121;;7918:16:26;632:990:121;;;-1:-1:-1;;;;;;;;;;;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;7914:429:26;632:990:121;;;;;8358:25:26;7220:1170::o;7914:429::-;632:990:121;;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;;;;;7914:429:26;;632:990:121;;;;;941:9;;;;;632:990;941:9;4130:191:31;4243:17;;:::i;:::-;4262:20;;:::i;:::-;632:990:121;;4221:92:31;;;;632:990:121;2073:95:31;632:990:121;;;2073:95:31;;632:990:121;2073:95:31;;;632:990:121;4284:13:31;2073:95;;;632:990:121;4307:4:31;2073:95;;;632:990:121;2073:95:31;4221:92;;;;;;:::i;:::-;632:990:121;4211:103:31;;4130:191;:::o;7084:141:25:-;632:990:121;-1:-1:-1;;;;;;;;;;;632:990:121;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:25;;-1:-1:-1;7191:17:25;5203:1551:58;;;6283:66;6270:79;;6266:164;;632:990:121;;;;;;-1:-1:-1;632:990:121;;;;;;;;;;;;;;;;;;;6541:24:58;;;;;;;;;-1:-1:-1;6541:24:58;-1:-1:-1;;;;;632:990:121;;6579:20:58;6575:113;;6698:49;-1:-1:-1;6698:49:58;-1:-1:-1;5203:1551:58;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:58;6541:24;6615:62;-1:-1:-1;6615:62:58;:::o;6541:24::-;632:990:121;;;-1:-1:-1;632:990:121;;;;;6266:164:58;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;632:990:121;;;;;;7366:29:58;;;7411:7;;:::o;7362:444::-;632:990:121;7462:38:58;;632:990:121;;7523:23:58;;;7375:20;7523:23;632:990:121;7375:20:58;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;632:990:121;;;7375:20:58;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;632:990:121;;;7375:20:58;7763:32;632:990:121;;;;7375:20:58;632:990:121;;;;;7375:20:58;632:990:121;7058:687:31;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7230:22:31;;;;7275;7268:29;:::o;7226:513::-;-1:-1:-1;;2806:64:31;632:990:121;7603:15:31;;;;7638:17;:::o;7599:130::-;7694:20;7701:13;7694:20;:::o;632:990:121:-;-1:-1:-1;;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;-1:-1:-1;632:990:121;;;;;;;;;;;-1:-1:-1;632:990:121;;7966:723:31;632:990:121;;-1:-1:-1;;;;;;;;;;;632:990:121;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8147:25:31;;;;8195;8188:32;:::o;8143:540::-;-1:-1:-1;;8507:16:31;632:990:121;8541:18:31;;;;8579:20;:::o;632:990:121:-;-1:-1:-1;;;;;;;;;;;;632:990:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:990:121;;;-1:-1:-1;632:990:121;;;;;;;;;;;-1:-1:-1;632:990:121;","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.28+commit.7893614a\"},\"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\":\"pure\",\"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/\",\":symbiotic-core/=lib/symbiotic-core/\"],\"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\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"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\":\"0x4c6100a8ab53ef249c937067f7d9779ee0966fb55b39903628c169428fdeee76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b96738706660e46a7d77d13e14191d658b87720e2000a52c02890505183c118\",\"dweb:/ipfs/QmRUjhpmBAEmVEqD4L5LznnDR9gQdgXg17kZExC9N55Q63\"]},\"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\":\"0x7a618cd9a1eea21201ec2ed8484080ca6225215e8883723bef34b9dcf22aa3b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287a73451277e35206f1f8b9f20b2cd41732081bd23523f5a2c64e1e67694c33\",\"dweb:/ipfs/QmdPVK7KACRpoavNUoixGsi8jBWeZUJfNYCzZbHGSGz5yu\"]},\"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\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x27dbc90e5136ffe46c04f7596fc2dbcc3acebd8d504da3d93fdb8496e6de04f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea8b92e4245d75a5579c10f22f118f7b4ba07c57341f181f0b2a85ff8663de3\",\"dweb:/ipfs/Qme3Ss5ByjmkxxkMdLpyu7fQ1PCtjNFH1wEFszt2BZePiG\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x3e0983635bf88ee5284c4385c01431135b7eec294e2f1c0d22bc2dddc16790dd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0302725cd5b1bd6afacebd0d30d445bb1c86152745b6de42dc1a66a570b42718\",\"dweb:/ipfs/QmVCurygXE5PV65uvC12ybtXYpL292PMmEUPnbRtGbAY1V\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"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":"pure","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/","symbiotic-core/=lib/symbiotic-core/"],"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":"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139","urls":["bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2","dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx"],"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":"0x4c6100a8ab53ef249c937067f7d9779ee0966fb55b39903628c169428fdeee76","urls":["bzz-raw://2b96738706660e46a7d77d13e14191d658b87720e2000a52c02890505183c118","dweb:/ipfs/QmRUjhpmBAEmVEqD4L5LznnDR9gQdgXg17kZExC9N55Q63"],"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":"0x7a618cd9a1eea21201ec2ed8484080ca6225215e8883723bef34b9dcf22aa3b5","urls":["bzz-raw://287a73451277e35206f1f8b9f20b2cd41732081bd23523f5a2c64e1e67694c33","dweb:/ipfs/QmdPVK7KACRpoavNUoixGsi8jBWeZUJfNYCzZbHGSGz5yu"],"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":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x27dbc90e5136ffe46c04f7596fc2dbcc3acebd8d504da3d93fdb8496e6de04f6","urls":["bzz-raw://0ea8b92e4245d75a5579c10f22f118f7b4ba07c57341f181f0b2a85ff8663de3","dweb:/ipfs/Qme3Ss5ByjmkxxkMdLpyu7fQ1PCtjNFH1wEFszt2BZePiG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x3e0983635bf88ee5284c4385c01431135b7eec294e2f1c0d22bc2dddc16790dd","urls":["bzz-raw://0302725cd5b1bd6afacebd0d30d445bb1c86152745b6de42dc1a66a570b42718","dweb:/ipfs/QmVCurygXE5PV65uvC12ybtXYpL292PMmEUPnbRtGbAY1V"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":69541,"exportedSymbols":{"ERC20BurnableUpgradeable":[41265],"ERC20PermitUpgradeable":[41434],"ERC20Upgradeable":[41203],"Initializable":[40586],"OwnableUpgradeable":[40332],"WrappedVara":[69540]},"nodeType":"SourceUnit","src":"39:1584:121","nodes":[{"id":69435,"nodeType":"PragmaDirective","src":"39:24:121","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":69437,"nodeType":"ImportDirective","src":"65:96:121","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":69541,"sourceUnit":40587,"symbolAliases":[{"foreign":{"id":69436,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40586,"src":"73:13:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69439,"nodeType":"ImportDirective","src":"162:102:121","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":69541,"sourceUnit":41204,"symbolAliases":[{"foreign":{"id":69438,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41203,"src":"170:16:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69441,"nodeType":"ImportDirective","src":"265:133:121","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":69541,"sourceUnit":41266,"symbolAliases":[{"foreign":{"id":69440,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41265,"src":"273:24:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69443,"nodeType":"ImportDirective","src":"399:101:121","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":69541,"sourceUnit":40333,"symbolAliases":[{"foreign":{"id":69442,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40332,"src":"407:18:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69445,"nodeType":"ImportDirective","src":"501:129:121","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":69541,"sourceUnit":41435,"symbolAliases":[{"foreign":{"id":69444,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41434,"src":"509:22:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":69540,"nodeType":"ContractDefinition","src":"632:990:121","nodes":[{"id":69458,"nodeType":"VariableDeclaration","src":"784:51:121","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"808:10:121","scope":69540,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69456,"name":"string","nodeType":"ElementaryTypeName","src":"784:6:121","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":69457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"821:14:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":69461,"nodeType":"VariableDeclaration","src":"841:46:121","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"865:12:121","scope":69540,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":69459,"name":"string","nodeType":"ElementaryTypeName","src":"841:6:121","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":69460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"880:7:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":69464,"nodeType":"VariableDeclaration","src":"893:57:121","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"918:20:121","scope":69540,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69462,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":69463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:9:121","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":69472,"nodeType":"FunctionDefinition","src":"1010:53:121","nodes":[],"body":{"id":69471,"nodeType":"Block","src":"1024:39:121","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":69468,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40554,"src":"1034:20:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":69469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1034:22:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69470,"nodeType":"ExpressionStatement","src":"1034:22:121"}]},"documentation":{"id":69465,"nodeType":"StructuredDocumentation","src":"957:48:121","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":69466,"nodeType":"ParameterList","parameters":[],"src":"1021:2:121"},"returnParameters":{"id":69467,"nodeType":"ParameterList","parameters":[],"src":"1024:0:121"},"scope":69540,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":69506,"nodeType":"FunctionDefinition","src":"1069:297:121","nodes":[],"body":{"id":69505,"nodeType":"Block","src":"1130:236:121","nodes":[],"statements":[{"expression":{"arguments":[{"id":69480,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69458,"src":"1153:10:121","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":69481,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69461,"src":"1165:12:121","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":69479,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40654,"src":"1140:12:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":69482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:38:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69483,"nodeType":"ExpressionStatement","src":"1140:38:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":69484,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41224,"src":"1188:20:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":69485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:22:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69486,"nodeType":"ExpressionStatement","src":"1188:22:121"},{"expression":{"arguments":[{"id":69488,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69474,"src":"1235:12:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":69487,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40192,"src":"1220:14:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":69489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:28:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69490,"nodeType":"ExpressionStatement","src":"1220:28:121"},{"expression":{"arguments":[{"id":69492,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69458,"src":"1277:10:121","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":69491,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41321,"src":"1258:18:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":69493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:30:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69494,"nodeType":"ExpressionStatement","src":"1258:30:121"},{"expression":{"arguments":[{"id":69496,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69474,"src":"1305:12:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":69497,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69464,"src":"1319:20:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":69501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":69498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:2:121","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":69499,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[69524],"referencedDeclaration":69524,"src":"1348:8:121","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":69500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1348:10:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1342:16:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:39:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":69495,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41035,"src":"1299:5:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":69503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1299:60:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69504,"nodeType":"ExpressionStatement","src":"1299:60:121"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":69477,"kind":"modifierInvocation","modifierName":{"id":69476,"name":"initializer","nameLocations":["1118:11:121"],"nodeType":"IdentifierPath","referencedDeclaration":40440,"src":"1118:11:121"},"nodeType":"ModifierInvocation","src":"1118:11:121"}],"name":"initialize","nameLocation":"1078:10:121","parameters":{"id":69475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69474,"mutability":"mutable","name":"initialOwner","nameLocation":"1097:12:121","nodeType":"VariableDeclaration","scope":69506,"src":"1089:20:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69473,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:121","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1088:22:121"},"returnParameters":{"id":69478,"nodeType":"ParameterList","parameters":[],"src":"1130:0:121"},"scope":69540,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":69515,"nodeType":"FunctionDefinition","src":"1372:60:121","nodes":[],"body":{"id":69514,"nodeType":"Block","src":"1430:2:121","nodes":[],"statements":[]},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":69509,"kind":"modifierInvocation","modifierName":{"id":69508,"name":"onlyOwner","nameLocations":["1403:9:121"],"nodeType":"IdentifierPath","referencedDeclaration":40227,"src":"1403:9:121"},"nodeType":"ModifierInvocation","src":"1403:9:121"},{"arguments":[{"hexValue":"32","id":69511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1427:1:121","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":69512,"kind":"modifierInvocation","modifierName":{"id":69510,"name":"reinitializer","nameLocations":["1413:13:121"],"nodeType":"IdentifierPath","referencedDeclaration":40487,"src":"1413:13:121"},"nodeType":"ModifierInvocation","src":"1413:16:121"}],"name":"reinitialize","nameLocation":"1381:12:121","parameters":{"id":69507,"nodeType":"ParameterList","parameters":[],"src":"1393:2:121"},"returnParameters":{"id":69513,"nodeType":"ParameterList","parameters":[],"src":"1430:0:121"},"scope":69540,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":69524,"nodeType":"FunctionDefinition","src":"1438:83:121","nodes":[],"body":{"id":69523,"nodeType":"Block","src":"1495:26:121","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":69521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1512:2:121","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":69520,"id":69522,"nodeType":"Return","src":"1505:9:121"}]},"baseFunctions":[40723],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"1447:8:121","overrides":{"id":69517,"nodeType":"OverrideSpecifier","overrides":[],"src":"1470:8:121"},"parameters":{"id":69516,"nodeType":"ParameterList","parameters":[],"src":"1455:2:121"},"returnParameters":{"id":69520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":69524,"src":"1488:5:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":69518,"name":"uint8","nodeType":"ElementaryTypeName","src":"1488:5:121","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1487:7:121"},"scope":69540,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":69539,"nodeType":"FunctionDefinition","src":"1527:93:121","nodes":[],"body":{"id":69538,"nodeType":"Block","src":"1586:34:121","nodes":[],"statements":[{"expression":{"arguments":[{"id":69534,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69526,"src":"1602:2:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":69535,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69528,"src":"1606:6:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":69533,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41035,"src":"1596:5:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":69536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1596:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":69537,"nodeType":"ExpressionStatement","src":"1596:17:121"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":69531,"kind":"modifierInvocation","modifierName":{"id":69530,"name":"onlyOwner","nameLocations":["1576:9:121"],"nodeType":"IdentifierPath","referencedDeclaration":40227,"src":"1576:9:121"},"nodeType":"ModifierInvocation","src":"1576:9:121"}],"name":"mint","nameLocation":"1536:4:121","parameters":{"id":69529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69526,"mutability":"mutable","name":"to","nameLocation":"1549:2:121","nodeType":"VariableDeclaration","scope":69539,"src":"1541:10:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69525,"name":"address","nodeType":"ElementaryTypeName","src":"1541:7:121","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":69528,"mutability":"mutable","name":"amount","nameLocation":"1561:6:121","nodeType":"VariableDeclaration","scope":69539,"src":"1553:14:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":69527,"name":"uint256","nodeType":"ElementaryTypeName","src":"1553:7:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1540:28:121"},"returnParameters":{"id":69532,"nodeType":"ParameterList","parameters":[],"src":"1586:0:121"},"scope":69540,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":69446,"name":"Initializable","nameLocations":["660:13:121"],"nodeType":"IdentifierPath","referencedDeclaration":40586,"src":"660:13:121"},"id":69447,"nodeType":"InheritanceSpecifier","src":"660:13:121"},{"baseName":{"id":69448,"name":"ERC20Upgradeable","nameLocations":["679:16:121"],"nodeType":"IdentifierPath","referencedDeclaration":41203,"src":"679:16:121"},"id":69449,"nodeType":"InheritanceSpecifier","src":"679:16:121"},{"baseName":{"id":69450,"name":"ERC20BurnableUpgradeable","nameLocations":["701:24:121"],"nodeType":"IdentifierPath","referencedDeclaration":41265,"src":"701:24:121"},"id":69451,"nodeType":"InheritanceSpecifier","src":"701:24:121"},{"baseName":{"id":69452,"name":"OwnableUpgradeable","nameLocations":["731:18:121"],"nodeType":"IdentifierPath","referencedDeclaration":40332,"src":"731:18:121"},"id":69453,"nodeType":"InheritanceSpecifier","src":"731:18:121"},{"baseName":{"id":69454,"name":"ERC20PermitUpgradeable","nameLocations":["755:22:121"],"nodeType":"IdentifierPath","referencedDeclaration":41434,"src":"755:22:121"},"id":69455,"nodeType":"InheritanceSpecifier","src":"755:22:121"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[69540,41434,41591,41935,42212,43875,40332,41265,41203,42254,43839,43813,41480,40586],"name":"WrappedVara","nameLocation":"641:11:121","scope":69541,"usedErrors":[40168,40173,40349,40352,41300,41307,41494,42224,42229,42234,42243,42248,42253,44961,44966,44971],"usedEvents":[40179,40357,42192,43747,43756]}],"license":"UNLICENSED"},"id":121} \ No newline at end of file